SQL Server › Normalization

What is the first normal form, and what specific rule does it require a table to follow?

Beginner

Answer

The first normal form requires that every column in a table contains only a single, indivisible value, meaning you should not store multiple values, like several phone numbers, crammed into a single column separated by commas, but instead store them properly across multiple rows or in a separate related table.
-- Violates first normal form
CREATE TABLE Customers (CustomerId INT, PhoneNumbers VARCHAR(200)); -- '555-1234, 555-5678'

-- Follows first normal form
CREATE TABLE CustomerPhones (CustomerId INT, PhoneNumber VARCHAR(20));
Real-world example A customer database originally stored multiple phone numbers as a single comma separated text value, but was redesigned into a separate phone numbers table to properly follow the first normal form and make searching by phone number possible.

Common follow-ups: Why is storing multiple values in a single column problematic for searching and filtering?;How do you fix a table that already violates first normal form?