- •Лекция 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 для связывания таблиц
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план INNER JOIN Дисциплины
ON Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина WHERE (Количество_часов > 60) AND (Семестр = 1)
SELECT Наименование, Семестр, Количество_часов FROM Учебный_план, Дисциплины
WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) AND (Количество_часов > 60) AND (Семестр = 1)
LEFT OUTER JOIN |
*= |
RIGHT OUTER JOIN |
=* |
Раздел GROUP BY
GROUP BY [ALL] <условие_группировки> [,...,n]
AVG() - вычисляет среднее значение для указанного столбцаCOUNT() - подсчитывает количество строк в группе (при
выполнении группировки) или количество строк результата запросаМАХ() - возвращает максимальное значение в указанном диапазоне
MIN() - возвращает минимальное значение в указанном диапазоне
SUM() - выполняет обычное суммирование значений в казанном диапазоне
AVG
ф
у
н
к
ц
и
я
COUNT
ф
у
н
к
ц
и
я
МАХ MIN
ф
у
н
к
ц
и
я
SUM
ф
у
н
к
ц
и
я
Примеры запросов с группировкой
SELECT Семестр, SUM(Количество_часов) AS 'Нагрузка' FROM [Учебный_план]
GROUP BY Семестр
SELECT Семестр, COUNT(*) AS 'Экзамены'
FROM [Учебный_план]
WHERE Отчетность = 'э'
GROUP BY Семестр
Ключевое слово ALL в разделе GROUP BY
SELECT Семестр, COUNT(*) AS 'Количество часов > 60'
FROM [Учебный_план] WHERE Количество_часов > 60 GROUP BY Семестр
SELECT Семестр, COUNT(*) AS 'Количество часов > 60'
FROM [Учебный_план] WHERE Количество_часов > 60 GROUP BY ALL Семестр
Раздел COMPUTE
COMPUTE <Функция_агрегирования> (<столбец_агрегирования>)}[,...,
n]
SELECT Наименование,[ BY <столбецСеместр, Количество_группировки>часов FROM[,...,nУчебный] ] _план, Дисциплины
WHERE (Учебный_план.ID_Дисциплина = Дисциплины.ID_Дисциплина) AND
(Семестр = 2) COMPUTE SUM
Использование команды SELECT...INTO
INTO <имя_новой_таблицы>
SELECT {<имя_столбца> [[AS] <псевдоним_столбца>] [, ...,
n] }
INTO <имя_новой_таблицы>
FROM {<имя_исходной_таблицы> [,..., n]}
SELECT ID_Студент, Адрес, Телефон
INTO Контакты
FROM Студенты