- •Лекция 7
 - •Инструкции SQL
 - •Имена в SQL
 - •Типы данных
 - •Встроенные функции
 - •Управление
 - •Команда создания таблицы – CREATE TABLE
 - •Ограничения целостности: первичный ключ таблицы
 - •Ограничения целостности: внешний ключ таблицы
 - •Ограничения целостности: определение уникального столбца
 - •Ограничения целостности: определение проверочных ограничений
 - •Ограничения целостности: определение значения по умолчанию
 - •Создание таблицы «Студенты» (БД «Сессия»)
 - •Создание таблицы «Дисциплины» (БД «Сессия»)
 - •Создание таблицы «Учебный план» (БД «Сессия»)
 - •Создание таблицы «Сводная ведомость» (БД «Сессия»)
 - •Создание таблицы «Кадровый состав» (БД «Сессия»)
 - •Команда ALTER TABLE
 - •Добавление столбца
 - •Добавление внешних ключей в таблицу
 - •Удаление ограничений
 - •Извлечение данных – команда SELECT
 - •Раздел SELECT -
 - •Ключевые слова ALL и DISTINCT
 - •Использование ключевого слова ТОР
 - •Влияние порядка сортировки на возвращаемый набор данных
 - •Использование ключевого слова WITH TIES
 - •Запрос для таблицы «Студенты», представляющий фамилию, имя и отчество в одной колонке
 - •Раздел FROM
 - •Раздел WHERE
 - •Оператор BETWEEN
 - •Оператор IN
 - •Оператор LIKE
 - •Раздел ORDER BY (сортировка)
 - •Раздел UNION
 - •Связывание таблиц
 - •Выборка данных из таблиц «Дисциплины» и «Учебный_план» (таблицы связаны по ключевому полю ID_Дисциплина)
 - •Использование ключевого слова LEFT [OUTER]
 - •Использование ключевого слова RIGHT [OUTER]
 - •Использование раздела WHERE для связывания таблиц
 - •Раздел GROUP BY
 - •COUNT
 - •Примеры запросов с группировкой
 - •Ключевое слово ALL в разделе GROUP BY
 - •Раздел COMPUTE
 - •Использование команды SELECT...INTO
 - •Работа с таблицей «Контакты»
 - •Команда INSERT
 - •Вставка одной строки
 - •Вставка результата запроса
 - •Вставка результата запроса
 - •Изменение данных – команда UPDATE
 - •Удаление данных – команда DELETE
 - •Операции реляционной алгебры в SQL
 
Работа с таблицей «Контакты»
SELECT *
FROM Контакты
WHERE Телефон LIKE '120%'
ALTER TABLE Контакта
ADD CONSTRAINT FK_Контакт
FOREIGN KEY (ID_Студент)
REFERENCES Студенты
SELECT *
FROM Студенты INNER JOIN Контакты ON Студенты.ID_Студент =
Контакты.ID_Студент
Команда INSERT
INSERT [ INTO] <имя_таблицы>
{[ (<список_колонок>) ]
{VALUES
( { DEFAULT | NULL | <выражение> } [, ..., n] ) | <результирующая_таблица>
}
}
| DEFAULT VALUES
Вставка одной строки
INSERT [INTO] <имя_таблицы> [(<список_колонок>)]
VALUES (<список_значений>)
INSERT Сводная_ведомость VALUES (10, 3, 5)
INSERT INTO Сводная_ведомость (ID_Дисциплина, ID_Студент)
VALUES (3, 10)
Вставка результата запроса
INSERT INTO
<имя_таблицы>
SELECT
CREATE TABLE  | 
	Студент 2000  | 
<выражение_запроса>  | 
|
(ID_Студент_2000  | 
	INTEGER NOT NULL,  | 
Фамилия  | 
	CHAR(30) NOT NULL,  | 
Имя  | 
	CHAR(15) NOT NULL,  | 
Отчество  | 
	CHAR(20) NOT NULL,  | 
Адрес  | 
	CHAR(30),  | 
Телефон  | 
	CHAR(8),  | 
PRIMARY KEY  | 
	(ID_Студент_2000))  | 
INSERT INTO Студент_2000
SELECT ID_Студент, Фамилия, Имя, Отчество, Адрес, Телефон FROM Студенты
WHERE Год_поступления = 2000
Вставка результата запроса
CREATE TABLE Преподаватель_дисциплина
(ID_Дисциплина  | 
	INTEGER NOT NULL,  | 
ID_ПреподавательINTEGER NOT NULL,  | 
|
Наименование  | 
	CHAR(20) NOT NULL,  | 
Фамилия  | 
	CHAR(30) NOT NULL,  | 
Имя  | 
	CHAR(15) NOT NULL,  | 
Отчество  | 
	CHAR(20) NOT NULL,  | 
Должность  | 
	CHAR(20) NOT NULL)  | 
INSERT INTO Преподаватель_дисциплина
SELECT DISTINCT Дисциплины.ID_Дисциплина, Кадровый_состав.ID_Преподаватель, Наименование, Фамилия, Имя, Отчество, Должность
FROM Кадровый_состав, Учебный_план, Дисциплины
WHERE
Кадровый_состав.ID_Преподаватель = Учебный_план.ID_Преподаватель AND Дисциплины.ID_Дисциплина = Учебный_план.ID_Дисциплина
Изменение данных – команда UPDATE
UPDATE <имя_таблицы>
SET { <имя_колонки> = { <выражение> | DEFAULT | NULL }} [,...,n]
{ [ FROM { <имя_исходной_таблицы> } [,...,n] ]
[ WHERE <условие_отбора> ] } UPDATE Учебный_план
SET Количество_часов = Количество_часов + 2 WHERE (Отчетность= ‘э’)
SELECT *
FROM Учебный_план
WHERE (Отчетность= ‘э’) AND (Семестр = 1)
Удаление данных – команда DELETE
DELETE <Имя_таблицы> [WHERE <Условие_отбора> ]
DELETE Учебный_план
WHERE (Отчетность = ‘э')
AND (Семестр = 1)
Операции реляционной алгебры в SQL
 объединение пересечение
UNION [ALL] [CORRESPONDING [BY {Имя_столбца[, ...]}]}
INTERSECT [ALL] [CORRESPONDING [BY {Имя_столбца[, ...]}]}
 разность произведение
EXCEPT [ALL] [CORRESPONDING [BY {Имя_столбца[, ...]}]}
FROM { <Источник_данных> } [,...,n]
<Источник_данных> ::= <имя_таблицы>
соединение
 проекция выборка
FROM { <Источник_данных> } [,...,n]
<Источник_данных> ::= <связка_таблиц>
<тип_связывания> ::=
[INNER | {{LEFT | RIGHT | FULL }[OUTER] } ] JOIN
SELECT DISTINCT <Список_выбора> 
 WHERE <условие_отбора>
