Ограничение можно именовать, чтобы потом идентифицировать. Перед ограничением используется конструкция CONSTRAIN имя_ограничения. (MySQL не поддерживает это предложение для столбцов, но разрешает именовать ограничения таблицы.)
Не относится ни к одному типу и может быть вставлено в любой столбец (в столбце строкового типа помещается значение NULL, а не строка ‘NULL’). Нельзя это значение отождествлять с 0 либо пустой строкой или пробелом. Смысл – значение неизвестно. Желательно избегать таких значений в таблицах.
Ограничение на значение NULL – ограничение столбца. Если в таблицу добавлена строка командой INSERT, но не задано значение столбца, СУБД подставит значение NULL, если не содержится явный запрет.
CREATE TABLE title_authors
(title_id CHAR(3) NOT NULL,
au_id CHAR(3) NOT NULL,
au_order SMALLINT NOT NULL,
royalty_share DECIMAL(5,2));
Все столбцы, для которых задано ограничение PRIMERY KEY, не должны содержать значение NULL. Поиск значений NULL осуществляется с помощью выражения IS NULL.
Примечание. Oracle опознает пустую строку как NULL.
Ограничение задается конструкцией DEFAULT <выражение> и является ограничением столбца. Результат выражения – константа, того же типа, что и столбец. Если при выполнении команды INSERT значение столбца не задано, используется значение по умолчанию. Если указано ограничение NOT NULL, но в команде INSERT значение явно не назначено, возникает ошибка, о которой выдается сообщение. Некоторые СУБД в этих случаях поступают в зависимости от типа данных (подбирают инвариантное значение, например 0).
CREATE TABLE title_authors
(title_id CHAR(3) NOT NULL,
au_id CHAR(3) NOT NULL,
au_order SMALLINT NOT NULL,
royalty_share DECIMAL(5,2) DEFAULT 1.0 NOT NULL);
Примечание. Oracle не поддерживает CONSTRAIN (именование ограничения) для ограничений типа DEFAULT.
Первичный ключ – столбец или несколько столбцов, идентифицирующих строки таблицы. Простой ключ состоит из одного столбца, сложный – из нескольких. Таблица может иметь несколько комбинаций столбцов, которые идентифицирует ее строки, - потенциальные ключи. Одна из них выбирается как первичный ключ. Простой ключ определяться как ограничение столбца, так и таблицы, сложный – как ограничение таблицы. Ключ задается в команде CREATE TABLE предложением PRIMERY KEY. Для задания имени ключа применяется предложение CONSRAINT. Для столбцов первичного ключа должно выполняться ограничение NOT NULL (оно задается автоматически, Oracle воспринимает пустую строку как NULL). Если при выполнении команды INSERT не заданы значения столбцов первичного ключа, они будут сформированы автоматически в соответствии с типом данных столбца.
Не рекомендуется изменять значения первичного ключа посредством команды UPDATE, а также использовать значение ключа удаленной посредством команды DELETE строки. SQL позволяет не определять первичный ключ для некоторой таблицы, однако рекомендуется задавать первичный ключ для каждой таблицы.
Первичный ключ можно задать несколькими способами.
1) CREATE TABLE publishers
(pub_id CHAR(3) PRIMERY KEY,
pub_name VARCHAR(20) NOT NULL,
city VARCHAR(15) NOT NULL,
state CHAR(3) NULL,
country VARCHAR(15) NOT NULL);
2) CREATE TABLE publishers
(pub_id CHAR(3) NOT NULL,
pub_name VARCHAR(20) NOT NULL,
city VARCHAR(15) NOT NULL,
state CHAR(3) NULL,
country VARCHAR(15) NOT NULL,
PRIMERY KEY (pub_id) );
3) CREATE TABLE publishers
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.