What Are Lists and Libraries?
A SharePoint List is a structured table of items, similar to a spreadsheet, where each item is a row and each column defines a piece of metadata such as text, choice, date, or a lookup to another list. A Document Library is technically a specialized list where every item also has an attached file, plus built-in file-handling behavior like check-out, version history, and content types. Both live inside a SharePoint site and are backed by the same underlying list architecture in SharePoint Online.
Cricket analogy: A List is like a scorecard table where each row is a delivery with columns for bowler, batsman, and runs, while a Library is like the match archive that stores the actual video footage alongside that same scorecard metadata.
Creating and Configuring Lists
Lists can be created from a blank template, imported from Excel, or provisioned programmatically using the PnP PowerShell module or the REST/Graph APIs. Once created, you add columns to define the schema: Single line of text, Choice, Person or Group, Date and Time, Number, Lookup, and Managed Metadata are the most common column types. Each column can be marked as required, given a default value, and validated with a formula, which lets a list behave like a lightweight database table without writing any backend code.
Cricket analogy: Adding a Choice column with values like 'Boundary', 'Wicket', 'Dot Ball' to a delivery-tracking list is like a scorer pre-defining the outcome categories on a scoring app so every entry stays consistent across an IPL innings.
Document Libraries vs Custom Lists
The key functional difference is that libraries add file-centric capabilities on top of the same list engine: check-out/check-in to prevent edit conflicts, major and minor version numbering, content type association per file, and Office co-authoring through Word, Excel, and PowerPoint online. Custom lists, by contrast, are pure metadata containers ideal for tracking things like tasks, contacts, or approval requests where no file attachment is the primary artifact, although lists do support ad-hoc attachments as a secondary feature.
Cricket analogy: Check-out on a library is like a scorer 'locking' the official scorebook during an over so no second scorer can overwrite it, whereas a plain list is like an open run-tally sheet anyone can edit freely.
Document libraries automatically enable versioning-friendly metadata columns like 'Modified By' and 'Checked Out To', which are hidden by default but can be surfaced in a custom view to audit who currently holds a file lock.
Views, Filtering, and Large List Thresholds
Views let you present the same underlying list data differently: a public view is shared with everyone who has access, while a personal view is scoped to the individual who created it. Views support column-level filtering, multi-column sorting, and grouping, and can be set as the default view for a list or library. However, SharePoint enforces a List View Threshold of 5,000 items per query by default, meaning a view that tries to filter or sort across more than 5,000 items without an indexed column will throw a throttling error instead of returning results.
Cricket analogy: A filtered view showing only 'Sixes' from a delivery list is like a broadcaster's replay system pulling just the boundary highlights from a full ball-by-ball database for a quick recap reel.
Filtering or sorting on a non-indexed column in a list with more than 5,000 items will fail with a throttling error. Create an indexed column (List Settings > Indexed Columns) on any field you plan to filter or sort by at scale, and design views around that index before the list grows large.
# PnP PowerShell: create a document library and add an indexed metadata column
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/ops" -Interactive
New-PnPList -Title "Vendor Contracts" -Template DocumentLibrary
Add-PnPField -List "Vendor Contracts" -DisplayName "ContractStatus" `
-InternalName "ContractStatus" -Type Choice `
-Choices "Draft","Under Review","Signed","Expired" -AddToDefaultView
Set-PnPField -List "Vendor Contracts" -Identity "ContractStatus" -Values @{Indexed=$true}- Lists store structured metadata as rows and columns; Libraries are lists specialized to also hold a file per item.
- Common column types include Single line of text, Choice, Person or Group, Date and Time, Lookup, and Managed Metadata.
- Libraries add check-out/check-in, major/minor versioning, content types, and Office co-authoring on top of the list engine.
- Views can be public (shared) or personal, and support filtering, sorting, and grouping without changing the underlying data.
- The default List View Threshold is 5,000 items; filtering or sorting past that limit requires an indexed column.
- PnP PowerShell and the REST/Graph APIs can provision lists and libraries and their columns programmatically.
Practice what you learned
1. What is the fundamental relationship between a SharePoint List and a Document Library?
2. Which column type would you use to reference an item in a different list, such as linking a 'Loadouts' list entry to a 'Weapons' list record?
3. What happens by default when a view tries to filter on a non-indexed column in a list containing more than 5,000 items?
4. What distinguishes a personal view from a public view in SharePoint?
5. Which capability is unique to Document Libraries and not present on plain custom Lists?
Was this page helpful?
You May Also Like
Columns and Content Types
Understand how SharePoint columns define metadata fields and how content types bundle columns, templates, and behavior into reusable, inheritable schemas.
Document Management
Understand core SharePoint document management capabilities: check-out, co-authoring, sharing, retention, and the underlying document lifecycle.
Versioning and Approval
Learn how SharePoint's major/minor version history and content approval workflows control what changes are kept and what is visible to readers.
Related Reading
Related Study Notes in Programming
Browse all study notesApache Spark Study Notes
Programming · 30 topics
ProgrammingApache Flink Study Notes
Programming · 30 topics
ProgrammingHadoop Study Notes
Programming · 30 topics
ProgrammingSnowflake Study Notes
Programming · 30 topics
ProgrammingApache Airflow Study Notes
Programming · 30 topics
Programmingdbt (Data Build Tool) Study Notes
Programming · 30 topics