Ограничение NOT NULL означает, что столбец не может хранить значения NULL
. Например:
1 2 3 4 5 |
CREATE TABLE Colleges ( college_id INT NOT NULL, college_code VARCHAR(20), college_name VARCHAR(50) ); |
Здесь столбцы college_id и college_code таблицы Colleges не могут иметь значения NULL
.
Примечание: Ключевые слова NOT NULL
используются для добавления ограничений, тогда как условия IS NULL и IS NOT NULL используются с оператором WHERE
для выбора строк из таблицы.
Удалить ограничение NOT NULL
Мы также можем удалить ограничение NOT NULL
для столбца, если оно больше не нужно. Например:
SQL Server
1 2 |
ALTER TABLE Colleges ALTER COLUMN college_id INT; |
Oracle
1 2 |
ALTER TABLE Colleges MODIFY (college_id NULL); |
MySQL
1 2 |
ALTER TABLE Colleges MODIFY college_id INT; |
PostgreSQL
1 2 |
ALTER TABLE Colleges ALTER COLUMN college_id DROP NOT NULL; |
Ограничение NOT NULL с оператором ALTER TABLE
Мы также можем добавить ограничение NOT NULL
к столбцу в существующей таблице с помощью оператора ALTER TABLE. Например:
SQL Server
1 2 |
ALTER TABLE Colleges ALTER COLUMN college_id INT NOT NULL; |
Oracle
1 2 |
ALTER TABLE Colleges MODIFY college_id INT NOT NULL; |
MySQL
1 2 |
ALTER TABLE Colleges MODIFY COLUMN college_id INT NOT NULL; |
PostgreSQL
1 2 |
ALTER TABLE Colleges ALTER COLUMN college_id SET NOT NULL; |
Здесь мы добавляем ограничение NOT NULL
к столбцу college_id в существующей таблице Colleges.
Теперь, когда мы попытаемся добавить данные в таблицу Colleges без указания значений для поля college_id, SQL выдаст ошибку. Например:
1 2 |
INSERT INTO Colleges(college_code, college_name) VALUES ('NYC', "Waikiki"); |
Здесь SQL выдаст ошибку, потому что нам нельзя пропускать поле college_id в таблице Colleges из-за работающего ограничения NOT NULL
.