Глава 4. Подзапросы и производные таблицы 65
4.1.Производная таблица. 65
4.2. Вложенные подзапросы 66
4.2.1 Простые вложенные подзапросы 67
4.2.2. Использование одной и той же таблицы во внешнем и вложенном подзапросе 70
4.2.3. Использование агрегатных функций в подзапросах. 71
4.2.4. Подзапросы в предложении HAVING. 72
4.3. Соотнесенные подзапросы. 73
4.4 Использование оператора EXISTS. 75
4.5. Использование операторов ANY и ALL. 76
4.6. Объединение запросов UNION. 80
4.6.1. UNION и устранение дубликатов. 82
4.6.2. Использование строк и выражений с UNION. 83
4.6.3. Использование UNION с ORDER BY. 84
4.6.4. Реализация внешнего полного соединения через запросы с UNION. 85
Глава 5. Функции ранжирования. 86
5.1. Функция ROW_NUMBER. 87
5.2. Функции RANK() и DENSE_RANK() 89
Глава 6. Использование PIVOT и UNPIVOT. 92
Глава 7. Операторы манипулирования данными. 98
7.1. Оператор INSERT для добавления одной записи. 98
7.2. Оператор INSERT для добавления набора записей. 100
7.3. Оператор DELETE. 101
7.4. Оператор UPDATE. 102
Глава 8. Представление. 104
Глава 9. Создание, изменение и удаление таблиц. 110
9.1. Оператор CREATE TABLE 110
9.2. Изменение таблицы после того как она была создана (ALTER TABLE). 123
9.3. Удаление таблицы (DROP TABLE). 125
9.4. Операторы создания и удаления индексов. 126
Глава 10. Обобщенные табличные выражения (СТЕ). 129
10.1.Представления, производные таблицы и выражения CTE. 129
10.2.Рекурсивные запросы. 134
10.3.Деревья без рекурсии. 139
10.4.Пример использования СТЕ для решения задачи Коммивояжера. 142
Глава 11. Этапы выполнения команды SQL. 148
11.1. Оптимизация запросов. 149
Приложение 1. Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL). 158
Рекомендуемая литература 162
Введение.
Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных (БД) с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти БД создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).
Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных БД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые версии СУБД. В них тем или иным путем решаются специфические проблемы параллельных процессов, целостности (правильности) и безопасности данных, а также санкционирования доступа.
Ясно, что совместная работа пользователей в сетях с помощью унифицированных средств общения с базами данных возможна только при наличии стандартного языка манипулирования данными, обладающего средствами для реализации перечисленных выше возможностей. Таким языком стал SQL, разработанный в 1974 году фирмой IBM для экспериментальной реляционной СУБД System R.
Язык SQL является инструментом, предназначенным для выборки и обработки информации, содержащейся в компьютерной базе данных. SQL — это сокращенное название структурированного языка запросов (Structured Query Language). По историческим причинам аббревиатура SQL читается обычно как «сиквел», но используется и альтернативное произношение «эскюэль». Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных одного определенного типа, называемых реляционными. На рис. 1.1 изображена схема работы SQL. Согласно этой схеме, в вычислительной системе имеется база данных, в которой хранится информация. Компьютерная программа, которая управляет базой данных, называется системой управления базой данных (СУБД). Если пользователю необходимо получить информацию из БД, он запрашивает её у СУБД c помощью команды SQL. СУБД обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных; отсюда и название «структурированный язык запросов».
Рис.1.1 Применение SQL для доступа к базе данных
Однако название SQL не совсем соответствует действительности. Во-первых, сегодня SQL представляет собой нечто большее, чем просто инструмент создания запросов. Сейчас этот язык используется для реализации всех функциональных возможностей, которые СУБД предоставляет пользователю. К ним относятся:
Do'stlaringiz bilan baham: |