Что такое ограничения (constraints) в БД
Python
Senior
Без компании
Что такое ограничения (constraints) в БД
Ответы
Ограничения (constraints) в БД — это правила, которые применяются к данным в таблицах для обеспечения их целостности и согласованности. Основные типы:
- **PRIMARY KEY** — уникальный идентификатор строки (не NULL, уникален)
- **FOREIGN KEY** — связь между таблицами (ссылка на PRIMARY KEY другой таблицы)
- **UNIQUE** — уникальность значений в столбце (кроме NULL)
- **NOT NULL** — запрет на NULL-значения
- **CHECK** — проверка значения по условию
- **DEFAULT** — значение по умолчанию
Пример с SQL:
```
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
age INT CHECK (age >= 18),
status VARCHAR(20) DEFAULT 'active'
);
```
В Python ORM (например, SQLAlchemy) ограничения задаются через параметры колонок:
```
from sqlalchemy import Column, Integer, String, CheckConstraint
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
email = Column(String(255), unique=True, nullable=False)
age = Column(Integer, CheckConstraint('age >= 18'))
```