Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Введение. Глава 1. Историческая справка





Содержание

Введение. 5

Глава 1. Историческая справка. 10

1.1. Стандарты. 10

1.2. Структура SQL. 16

Глава 2. Пример БД «Ресторан». 20

2.1. Описание. 20

2.2. Диаграмма. 21

2.3. Данные в таблицах. 22

Глава 3. Выборка данных. 25

3.1. Оператор SELECT. Синтаксис. 25

3.2. Примеры запросов с использованием единственной таблицы. 28

3.2.1. Выборка без использования фразы WHERE. 28

3.2.1.1. Простейшие примеры. 28

3.2.1.2. Исключение дубликатов (DISTINCT). 29

3.2.1.3. Выборка вычисляемых значений. 29

3.2.2. Выборка c использованием фразы WHERE. 31

3.2.2.1. Использование операторов сравнения. 31

3.2.2.2. Сравнение с NULL. 32

3.2.2.3. Использование BETWEEN. 33

3.2.2.4. Использование IN (NOT IN). 33

3.2.2.5. Использование LIKE. 34

3.2.2.6. Выборка с упорядочением. 36

3.2.3. Использование агрегатных функций для подведения итогов. 38

3.2.3.1. Агрегатные функции без использования фразы GROUP BY. 39

3.2.3.2. Фраза GROUP BY. 41

3.2.3.3. Раздел HAVING. 45

3.3. Примеры запросов с использованием нескольких таблиц. 47

3.3.1. Соединения «с условием WHERE». 47

3.3.2. Соединение таблиц с дополнительными условиями. 51

3.3.2.1. Соединение таблицы со своей копией. 52

3.4. Соединения нескольких таблиц, используя JOIN. 53

3.4.1. Внутреннее соединение. 54

3.4.2. Внешнее соединение. 55

3.4.2.1. Левое внешнее соединение. 55

3.4.2.2. Правое внешнее соединение. 56

3.4.2.3. Полное внешнее соединение. 57

3.4.2.4. Перекрёстное соединение. 58

3.4.3. Реальные примеры соединений. 59

Глава 4. Подзапросы и производные таблицы.. 64

4.1.Производная таблица. 64

4.2. Вложенные подзапросы.. 65

4.2.1 Простые вложенные подзапросы.. 66

4.2.2. Использование одной и той же таблицы во внешнем и вложенном подзапросе 69

4.2.3. Использование агрегатных функций в подзапросах. 70

4.2.4. Подзапросы в предложении HAVING. 71

4.3. Соотнесенные подзапросы. 72

4.4 Использование оператора EXISTS. 74

4.5. Использование операторов ANY и ALL. 75

4.6. Объединение запросов UNION. 79

4.6.1. UNION и устранение дубликатов. 81

4.6.2. Использование строк и выражений с UNION. 82

4.6.3. Использование UNION с ORDER BY. 83

4.6.4. Реализация внешнего полного соединения через запросы с UNION. 84

Глава 5. Функции ранжирования. 85

5.1. Функция ROW_NUMBER. 86

5.2. Функции RANK() и DENSE_RANK() 88

Глава 6. Использование PIVOT и UNPIVOT. 91

Глава 7. Операторы манипулирования данными. 97

7.1. Оператор INSERT для добавления одной записи. 97

7.2. Оператор INSERT для добавления набора записей. 99

7.3. Оператор DELETE. 100

7.4. Оператор UPDATE. 101

Глава 8. Представление. 103

Глава 9. Создание, изменение и удаление таблиц. 109

9.1. Оператор CREATE TABLE. 109

9.2. Изменение таблицы после того как она была создана (ALTER TABLE). 122

9.3. Удаление таблицы (DROP TABLE). 124

9.4. Операторы создания и удаления индексов. 125

9.5. Понятие домена. 127

Глава 10. Обобщенные табличные выражения (СТЕ). 128

10.1. Представления, производные таблицы и выражения CTE. 128

10.2. Рекурсивные запросы. 133

10.3. Деревья без рекурсии. 139

10.4. Пример использования СТЕ для решения задачи Коммивояжера. 141

Глава 11. Этапы выполнения команды SQL. 147

11.1. Оптимизация запросов. 148

Приложение 1. Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL). 157

Рекомендуемая литература. 161


Введение.

Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных (БД) с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти БД создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).

Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных БД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые версии СУБД. В них тем или иным путем решаются специфические проблемы параллельных процессов, целостности (правильности) и безопасности данных, а также санкционирования доступа.

