TGViewer
Data Science. SQL hub Data Science. SQL hub @sqlhub · 36K subscribers
Post #348 2.74K
🖥 Что такое ограничения SQL?

Ограничения в SQL — это утверждения, используемые для установления правил для столбцов в таблице. Если какое-либо действие нарушает ограничение, это действие будет прервано. Ограничения задаются при создании самой базы данных с помощью оператора CREATE TABLE или после создания таблицы с помощью оператора ALTER TABLE. В SQL используются следующие пять основных ограничений:

NOT NULL: указывает на то, что столбец должен иметь определенное значение; его нельзя оставлять пустым (NULL). В примере ниже столбцы ID, LastName и FirstName не могут быть пустыми:

CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);

UNIQUE: гарантирует, что каждая строка в столбце имеет уникальное значение; ни одно значение не повторяется ни в одной другой строке. Следующий SQL-запрос установит ограничение для ID (записи в таблице Persons должны будут иметь уникальные ID)

CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
PRIMARY KEY: поле в SQL-таблице, позволяющее однозначно идентифицировать каждую запись. PRIMARY KEYs должны быть уникальными — как правило, в качестве PRIMARY KEY используются ID записей. Запрос ниже задает первичный ключ (ID) в таблице Persons:

CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
FOREIGN KEY: поле (или набор полей) в одной таблице, которое ссылается на PRIMARY KEY в другой таблице. Используется для обеспечения ссылочной целостности данных, а также сопоставляет значение в одной таблице с другой. Следующий запрос создаст внешний ключ (FOREIGN KEY) в столбце PersonID при создании таблицы Orders:

CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

CHECK: используется для обеспечения соответствия значений в столбцах заданным условиям. В примере ниже ограничение гарантирует, что в таблице не будет записей людей, с возрастом (Age) меньше 18 лет

CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);

@sqlhub
  • 👍 13
  • 🔥 3
  • ❤ 2
More from @sqlhub
  1. Oct 8, 2026🧮 Математика для ИИ на русском: от школьной базы до трансформеров и диффузии Бесплатный к…
  2. Oct 8, 2026🧩 SQL-задача: почему `LAG()` здесь подведёт? Есть интервалы работы сервера. Время указано…
  3. Oct 8, 2026ИИ-агент отвечает настолько точно, насколько готовы ваши данные. Как понять, что они готов…
  4. Oct 7, 2026🌍 SQL-задача: ближайшие точки на замкнутой карте Карта 100 × 100: противоположные края со…
  5. Oct 7, 2026ИИ-агент, который только отвечает на вопросы, — это уже прошлый этап. Следующий шаг — науч…
  6. Oct 6, 2026⚡️ SQL с подвохом: NULL в пустом списке Что выведет PostgreSQL? SELECT NULL IN (SELECT 1 W…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →