Учебное пособие Санкт-Петербург «бхв-петербург»


mark numeric( 1 ) NOT NULL



Pdf көрінісі
бет107/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   103   104   105   106   107   108   109   110   ...   256
sql osnovi yazika

...
mark numeric( 1 ) NOT NULL
CHECK ( mark >= 3 AND mark <= 5 )
DEFAULT 5,
...
135


Глава 5. Основы языка определения данных
Как вы думаете, что будет, если в ограничении DEFAULT мы «случайно» допу-
стим ошибку, написав DEFAULT 6? Если в команде INSERT не указать значение
для атрибута mark, то на каком этапе эта ошибка будет выявлена: уже на этапе
создания таблицы или только при вставке строки в нее?
Вот эта команда может быть вам полезной для проверки гипотезы, поскольку
в ней отсутствует передаваемое значение для атрибута mark:
INSERT INTO progress ( record_book, subject, acad_year, term )
VALUES ( 12300, 'Физика', '2016/2017',1 );
5. В стандарте SQL сказано, что при наличии ограничения уникальности, вклю-
чающего один или более столбцов, все же возможны повторяющиеся значения
этих столбцов в разных строках, но лишь в том случае, если это значения NULL.
PostgreSQL придерживается такого же подхода.
Модифицируйте определение таблицы «Студенты» (students), добавив огра-
ничение уникальности по двум столбцам: doc_ser и doc_num. А затем про-
верьте вышеприведенное утверждение, добавив в таблицу не только строки, со-
держащие конкретные значения этих двух столбцов, но также и по две строки,
имеющие следующие свойства:
– одинаковые значения столбца doc_ser и NULL-значения столбца doc_num;
– NULL-значения столбца doc_num и столбца doc_ser.
Подобные вещи возможны, так как NULL-значения не считаются совпадающи-
ми. Это можно проверить с помощью команды
SELECT (null = null);
Она даст такой результат (т. е. NULL):
?column?
----------
(1 строка)
6. Модифицируйте определения таблиц «Студенты» (students) и «Успеваемость»
(progress). В таблице students в качестве первичного ключа назначьте ком-
бинацию атрибутов doc_ser и doc_num, а в таблице progress соответствую-
щим образом измените определение внешнего ключа.
136


Контрольные вопросы и задания


Достарыңызбен бөлісу:
1   ...   103   104   105   106   107   108   109   110   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет