- •Лекция 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 <условие_отбора>