SQL — структурированный язык запросов. Операторы определения данных DDL
Выбери формат для чтения
Загружаем конспект в формате ppt
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
SQL
- структурированный язык
запросов
DDL — Data Definition Language –
язык описания данных
Операторы определения данных DDL
Оператор
Смысл
Действие
CREATE TABLE
Создать таблицу
Создаст новую таблицу в БД
DROP TABLE
Удалить таблицу
Удаляет таблицу из БД
ALTER TABLE
Изменить таблицу
Изменяет структуру существующей таблицы или
ограничения целостности, задаваемые для данной
таблицы
CREATE VIEW
Создать представление
Создает виртуальную таблицу, соответствующую
некоторому SQL-запросу
ALTER VIEW
Изменить представление
Изменяет ранее созданное представление
DROP VIEW
Удалить представление
Удаляет ранее созданное представление
CREATE INDEX
Создать индекс
Создает индекс для некоторой таблицы для обеспечения
быстрого доступа по атрибутам, входящим в индекс
DROP INDEX
Удалить индекс
Удаляет ранее созданный индекс
DDL — Data Definition Language –
язык описания данных
Операторы манипулирования данными Data
Manipulation Language (DMP)
Оператор
Смысл
Действие
DELETE
Удалить строки
Удаляет одну или несколько строк, соответствующих
условиям фильтрации, из базовой таблицы.
Применение оператора согласуется с принципами
поддержки целостности, поэтому этот оператор не
всегда может быть выполнен корректно, даже если
синтаксически он записан правильно
INSERT
Вставить строку
Вставляет одну строку в базовую таблицу. Допустимы
модификации оператора, при которых сразу
несколько строк могут быть перенесены из одной
таблицы или запроса в базовую таблицу
UPDATE
Обновить строку
Обновляет значения одного или нескольких столбцов в
одной или нескольких строках, соответствующих
условиям фильтрации
DQL - Data Query Language - язык
запросов
Оператор
Смысл
Действие
SELECT
Выбрать строки
Оператор, заменяющий все операторы реляционной
алгебры и позволяющий сформировать
результирующее отношение, соответствующее
запросу
Средства администрирования данных
Средства управления транзакциями
и др.
Создание таблиц базы данны х
•
CREATE TABLE
•
INSERT –ввод значений
Типы данны х: (ANSI)
CHARASTER (CHAR) – тип представления
текста. Этот тип обозначается ключевы ми
словами VARCHAR (),CHARASTER VARYNG
или CHAR VARYNG ().
INTEGER – для представления целы х чисел
в диапазоне от -231 до +231.
DECIMAL (точность [, масштаб]) –
десятичное число с фиксированной точкой,
точность определяет кол-во значащих цифр
в числе.
NUMERIC (точность [, масштаб]) –
десятичное число с фиксированной точкой.
FLOAT [(точность)]- число с плавающей
точкой с указанием минимальной точности.
DATE – для хранения даты и времени/
Др.
CREATE TABLE < имя_таблицы >
(<имя столбца><тип
данных>[(<размер>)]);
Пример:
CREATE TABLE STUDENT1
(STUDENT_ID INTEGER,
SURNAME
VARCHAR(60),
NAME
VARCHAR(60),
STIPEND
INTEGER,
KURS
INTEGER,
CITY
VARCHAR(60),
BIRTHDAY DATE,
UNIV_ID INTEGER);
!!! Для CHAR обязательно должен быть указан размер
Изменение существую щей
таблицы
ALTER TABLE
Добавление таблицы
ALTER TABLE <имя таблицы> ADD (<имя столбца> <тип данных>[<размер>]);
Изменение таблицы (размеры столбцов, добавление или удаление
ограничений):
ALTER TABLE <имя_таблицы> MODIFY(<имя столбца> <тип данных>
[размер/точность>]);
Ограничения:
изменение типа данных возможно только в том случае, если столбец пуст;
для незаполненного столбца можно изменять размер/точность. Для заполненного
столбца размер/точность можно увеличить, но нельзя понизить;
ограничение NOT NULL может быть установлено, если ни одно значение в столбце не
содержит NULL.
Опцию NOT NULL всегда можно отменить;
разрешается изменять значения, установленные по умолчанию.
Удаление таблицы
Перед удалением таблицы необходимо удалить все
строки таблицы
DROP TABLE <имя таблицы >;
Ограничения (constraints) на
множество допустимы х значений
данны х
•
•
Ограничения на столбцы (COLUMN CONSTRAINTS)
Ограничения на таблицу (TABLE CONSTRAINTS)
CREATE TABLE <имя_таблицы>
(<имя столбца > <тип данных>< Ограничения на столбец>,
<имя столбца> <тип данных> <Ограничения на столбец>,
<ограничения на таблицу> (<имя столбца>[,<имя столбца>]));
Ограничение NOT NULL
NULL — это специальный маркер, обозначающий что
поле пусто.
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER NOT NULL,
SURNAME CHAR (25) NOT NULL,
NAME
CHAR (10) NOT NULL,
STIPEND INTEGER,
KURS
INTEGER,
CITY
CHAR (15),
BIRTHDAY DATE,
UNIV_ID INTEGER);
если для столбца указано NOT NULL, тo при использовании команды INSERT обязательно должно
быть указано конкретное значение, вводимое в это поле (DEFAULT)
Первичные ключи в принципе не должны содержать NULL-значений
Уникальность как ограничение
на столбец
UNIQUE
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER NOT NULL UNIQUE,
SURNAMECHAR (25) NOT NULL,
NAME CHAR (10) NOT NULL,
STIPEND
INTEGER,
KURS
INTEGER,
CITY CHAR (15),
BIRTHDAY
DATE,
UNIV_ID INTEGER);
Уникальность как ограничение
таблицы
UNIQUE
Пример:
CREATE TABLE EXAM_MARKS
(EXAM_ID INTEGER NOT NULL,
STUDENT_ID INTEGER NOT NULL,
SUBJ_ID INTEGER NOT NULL,
MARK
CHAR (1),
EXAM_DATE DATE NOT NULL,
UNIQUE (STUDENT_ID, EXAM_DATE));
Присвоение имен
ограничениям
Пример:
CREATE TABLE EXAM_MARKS
(EXAM_ID INTEGER NOT NULL,
STUDENT_ID
INTEGER NOT NULL,
SUBJID
INTEGER NOT NULL,
MARK
CHAR (1),
EXAM_DATE DATE NOT NULL,
CONSTRAINT STUD__SUBJ_CONSTR
UNIQUE
(STUDENT_ID, EXAM_DATE));
Ограничение первичны х
клю чей
PRIMARY KEY
Первичные ключи таблицы — это специальные случаи комбинирования
ограничений UNIQUE и NOT NULL.
Первичные ключи имеют следующие особенности:
• таблица может содержать только один первичный ключ;
• внешние ключи по умолчанию ссылаются на первичный ключ таблицы;
• первичный ключ является идентификатором строк таблицы (строки, однако,
могут идентифицироваться и другими способами).
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME CHAR (25) NOT NULL,
NAME CHAR (10) NOT NULL,
STIPEND INTEGER,
KURS INTEGER,
CITY CHAR (15),
BIRTHDAY DATE,
UNIV_ID INTEGER);
Составны е первичны е ключи
Пример:
CREATE TABLE NEW_EXAM_MARKS
(EXAM_ID INTEGER NOT NULL
STUDENT_ID INTEGER NOT NULL,
SUBJ_ID INTEGER NOT NULL,
MARK INTEGER,
DATA DATE,
CONSTRAINT EX_PR_KEY PRIMARY KEY (EXAM_ID, STUDENT_ID));
конкретный студент на конкретном экзамене не может получить более
одной оценки
Проверка значений полей
CHECK - условие
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME CHAR (25) NOT NULL,
NAME
CHAR (10) NOT NULL,
STIPEND INTEGER CHECK (STIPEND < 200),
KURS
INTEGER,
CITY
CHAR (15),
BIRTHDAY DATE,
UNIV_ID INTEGER);
Проверка ограничиваю щих условий с
использованием составны х полей
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME CHAR(25) NOT NULL,
NAME
CHAR (10) NOT NULL,
STIPEND INTEGER,
KURS
INTEGER,
CITY
CHAR (15),
BIRTHDAY DATE,
UNIV_ID INTEGER UNIQUE,
CHECK (STIPEND < 200 AND CITY = 'Воронеж'));
Или:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME CHAR (25) NOT NULL,
NAME
CHAR (10) NOT NULL,
STIPEND INTEGER,
KURS
INTEGER,
CITY
CHAR(15),
BIRTHDAY DATE,
UNIV_ID INTEGER UNIQUE,
CONSTRAINT STUD_CHECK
CHECK (STIPEND < 200 AND CITY =
'Воронеж'));
Установка значений по
умолчанию
• NULL является наиболее часто
используемым значением по умолчанию
• DEFAULT
DEFAULT <значение по умолчанию >;
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME CHAR (25) NOT NULL,
NAME
CHAR (10) NOT NULL,
STIPEND INTEGER CHECK (STIPEND < 200),
KURS
INTEGER,
CITY CHAR (15) DEFAULT 'Воронеж',
BIRTHDAY DATE,
UNIV_ID
INTEGER);
Поддержка целостности данны х.
Внешний клю ч как ограничение таблицы .
FOREIGN KEY <список столбцов>
REFERENCES <родительская таблица >[<родительский
ключ>];
ALTER TABLE <имя_таблицы >
ADD CONSTRAINT <имя_ограничения >
FOREIGN KEY (<список столбцов внешнего
ключа >)
REFERENCES <имя родительской таблицы >
[(<список столбцов родительского ключа >)];
FOREIGN KEY
Пример 2
ALTER TABLE STUDENT
ADD CONSTRAINT STUD_UNIV_FOR_KEY
Пример1
CREATE TABLE STUDENT,
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME
CHAR (25),
FOREIGN KEY (UNIV_ID)
NAME
CHAR (10),
REFERENCES
UNIVERSITY
STIPEND
INTEGER,
(UNIV_ID);
KURS
INTEGER,
CITY
CHAR (15),
BIRTHDAY DATE,
UNIV_ID INTEGER,
CONSTRAINT UNIV_FOR_KEY FOREIGN KEY (UNIV_ID)
REFERENCES UNIVERSITY (UNIV_ID));
Внешний клю ч как ограничение
столбца
• REFERENCES
Пример:
CREATE TABLE STUDENT
(STUDENT_ID INTEGER PRIMARY KEY,
SURNAME CHAR (25),
NAME
CHAR (10),
STIPEND INTEGER,
KURS
INTEGER,
CITY
CHAR (15),
BIRTHDAY DATE,
UNIV_ID INTEGER REFERENCES UNIVERSITY (UNIV_ID));
!!!можно не указывать список столбцов родительского ключа, если эти столбцы
объявлены как первичный ключ в таблице, на которую ссылается вн.ключ .