#sql #sql-server
#sql #sql-сервер
Вопрос:
Для следующей таблицы :
CREATE TABLE Sucursal
(
DscSucursal VARCHAR(20),
DirSucursal VARCHAR(25)
);
Я хочу добавить NOT NULL
ограничение к первому столбцу.
Согласно этому источнику: https://www.tutorialspoint.com/sql/sql-alter-command.htm
Я должен указать ограничению тип данных столбца. Почему?
Тип данных уже определен при создании таблицы. Почему я должен указывать ограничению тип данных? Разве это не избыточно?
«Основной синтаксис команды ALTER TABLE для добавления ограничения NOT NULL к столбцу в таблице выглядит следующим образом:»
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
Комментарии:
1. Ну, я не знаю, что имели в виду те, кто это так определил… но с определенной точки зрения это просто логично. То есть, если вы рассматриваете тип данных как набор возможных значений для атрибута. Если есть ограничение not null, оно на одно значение меньше
NULL
— в противном случае оно включено.2. Какой продукт СУБД вы используете? «SQL» — это просто язык запросов, а не имя конкретного продукта базы данных. Пожалуйста, добавьте тег для продукта базы данных, который вы используете
postgresql
,oracle
,db2
,sql-server
, …3. @marc_s: это может быть верно для некоторых СУБД, но, например, для Postgres или Oracle вам не нужно повторять тип данных (а тег «SQL» не указывает конкретную СУБД)
4. a_horse_with_no_name sql-сервер
Ответ №1:
Это потому, что вы можете изменить тип данных в дополнение к добавлению ограничения NOT NULL. Если вы не меняете тип данных, это несколько избыточно.
Комментарии:
1. Спасибо, Вася, в этом есть какой-то смысл 🙂