Ясно, что совместная работа пользователей в сетях с помощью унифицированных средств общения с базами данных возможна только при наличии стандартного языка манипулирования данными, обладающего средствами для реализации перечисленных выше возможностей. Таким языком стал SQL, разработанный в 1974 году фирмой IBM для экспериментальной реляционной СУБД System R.

Язык SQL является инструментом, предназначенным для выборки и обработки информации, содержащейся в компьютерной базе данных. SQL — это сокращенное название структурированного языка запросов (S tructured Q uery L anguage). По историческим причинам аббревиатура SQL читается обычно как «сиквел», но используется и альтернативное произношение «эскюэль». Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных одного определенного типа, называемых реляционными. На рис. 1.1 изображена схема работы SQL. Согласно этой схеме, в вычислительной системе имеется база данных, в которой хранится информация. Компьютерная программа, которая управляет базой данных, называется системой управления базой данных (СУБД). Если пользователю необходимо получить информацию из БД, он запрашивает её у СУБД c помощью команды SQL. СУБД обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных; отсюда и название «структурированный язык запросов».

База данных
Система управления базой данных (СУБД)
SQL-запрос: Select * from R1
Данные: ID FIO 1 Иванов И. И.

 

 


Рис.1.1 Применение SQL для доступа к базе данных

Однако название SQL не совсем соответствует действительности. Во-первых, сегодня SQL представляет собой нечто большее, чем просто инструмент создания запросов. Сейчас этот язык используется для реализации всех функциональных возможностей, которые СУБД предоставляет пользователю. К ним относятся:

Ø Организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами БД.

Ø Выборка данных. SQL дает пользователю возможность изменять БД, т.е. добавлять в неё новые данные, а также удалять или обновлять уже имеющиеся в ней данные.

Ø Управление доступом. С помощью SQL можно ограничить возможности пользователя по выборке и изменению данных и защитить их от несанкционированного доступа.

Ø Совместное использование данных. SQL координирует совместное использование данных пользователям, работающим параллельно, чтобы они не мешали друг другу.

Ø Целостность данных. SQL позволяет обеспечить целостность БД, защищая её от разрушения из-за несогласованных изменений или отказа системы.

Таким образом, SQL является достаточно мощным языком, обеспечивающим эффективное взаимодействие с СУБД.

Во-вторых, SQL – это не полноценный компьютерный язык типа С++ или Java. В нем нет инструкций для проверки условий, организации циклов. SQL является подъязыком БД, в который входит около сорока инструкций, предназначенных для управления БД. Инструкции SQL встраиваются в базовый язык, например С++, и дают возможность получать доступ к БД. Кроме того, из такого языка как С++ инструкции SQL можно посылать в СУБД, используя интерфейс вызова функций.

Наконец, SQL – это слабоструктурированный язык. Инструкции SQL напоминают английские предложения и содержат «слова-пустышки», не влияющие на смысл инструкции, но облегчающие её чтение. В SQL почти нет нелогичностей, и к тому же имеется ряд специальных правил, предотвращающих создание инструкций, которые выглядят как абсолютно правильные, но не имеют смысла.

SQL на сегодняшний день является единственным стандартным языком для работы с реляционными БД. Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. SQL – это неотъемлемая часть СУБД, с помощью которой осуществляется связь пользователя с ней.


 

Достоинства SQL.

SQL – это легкий для понимания язык и в тоже время универсальное программное средство управления данными. Успех языку SQL принесли следующие его особенности:

1. независимость от конкретной СУБД;

2. межплатформенная переносимость;

3. наличие стандартов;

4. реляционная основа;

5. поддержка со стороны компаний IBM(СУБД DB2) и Microsoft (протокол OBDC и технология ADO);

6. возможность выполнения специальных интерактивных запросов;

7. поддержка архитектуры клиент/сервер;

8. возможность различного представления данных;

9. интеграция с языками высокого уровня;

10. расширяемость и поддержка объектно-ориентированных технологий.

 

Недостатки SQL

1. Несоответствие реляционной модели данных

Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности, они указывают на следующие проблемы SQL:

  • повторяющиеся строки;
  • неопределённые значения (NULL);
  • явное указание порядка колонок слева направо;
  • колонки без имени и дублирующиеся имена колонок;
  • отсутствие поддержки свойства «=»;
  • использование указателей;
  • высокая избыточность.

2. Сложность

Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов, он стал настолько сложным, что превратился в инструмент программиста.

3. Отступления от стандартов

Несмотря на наличие международного стандарта SQL, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

4. Сложность работы с иерархическими структурами

Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения (например, Oracle использует выражение CONNECT BY). В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005. В версии MS SQL Server 2008 появился новый тип данных — hierarchyid, упрощающий манипуляцию древовидными структурами.


 

Date: 2015-09-18; view: 365; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию