SQL сдерживает
ТРУДНОСТИ
SQL CONSTRAINTS - это целостность, которая определяет некоторые условия, которые не позволяют столбцу оставаться истинным при вставке, обновлении или удалении данных в столбце. Ограничения могут быть указаны, когда таблица создается сначала с помощью оператора CREATE TABLE или во время изменения структуры существующей таблицы с помощью инструкции ALTER TABLE.
SQL CONSTRAINTS используются для реализации правил таблицы. Если какое-либо нарушение ограничений вызвало какое-либо действие, не выполняющееся над таблицей, действие отменяется ограничением.
Некоторые CONSTRAINTS могут использоваться вместе с оператором SQL CREATE TABLE.
Общая структура SQL CONSTRAINT определяется как:
За ключевым словом CONSTRAINT следует имя ограничения, за которым следует столбец или список столбцов.
Типы SQL-ограничений
SQL предоставляет следующие типы ограничений:
скованность | Описание |
---|---|
НЕНУЛЕВОЙ | Это ограничение подтверждает, что столбец не может хранить значение NULL. |
УНИКАЛЬНАЯ | Это ограничение гарантирует, что каждая строка для столбца должна иметь различное значение. |
ОСНОВНОЙ КЛЮЧ | Это ограничение является комбинацией ограничения NOT NULL и ограничения UNIQUE. Это ограничение гарантирует, что конкретный столбец или комбинация из двух или более столбцов для таблицы имеют уникальную идентификацию, которая помогает легче и быстрее найти конкретную запись в таблице. |
ПРОВЕРЯТЬ | Проверочное ограничение гарантирует, что значение, хранящееся в столбце, соответствует определенному условию. |
ДЕФОЛТ | Это ограничение предоставляет значение по умолчанию, если для этого столбца указано значение none. |
ИНОСТРАННЫЙ КЛЮЧ | Ограничение внешнего ключа используется для обеспечения ссылочной целостности данных. в одной таблице, чтобы сопоставить значения в другой таблице. |
Синтаксис:
CREATE TABLE <table_name> ( ограничение column1 data_type [(size)], ограничение column2 data_type [(size)], ...);
Параметры:
название | Описание |
---|---|
table_name | Имя таблицы, в которой хранятся данные. |
column1, column2 | Наименование столбцов таблицы. |
тип данных | Char, varchar, integer, decimal, date и многое другое. |
размер | Максимальная длина столбца таблицы. |
ограничение | Ограничение для столбца или таблицы. |
Содержание:
- SQL CREATE TABLE с ограничением для исключения значения NULL
- SQL CREATE TABLE для проверки уникального значения
- SQL CREATE TABLE для проверки уникального значения на нескольких столбцах
- SQL CREATE TABLE с уникальным ограничением
- SQL CREATE TABLE с ограничением CHECK
- SQL CREATE TABLE с использованием ограничения по умолчанию
- SQL CREATE TABLE с использованием значений по умолчанию и CHECK CONSTRAINT
- SQL CREATE TABLE с оператором CHECK CONSTRAINT и IN
- SQL CREATE TABLE с оператором CHECK CONSTRAINT и LIKE
- SQL CREATE TABLE с оператором CHECK CONSTRAINT и OR
- SQL CREATE TABLE с использованием оператора CHECK CONSTRAINT и AND OR
- SQL CREATE TABLE с использованием CASCADE
SQL CREATE TABLE с ограничением для исключения значения NULL
В следующем разделе будет описано, как NOT NULL CONSTRAINT подтверждает, что столбец не может иметь значение NULL в инструкции CREATE TABLE.
Пример:
В следующем примере создается таблица. Вот имя поля и типы данных:
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ |
---|---|---|---|---|
agent_code | голец | 6 | нет | |
имя агента | голец | 25 | нет | |
рабочая область | голец | 25 | нет |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL,
agent_name char(25) NOT NULL,
working_area char(25) NOT NULL) ;
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход:
SQL CREATE TABLE для проверки уникального значения
В следующем разделе мы обсудим, как SQL UNIQUE CONSTRAINT гарантирует, что каждая строка для столбца имеет разные значения в операторе CREATE TABLE.
Пример:
В следующем примере создается таблица. Вот имя поля и типы данных:
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
ord_num | десятичный | 6 | нет | УНИКАЛЬНАЯ | |
ord_amount | десятичный | 12 | 2 | да | |
ord_date | Дата | нет | |||
cust_code | голец | 6 | нет | ||
agent_code | голец | 6 | нет |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
ord_num decimal(6) NOT NULL UNIQUE,
ord_amount decimal(12,2),
ord_date date NOT NULL,
cust_code char(6) NOT NULL,
agent_code char(6) NOT NULL);
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход:
SQL CREATE TABLE для проверки уникального значения на нескольких столбцах
В следующем примере создается таблица. Вот имя поля и типы данных:
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | нет | ||
комиссия | десятичный | 5 | 2 | да |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL UNIQUE,
agent_name char(25) NOT NULL UNIQUE,
working_area char(25) NOT NULL,
commission decimal(5,2));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход:
SQL CREATE TABLE с уникальным ограничением
Ограничение SQL UNIQUE используется для обеспечения того, чтобы каждая строка столбца имела различное значение. На этой странице мы собираемся обсудить, как работает SQL UNIQUE CONSTRAINT, если он используется в конце инструкции CREATE TABLE вместо использования UNIQUE CONSTRAINT в определенных столбцах.
Пример :
В следующем примере создается таблица. Вот имя поля и типы данных:
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
cust_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
CUST_NAME | голец | 25 | нет | ||
cust_city | голец | 25 | нет | ||
класс | целое число | да | |||
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ |
можно использовать следующий оператор SQL :
Код SQL:
CREATE TABLE mytest(
cust_code char(6) NOT NULL,
cust_name char(25) NOT NULL,
cust_city char(25) NOT NULL,
grade integer,
agent_code char(6) NOT NULL,
UNIQUE(cust_code,agent_code));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход:
SQL CREATE TABLE с ограничением CHECK
SQL CHECK CONSTRAINT гарантирует, что значение для определенного столбца или столбцов удовлетворяет заданному условию.
Задача ограничения CHECK заключается в ограничении значений для столбца таблицы.
Замечания :
- SQL CHECK CONSTRAINT нельзя использовать в VIEW.
- SQL CHECK CONSTRAINT нельзя использовать в подзапросе.
- SQL CHECK CONSTRAINT также можно использовать в инструкциях ALTER TABLE и DROP TABLE.
В следующем примере создается таблица. Таблица содержит CHECK CONSTRAINT для столбца комиссии. Ограничение гарантирует, что «комиссия» должна быть меньше 1. Вот имя поля и типы данных:
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | нет | ||
комиссия | целое число | ПРОВЕРЯТЬ |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL UNIQUE ,
agent_name char(25) NOT NULL UNIQUE ,
working_area char(25) NOT NULL ,
commission decimal CHECK( commission<1));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход :
SQL CREATE TABLE с использованием ограничения по умолчанию
SQL DEFAULT CONSTRAINT предоставляет значение по умолчанию, если для столбца не задано значение none.
Пример:
Включить DEFAULT CONSTRAINT в столбец 'working_area', который гарантирует, что -
1. «Working_area» должно быть «Mumbai», если для этого столбца не указано ни одного,
во время создания таблицы, имена полей и типы данных которой -
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | да | ДЕФОЛТ | |
комиссия | десятичный | 8 | 2 | да |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL UNIQUE ,
agent_name char(25) NOT NULL UNIQUE ,
working_area char(25) DEFAULT 'Mumbai',
commission decimal(8,2));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход :
SQL CREATE TABLE с использованием значений по умолчанию и CHECK CONSTRAINT
В следующем разделе мы обсудили использование SQL DEFAULT CONSTRAINT и использование SQL CHECK CONSTRAINT при создании таблицы.
Пример:
Чтобы включить CHECK CONSTRAINT для «комиссии» и DEFAULT CONSTRAINT для «рабочей_области», это гарантирует, что -
1. «Комиссия» должна быть больше .1 и меньше .3,
2. «Working_area» должно быть «Mumbai», если для этого столбца не указано ни одного,
во время создания таблицы, которая содержит следующие имена полей и типы данных -
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | да | ДЕФОЛТ | |
комиссия | десятичный | 8 | 2 | да | ПРОВЕРЯТЬ |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL UNIQUE ,
agent_name char(25) NOT NULL UNIQUE ,
working_area char(25) DEFAULT 'Mumbai',
commission decimal(8,2)
CHECK(commission>.1 AND commission<.3));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход :
SQL CREATE TABLE с оператором CHECK CONSTRAINT и IN
В следующем разделе мы обсудили, как использовать оператор SQL IN вместе с SQL CHECK CONSTRAINT.
Условие CHECK CONSTRAINT может быть определено с использованием любого из базовых операторов сравнения, таких как ( >, <, =,> =, <=, <> ), а также операторов BETWEEN, IN, LIKE и NULL.
Пример:
Чтобы включить две проверки ограничения, которые -
1. Первый столбец находится в столбце «working_area», который гарантирует, что works_area должен быть либо «London», либо «Brisban», либо «Chennai», либо «Mumbai»,
2. Второй столбец - «комиссия», который гарантирует, что комиссия должна быть меньше 1,
В следующей таблице имена полей и типы данных:
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | нет | ПРОВЕРЯТЬ | |
комиссия | целое число | ПРОВЕРЯТЬ |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL UNIQUE ,
agent_name char(25) NOT NULL UNIQUE ,
working_area char(25) CHECK
( working_area IN('London','Brisban','Chennai','Mumbai')) ,
commission decimal CHECK(commission<1));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход:
SQL CREATE TABLE с оператором CHECK CONSTRAINT и LIKE
В следующем разделе мы обсудим, как можно использовать оператор SQL LIKE с CHECK CONSTRAINT.
Пример:
Чтобы включить CHECK CONSTRAINT в столбец 'ord_date', который гарантирует, что формат 'ord_date' должен быть похож на '- / - / ----', например, ('18 / 05/1998 ') на время создания таблицы со следующими именами полей и типов данных -
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
ord_num | десятичный | 6 | нет | УНИКАЛЬНАЯ | |
ord_amount | десятичный | 12 | 2 | да | |
ord_date | голец | 10 | нет | ПРОВЕРЯТЬ | |
cust_code | голец | 6 | нет | ||
agent_code | голец | 6 | нет |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
ord_num decimal(6) NOT NULL UNIQUE ,
ord_amount decimal(12,2) ,
ord_date char(10) NOT NULL CHECK
(ord_date LIKE '--/--/----' ),
cust_code char(6) NOT NULL ,
agent_code char(6) NOT NULL
);
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход :
SQL CREATE TABLE с оператором CHECK CONSTRAINT и OR
В следующей теме мы обсуждаем использование оператора OR вместе с CHECK CONSTRAINT.
Пример:
Чтобы включить CHECK CONSTRAINT в столбцы 'Commission' и 'working_area', который гарантирует, что значение 'Commission' должно быть меньше .20, а значение 'working_area' должно быть 'London' во время создания следующей таблицы, которая состоит из имен полей и типы данных -
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | да | ПРОВЕРЯТЬ | |
комиссия | десятичный | 8 | 2 | да | ПРОВЕРЯТЬ |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
agent_code char(6) NOT NULL UNIQUE ,
agent_name char(25) NOT NULL UNIQUE ,
working_area char(25) ,
commission decimal(8,2) ,
CHECK(commission<.20 OR working_area='London'));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход :
SQL CREATE TABLE с использованием оператора CHECK CONSTRAINT и оператора AND, OR
В следующей теме мы обсудим использование операторов OR и AND вместе с CHECK CONSTRAINT. Условие начнет работать во время вставки записей в таблицу.
Пример:
Включить CHECK CONSTRAINT в столбцы 'Commission' и 'working_area', который гарантирует, что -
1. «Комиссия» должна быть меньше .14, а «working_area» должно быть «Лондон»,
2. или «комиссия» должна быть меньше .15, а «working_area» должно быть «Мумбаи»,
3. или «комиссия» должна быть меньше .13, а «working_area» должно быть «Нью-Йорк»
во время создания таблицы, имена полей и типы данных которых
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
agent_code | голец | 6 | нет | УНИКАЛЬНАЯ | |
имя агента | голец | 25 | нет | УНИКАЛЬНАЯ | |
рабочая область | голец | 25 | да | ПРОВЕРЯТЬ | |
комиссия | десятичный | 8 | 2 | да | ПРОВЕРЯТЬ |
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest (
agent_code char(6) NOT NULL UNIQUE ,
agent_name char(25) NOT NULL UNIQUE ,
working_area char(25) ,
commission decimal(8,2) ,
CHECK((commission<.14 AND working_area='London')
OR (commission<.15 AND working_area='Mumbai')
OR (commission<.13 AND working_area='New York')));
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход :
SQL CREATE TABLE с использованием CASCADE
Опция CASCADE с ON DELETE позволяет удалять строки из дочерней таблицы, когда соответствующие строки удаляются из родительской таблицы.
DELETE CASCADE работает по ссылке внешнего ключа и удаляет дочерние записи, связанные с родительскими записями.
Пример:
Чтобы создать таблицу, которая содержит следующие имя поля и типы данных -
Имя поля | Тип данных | Размер | Десятичные знаки | НОЛЬ | скованность |
---|---|---|---|---|---|
tranno | десятичный | нет | |||
Идентификатор компании | VARCHAR | 6 | да | ИНОСТРАННЫЙ КЛЮЧ | |
код изделия | VARCHAR | 10 | да | ОСНОВНОЙ КЛЮЧ | |
coname | VARCHAR | 35 | да | ||
имя элемента | VARCHAR | 35 | да | ||
iqty | целое число | да |
Таблица содержит PRIMARY KEY для «itemcode» и FOREIGN KEY для столбца «company_id», который ссылается на столбец «company_id» таблицы «company».
можно использовать следующий оператор SQL:
Код SQL:
CREATE TABLE mytest(
tranno decimal NOT NULL,
company_id varchar(6),
itemcode varchar(10),
coname varchar(35),
itemname varchar(35),
iqty integer,
PRIMARY KEY(itemcode),
FOREIGN KEY(company_id)
REFERENCES company (company_id)
ON DELETE CASCADE);
Чтобы увидеть структуру созданной таблицы:
Код SQL:
DESCRIBE mytest;
Выход:
Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- href = "/ sql-упражнения / база данных фильмов-упражнение / основные упражнения-на-фильме-базе данных.php"> ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: Внешний ключ
Далее: Изменить таблицу
Новый контент: Composer: менеджер зависимостей для PHP , R программирования