кодесурса
«SQL

SQL сдерживает

script1adsense2code
script1adsense3code

ТРУДНОСТИ

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

В следующем разделе будет описано, как 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

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

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

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

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

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

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

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

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

Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: Внешний ключ
Далее: Изменить таблицу

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code