SQL-запрос: Select * from R1 Система управления базой данных (СУБД) Данные: ID FIO 1. <...> В частности, они определяют следующие проблемы SQL: повторяющиеся строки; неопределённые значения (NULL); явное указание порядка колонок слева направо; колонки без имени и дублирующиеся имена колонок; отсутствие поддержки свойства «=»; использование указателей; высокая избыточность. <...> В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005. <...> Так, в оператор SELECT включена фраза INTERSECT, позволяющая получать пересечения множеств, выданных несколькими запросами. <...> В оператор SELECT включена фраза FULL OUTER JOIN, предназначенная для создания полных внешних соединений таблиц. <...> Конструкторы значений строк состоят из одного или нескольких выражений (например, (NULL, 1, 'Field1')). <...> Transact-SQL SQL/PSM SQL/Persistent Stored Module (соответствует стандарту SQL:2003) Procedural Language/SQL (основан на языке Ada) Procedural Language/PostgreSQL Structured Query Language (очень похож на Oracle PL/SQL) базовая поддержка объектов (Basic Object Support). <...> Таблица 2 Стандарты языка SQL Год Название Иное название 1986 SQL-86 SQL-87 Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году 1989 SQL-89 FIPS 127-1 Немного доработанный вариант предыдущего стандарта 1992 SQL-92 SQL2, FIPS 127-2 1999 SQL:1999 SQL3 Значительные изменения (ISO 9075); уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS 127-2 Добавлена поддержка регулярных выражений, рекурсивных запросов, поддержка триггеров, базовые процедурные расширения, нескалярные типы данных и некоторые объектно ориентированные возможности 2003 SQL:2003 Введены расширения для работы с XMLданными, оконные функции (применяемые для работы с OLAP-базами данных), генераторы последовательностей и основанные на них типы данных 2006 SQL:2006 2008 SQL:2008 Функциональность работы с XML-данными значительно расширена. <...> Оператор SELECT INSERT DELETE UPDATE Описание Применяется для выбора данных Применяется для добавления строк к таблице Применяется для удаления строк из таблицы Применяется для изменения данных Иногда оператор SELECT относят к отдельной категории <...>
SQL_учебное_пособие.pdf
Министерство образования и науки Российской Федерации
Ярославский государственный университет им. П. Г. Демидова
О. В. Власова
SQL
Учебное пособие
Рекомендовано
Научно-методическим советом университета для студентов,
обучающихся по специальности
Прикладная математика и информатика
Ярославль 2011
1
Стр.1
УДК 51
ББК З973.223–0182я73+В1я73
В 58
Рекомендовано
Редакционно-издательским советом университета
в качестве учебного издания. План 2010/2011 учебного года
Рецензенты:
Коромыслов В. А., доктор физико-математических наук,
доцент, профессор Ярославского филиала МИИТ;
кафедра информационно-компьютерных технологий
Института информационных технологий МУБиНТ
В 58
Власова, О. В. SQL: учебное пособие / О. В. Власова ; Яросл.
гос. ун-т им. П. Г. Демидова. – Ярославль : ЯрГУ, 2011. – 136 с.
ISBN 978-5-8397-0806-8
Данное пособие по учебному курсу «Базы данных и экспертные
системы» представляет собой основы использования языка
SQL на примере работы с MS SQL SERVER. Оно ориентировано в
первую очередь на практическое применения языка SQL: создание
структуры реляционной базы данных, осуществление выборки
из базы данных, модификации данных, создание представлений,
индексов. В пособии содержатся теоретические сведения,
включая достаточно подробное описание синтаксиса операторов
SQL и основные сведения о создании представлений и индексов,
приведены методические указания по их использованию.
Пособие содержит большое количество примеров на использование
операторов SQL, которые могут быть полезны на
этапе освоения материала, а также выступать в качестве вопросов
для самопроверки.
Предназначено для студентов, обучающихся по специальности
010501.65 Прикладная математика и информатика (дисциплина
«Базы данных и экспортные системы», блок ОПД), очной формы
обучения.
УДК 51
ББК З973.223–0182я73+В1я73
ISBN 978-5-8397-0806-8
Ярославский государственный
университет им. П. Г. Демидова, 2011
2
Стр.2
Содержание
Введение .............................................................................................................. 3
Глава 1. Историческая справка ..................................................................... 7
1.1. Стандарты ......................................................................................... 7
1.2. Структура SQL ............................................................................... 12
Глава 2. Пример БД «Ресторан» ................................................................... 16
2.1. Описание ......................................................................................... 16
2.2. Диаграмма ....................................................................................... 17
2.3. Данные в таблицах ......................................................................... 18
Глава 3. Выборка данных .............................................................................. 21
3.1. Оператор SELECT. Синтаксис ..................................................... 21
3.2. Примеры запросов с использованием единственной таблицы 24
3.3. Примеры запросов с использованием нескольких таблиц ........ 41
3.4. Соединения нескольких таблиц, используя JOIN ...................... 46
Глава 4. Подзапросы и производные таблицы ......................................... 57
4.1. Производная таблица ..................................................................... 57
4.2. Вложенные подзапросы ................................................................. 58
4.3. Соотнесенные подзапросы ............................................................ 64
4.4. Использование оператора EXISTS ............................................... 66
4.5. Использование операторов ANY и ALL. .................................... 67
4.6. Объединение запросов UNION ..................................................... 70
Глава 5. Функции ранжирования ................................................................ 76
5.1. Функция ROW_NUMBER ............................................................. 76
5.2. Функции RANK() и DENSE_RANK() .......................................... 78
Глава 6. Использование PIVOT и UNPIVOT ............................................. 82
Глава 7. Операторы манипулирования данными .................................... 87
7.1. Оператор INSERT для добавления одной записи ....................... 87
7.2. Оператор INSERT для добавления набора записей ................... 88
7.3. Оператор DELETE ......................................................................... 89
7.4. Оператор UPDATE ......................................................................... 90
Глава 8. Представление ................................................................................. 92
Глава 9. Создание, изменение и удаление таблиц ................................... 98
9.1. Оператор CREATE TABLE ........................................................... 98
9.2. Изменение таблицы после того, как она была создана (ALTER
TABLE) ........................................................................................ 109
9.3. Удаление таблицы (DROP TABLE) ........................................... 111
9.4. Операторы создания и удаления индексов ................................ 111
9.5. Понятие домена ............................................................................ 113
135
Стр.135
Глава 10. Обобщенные табличные выражения (СТЕ) ......................... 115
10.1. Представления, производные таблицы
и выражения CTE ........................................................................ 115
10.2. Рекурсивные запросы ................................................................ 119
10.3. Деревья без рекурсии ................................................................. 124
10.4.Пример использования СТЕ для решения задачи
Коммивояжера ............................................................................. 126
Приложение. Реализация реляционной алгебры
средствами оператора SELECT
(Реляционная полнота SQL) ......................................................... 131
Рекомендуемая литература ......................................................................... 134
Учебное издание
Власова Ольга Владимировна
SQL
Учебное пособие
Редактор, корректор М. В. Никулина
Верстка И. Н. Иванова
Подписано в печать 23.06.2011. Формат 6084 1/16.
Бум. офсетная. Гарнитура "Times New Roman".
Усл. печ. л. 7,90. Уч.-изд. л. 5,13.
Тираж 70 экз. Заказ
Оригинал-макет подготовлен
в редакционно-издательском отделе Ярославского
государственного университета им. П. Г. Демидова.
Отпечатано на ризографе.
Ярославский государственный университет им. П. Г. Демидова.
150000, Ярославль, ул. Советская, 14.
136
Стр.136