- •Лекция 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
Раздел WHERE
WHERE <условие_отбора>| <имя_столбца> {= | *= | =*}
<имя_столбца>
SELECT Фамилия, Имя, Отчество, Номер_Группы, Год_поступления
FROM Студенты
WHERE Год_поступления < 2000
Оператор BETWEEN
<выражение> [NOT] BETWEEN <начало_диапазона> AND <конец_диапазона>
(<выражение>>=<начало_диапазона>) AND (<выражение><=<конец_диапазона>)
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины ON
Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
WHERE Количество_часов
BETWEEN 50 AND 100
Оператор IN
<выражение> [NOT] IN (<выражение1>,…,<выражениеN>)
SELECT Наименование, Семестр, Количество_часов
FROM Учебный_план INNER JOIN Дисциплины ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE Наименование IN ('Английский язык', 'Физическая культура')
Оператор LIKE
<Символьное_выражение> [NOT] LIKE <образец>
SELECT Фамилия, Имя, Отчество, Должность
FROM Кадровый_состав WHERE Должность LIKE '%пр%'
Раздел ORDER BY (сортировка)
ORDER BY {<условие_сортировки>[ASC | DESC] }[,...,n]
SELECT TOP 20 Наименование, Семестр, Количество_часов FROM Учебный_план, Дисциплины
WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) ORDER BY Семестр, Количество_часов DESC
Раздел UNION
_1> UNION [ALL]
<Спецификация_Запроса _2>
…
[UNION [ALL]] <Спецификация_Запроса
SELECT Фамилия, Имя, Отчество, Должность, Телефон_ n> FROM Кадровый_состав
WHERE Телефон LIKE '120%'
UNION
SELECT Фамилия, Имя, Отчество, Новый_столбец = 'Студент', Телефон
FROM Студенты
WHERE Телефон LIKE '120%' ORDER BY
Связывание таблиц
<связка_таблиц> ::= <левая_таблица><тип_связывания><правая_таблица>
ON <условие_связывания>
<тип_связывания> ::=
[INNER | {{LEFT | RIGHT | FULL } [OUTER] } ] JOIN
<условие_связывания> |
=, <, >, <=, >=, !-, <> |
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина
Выборка данных из таблиц «Дисциплины» и «Учебный_план» (таблицы связаны по ключевому полю ID_Дисциплина)
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE Количество_часов > 60
Использование ключевого слова LEFT [OUTER]
SELECT Наименование, Семестр, Отчетность
FROM Дисциплины LEFT OUTER JOIN Учебный_план
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Наименование LIKE '%информатик%')
Использование ключевого слова RIGHT [OUTER]
SELECT Отчетность, Семестр, Наименование
FROM Учебный_план RIGHT OUTER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Наименование LIKE '%информатик%')