1 / 75

Язык SQL

Язык SQL. SQL – это аббревиатура от Structured Query Language (структурированный язык запросов). Функции языка SQL. Возможности языка SQL. определение данных выбор данных модификация данных управление данными арифметические вычисления и сравнение значений

lakia
Download Presentation

Язык SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Язык SQL SQL– это аббревиатура от Structured Query Language(структурированный язык запросов)

  2. Функции языка SQL

  3. Возможности языка SQL • определение данных • выбор данных • модификация данных • управление данными • арифметические вычисления и сравнение значений • упорядочение строк и/или столбцов • агрегатирование данных

  4. Развитие языка SQL • Начало 70-х годов – разработка экспериментальной реляционной СУБД System R, для которой затем был создан специальный язык SEQUEL • начало 80-х годов – разработка стандарта • 1986 год – выход стандарта SQL1 (SQL86) • 1989 год – расширение стандарта (SQL89) • 1992 год – выход стандарта SQL2 (SQL92) • 1999 год – выход стандарта SQL3 (SQL:1999) • 2003 год – выход стандарта SQL:2003

  5. Типы операторов языка SQL • Операторы языка определения данных • Операторы языка обработки данных • Оператор языка запросов данных • Операторы языка управления данных • Операторы языка обработки транзакций • Операторы языка управления курсором

  6. Операторы языка определения данных • CREATE TABLE – создать таблицу • ALTER TABLE – модифицировать таблицу • DROP TABLE – удалить таблицу • CREATE INDEX – создать индекс • ALTER INDEX – модифицировать индекс • DROP INDEX – удалить индекс

  7. Операторы языка обработки данных • INSERT – вставить данные в таблицу • UPDATE – обновить данные в таблице • DELETE – удалить данные из таблицы Оператор языка запросов данных • SELECT Операторы языка управления данных • GRANT – предоставить привилегии • REVOKE – отменить привилегии

  8. ОператорыязыкаобработкитранзакцийОператорыязыкаобработкитранзакций Операторы языка управления курсором • BEGIN TRANSACTION – начать транзакцию • COMMIT TRANSACTION – завершить транзакцию • SAVE TRANSACTION – создать точку сохранения внутри транзакции • DECLARE CURSOR – объявить курсор • FETCH INTO – переместить курсор • UPDATE WHERE CURRENT – изменить текущее значение

  9. Таблица. Сотрудники

  10. Таблица. Объекты

  11. Таблица. Дежурство

  12. Таблица. Зарплата

  13. Синтаксис команды SELECT SELECT [предикат] {*|таблица.*| [таблица.]поле_1 [,[таблица.] поле_2 [,…]]} [AS псевдоним_1 [, псевдоним_2 [, …]]] FROM таблица_1[, таблица_2, [,…]]] [IN внешняя_БД] [WHERE выражение] [GROUP BY …] [HAVING …] [ORDER BY …] [WITH OWNERACCESS OPTION];

  14. простая форма команды SELECT инструктирует БД, что извлечь из таблицы SELECT КОД_С, ФИО, ЗВАНИЕ FROM Сотрудники; • вывод полного списка столбцов таблицы SELECT * FROM Сотрудники;

  15. Результаты выполнения запросов

  16. изменение порядка вывода столбцов SELECT КОД_С, ДАТА_Р, ФИО, ЗВАНИЕ FROM Сотрудники; • исключение дублирования данных SELECT DISTINCT ЗВАНИЕ FROM Сотрудники; • вывод заданного количества записей SELECT TOP 2 ЗВАНИЕ FROM Сотрудники;

  17. Результаты выполнения запросов

  18. Оператор WHERE команды SELECT • WHERE позволяет устанавливать условия, команда извлекает из таблицы только те строки, для которых такое условие верно. SELECT ФИО, ЗВАНИЕ FROM Сотрудники WHERE ЗВАНИЕ = 'сержант'; SELECT ДАТА_Д, КОД_С FROM Дежурство WHERE КОД_С = 1001;

  19. Результаты выполнения запросов

  20. Использование реляционных операторов в условии SELECT * FROM Сотрудники WHERE КОД_С>=1003; SELECT * FROM Сотрудники WHERE ЗВАНИЕ>'м';

  21. Результаты выполнения запросов

  22. Использование булевых операторов в условии SELECT * FROM Объекты WHERE УЛИЦА = 'Советская' AND ДОМ > 100; SELECT * FROM Объекты WHERE УЛИЦА = 'Советская' OR ДОМ <= 10; SELECT * FROM Сотрудники WHERE NOT ЗВАНИЕ = 'майор';

  23. Результаты выполнения запросов

  24. Область действия оператора NOT SELECT * FROM Объекты WHERE Not УЛИЦА = 'Советская' OR ДОМ <= 10; SELECT * FROM Объекты WHERE NOT (УЛИЦА = 'Советская' OR ДОМ <= 10);

  25. Результаты выполнения запросов

  26. Специальные операторыязыка SQL

  27. Оператор IN • Пример: SELECT * FROM Сотрудники WHERE ЗВАНИЕ IN ('майор', 'капитан');

  28. Оператор BETWEEN • Синтаксис оператора: BETWEEN начальное_значение AND конечное_значение • Пример: SELECT * FROM Объекты WHERE ДОМ BETWEEN 30 AND 100;

  29. Результат выполнения запроса

  30. Оператор LIKE • применим только к текстовым полям • используется специальные символы • символ подчеркивания (_) • знак процента (%)

  31. Использование специальных символов в операторе LIKE • символ подчеркивания SELECT * FROM Сотрудники WHERE ЗВАНИЕ LIKE 'м_ _ _ _'; • знак процента SELECT * FROM Объекты WHERE УЛИЦА LIKE 'С%';

  32. Результат выполнения запроса

  33. Значение NULL • поле не имеет никакого значения SELECT * FROM Объекты WHERE УЛИЦА IS NULL;

  34. Специальные операторы могут использоваться вместе с оператором NOT SELECT * FROM Объекты WHERE УЛИЦА NOT NULL; SELECT * FROM Объекты WHERE NOT УЛИЦА IS NULL;

  35. NOT с IN: SELECT * FROM Сотрудники WHERE ЗВАНИЕ NOT IN ('майор', 'капитан'); SELECT * FROM Сотрудники WHERE NOT ЗВАНИЕ IN ('майор', 'капитан');

  36. Результаты выполнения запросов

  37. Агрегатные (групповые) функции Агрегатные функции производят обобщенное групповое значение полей. Они возвращают одиночное значение для всей группы таблицы. • COUNT – количество выделенных записей • SUM – сумму всех выбранных значений • AVG – среднее значение • MAX – наибольшее значение • MIN – наименьшее значение

  38. Пример использования агрегатных функций Результат SELECT SUM (ПРЕМИЯ) FROM Зарплата; SELECT AVG (ОКЛАД) FROM Зарплата; SELECT COUNT (*) FROM Зарплата; SELECT MAX (ОКЛАД+ПРЕМИЯ) FROM Зарплата; 7500 4200 5 7000

  39. Объединение значений в группы • для объединения значений в группы используется оператор GROUP BY • для задания условий по группе используется оператор HAVING • HAVING должен ссылаться только на агрегаты и поля, которые выбраны GROUP BY

  40. Примеры работы с групповыми значениями Результат SELECT COUNT (КОД_С) FROM Дежурство GROUP BY КОД_С; SELECT КОД_С, count (КОД_С) FROM Дежурство GROUP BY КОД_С HAVING count (КОД_С)>2; SELECT КОД_С, MIN (ДАТА_Д) FROM Дежурство GROUP BY КОД_С HAVING КОД_С IN (1002, 1004);

  41. Формирование вывода запроса • размещение скалярных выражений и констант среди выбранных полей SELECT КОД_С, ОКЛАД/25, ПРЕМИЯ/25 FROM Зарплата;

  42. оператор AS позволяет давать наименование столбцам вывода SELECT КОД_C, ОКЛАД/25 AS ОКЛАД_Д, ПРЕМИЯ/25 AS ПРЕМИЯ_Д FROM Зарплата;

  43. вставка текста в выводимые данные SELECT КОД_С, ОКЛАД, 'руб.', ПРЕМИЯ, 'руб.' FROM Зарплата;

  44. оператор ORDER BY – упорядочивание вывода • ASC – возрастание • DESC – убывание SELECT * FROM Зарплата ORDER BY ОКЛАД;

  45. ORDER BY может использоваться с GROUP BY для упорядочения групп SELECT КОД_С, COUNT (КОД_С) FROM Дежурство GROUP BY КОД_С ORDER BY КОД_С DESC;

  46. Организация запросов к нескольким таблицам • таблицы перечисляются в операторе FROM запроса через запятую • используются полные имя столбцов таблицы имя_таблицы.имя_столбца Объекты.НАЗВАНИЕ

  47. Запрос к двум таблицам можно опускать имена таблиц, если столбцы имеют различные имена SELECT Сотрудники.ФИО, Дежурство.ДАТА_Д FROM Дежурство, Сотрудники WHERE Сотрудники.КОД_С = Дежурство.КОД_С; SELECT ФИО, ДАТА_Д FROM Дежурство, Сотрудники WHERE Сотрудники.КОД_С = Дежурство.КОД_С;

  48. Подзапросы • Подзапрос – это запрос, который размещается внутри другого запроса • Подзапрос должен выбирать только одно значение • Для создания подзапроса, производящего несколько значений, можно использовать оператор IN • Операторы BETWEEN, LIKE и IS NULL не могут использоваться с подзапросами • Можно использовать подзапросы в нутрии предложения HAVING

  49. SELECT * FROM Дежурство WHERE КОД_С = (SELECT КОД_С FROM Сотрудники WHERE ФИО = 'Иванов С.П.');

  50. SELECT * FROM Дежурство WHERE КОД_С IN (SELECT КОД_С FROM Сотрудники WHERE звание = 'майор');

More Related