Ответ
SQL-ограничения (constraints) — это правила, применяемые к столбцам или таблицам для обеспечения целостности и точности данных. Они предотвращают вставку некорректных данных на уровне базы данных.
Основные типы ограничений:
-
NOT NULL— запрещает столбцу содержать значенияNULL.CREATE TABLE users ( id INT NOT NULL, username VARCHAR(50) NOT NULL ); -
UNIQUE— гарантирует, что все значения в столбце (или комбинации столбцов) различны.CREATE TABLE users ( email VARCHAR(100) UNIQUE ); -- Или для нескольких столбцов: ALTER TABLE users ADD CONSTRAINT uc_name UNIQUE (first_name, last_name); -
PRIMARY KEY— комбинацияNOT NULLиUNIQUE. Однозначно идентифицирует каждую строку в таблице.CREATE TABLE orders ( order_id INT PRIMARY KEY ); -
FOREIGN KEY— обеспечивает ссылочную целостность. Связывает столбец сPRIMARY KEYдругой таблицы.CREATE TABLE orders ( user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) ); -
CHECK— проверяет, что значения в столбце удовлетворяют заданному условию.CREATE TABLE products ( price DECIMAL(10,2) CHECK (price > 0), quantity INT CHECK (quantity >= 0) ); -
DEFAULT— задает значение по умолчанию для столбца при вставке новой строки, если значение не указано.CREATE TABLE logs ( created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, status VARCHAR(20) DEFAULT 'PENDING' );
Практическое применение: Ограничения можно задавать при создании таблицы (CREATE TABLE) или добавить/изменить позже с помощью ALTER TABLE. Их использование критически важно для предотвращения "мусорных" данных, но может незначительно влиять на производительность операций INSERT/UPDATE из-за дополнительных проверок.