ЯЗЫК ЗАПРОСОВ SQL Шалатова И. М. , Мамулина В. С.
ПОНЯТИЕ SQL (Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных БД, таких как Microsoft Office Access, Microsoft SQL Server, Oracle, My. SQL и другие. 2 БД_5 -SQL_запросы_2011
ПОНЯТИЕ SQL В отличие от многих языков программирования SQL удобочитаем и понятен даже новичкам. SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных БД. SQL нельзя назвать языком программирования. 3 БД_5 -SQL_запросы_2011
ДОСТОИНСТВА SQL : • имеет унифицированный набор инструкций, которые можно использовать во всех СУБД, поддерживающих этот язык; • SQL является международным стандартом, признанным такими комитетами по стандартизации, как ISO и ANSI; • помогает создавать улучшенные запросы и упрощает исправление запросов. 4 БД_5 -SQL_запросы_2011
SQL ПОЗВОЛЯЕТ ВЫПОЛНЯТЬ СЛЕДУЮЩИЙ НАБОР ОПЕРАЦИЙ: v создание в базе данных новой таблицы; v добавление в таблицу новых записей; v удаление записей; v выборка записей из одной или нескольких таблиц (в соответствии с заданным условием); v изменение записей; v изменение структур таблиц. БД_5 -SQL_запросы_2011 5
ТИПЫ ЗАПРОСОВ: v запросы на создание или изменение в БД новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта); v запросы на получение данных; v запросы на добавление новых данных v запросы на удаление данных; v обращения к СУБД. БД_5 -SQL_запросы_2011 6
ВСЕ SQL-ЗАПРОСЫ − ЭТО ОПЕРАЦИИ НАД ТАБЛИЦАМИ. В соответствии с этим, запросы делятся на: запросы, оперирующие самими таблицами запросы для создания новых таблиц запросы, оперирующие с отдельными записями или наборами записей. вставка новой строки изменение значений полей строки или набора строк запросы для изменения уже существующих таблиц удаление строки или набора строк БД_5 -SQL_запросы_2011 7
Самый главный вид запроса — это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций: изменить все записи набора просмотреть полученный набор удалить все записи набора БД_5 -SQL_запросы_2011 8
Язык SQL представляет собой совокупность: операторов инструкций вычисляемых функций SQL является непроцедурным языком, не содержит операторов управления, организации 9 подпрограмм, ввода-вывода и т. п. БД_5 -SQL_запросы_2011
ТИПЫ ДАННЫХ SQL строковые с плавающей точкой (дробные числа) и целые числа дата и время 10 БД_5 -SQL_запросы_2011
ОПЕРАТОРЫ операторы определения данных (Data Definition Language, DDL) CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д. ) ALTER изменяет объект DROP удаляет объект операторы манипуляции данными (Data Manipulation Language, DML) SELECT считывает данные, удовлетворяющие заданным условиям INSERT добавляет новые данные UPDATE изменяет существующие данные DELETE удаляет данные БД_5 -SQL_запросы_2011 11
ОПЕРАТОРЫ операторы определения доступа к данным (Data Control Language, DCL) GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом REVOKE отзывает ранее выданные разрешения DENY задает запрет, имеющий приоритет над разрешением операторы управления транзакциями (Transaction Control Language, TCL) COMMIT применяет транзакцию ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции. SAVEPOINT делит транзакцию на более мелкие участки БД_5 -SQL_запросы_2011 12
ПРИМЕРЫ SQL ЗАПРОСОВ 13 БД_5 -SQL_запросы_2011
ОПЕРАТОРЫ ОПРЕДЕЛЕНИЯ ДАННЫХ 14 БД_5 -SQL_запросы_2011
Операторы определения данных ОПЕРАТОР CREATE TABLE teachers ([id_teachers] integer, [FIO] text, [kafedra] text, [date_of_birth] date, [zarplata] integer, CONSTRAINT [Индекс1] PRIMARY KEY ([id_teachers])); 15 БД_5 -SQL_запросы_2011
Операторы определения данных ОПЕРАТОР CREATE TABLE Режим SQL Режим таблицы 16 БД_5 -SQL_запросы_2011
Операторы определения данных ALTER: ДОБАВЛЕНИЕ СТОЛБЦА alter table students add [телефон] text DROP COLUMN: УДАЛЕНИЕ СТОЛБЦА alter table students drop column телефон DROP TABLE: УДАЛЕНИЕ ТАБЛИЦЫ DROP TABLE teachers БД_5 -SQL_запросы_2011 17
ОПЕРАТОРЫ МАНИПУЛИРОВАНИЯ ДАННЫМИ БД_5 -SQL_запросы_2011 18
ИСХОДНЫЕ ДАННЫЕ: БД «ДИПЛОМНОЕ ПРОЕКТИРОВАНИЕ» 19 БД_5 -SQL_запросы_2011
ПРЕДИКАТЫ представляют собой выражения, принимающие истинностное значение. Они могут представлять собой как одно выражение, так и любую комбинацию из неограниченного количества выражений, построенную с помощью булевых операторов AND, OR или NOT. Кроме того, в этих комбинациях могут использоваться круглые скобки для конкретизации порядка выполнения операций. 20 БД_5 -SQL_запросы_2011
ПРЕДИКАТЫ Предикат в языке SQL может принимать одно из трех значений TRUE (истина), FALSE (ложь) или UNKNOWN (неизвестно). Исключение составляют следующие предикаты: NULL (отсутствие значения), EXISTS (существование), UNIQUE (уникальность) и MATCH (совпадение), которые не могут принимать значение UNKNOWN. БД_5 -SQL_запросы_2011 21
ПРИМЕРЫ ПРЕДИКАТОВ: DISTINCT -выбор уникальных строк; ORDER BY <список полей> DESC – сортировка по убыванию; ORDER BY <список полей> ASC – сортировка по возрастанию(принимается по умолчанию); WHERE <предикат> - реализует горизонтальную выборку; AND – «и» OR – «или» NOT – «не» БД_5 -SQL_запросы_2011 22
Операторы манипулирования данными Оператор SELECT Режим SQL: Режим таблицы: 23 БД_5 -SQL_запросы_2011
Операторы манипулирования данными Оператор SELECT Предикат BETWEEN Синтаксис BETWEEN: = <Проверяемое выражение> [NOT] BETWEEN <Начальное выражение> AND <Конечное выражение> 24 БД_5 -SQL_запросы_2011
Операторы манипулирования данными Режим SQL: Режим таблицы: 25 БД_5 -SQL_запросы_2011
Операторы манипулирования данными Оператор SELECT Предикат IN Синтаксис IN = <Проверяемое выражение> [NOT] IN (параметр1, параметр2) 26 БД_5 -SQL_запросы_2011
Операторы манипулирования данными Режим SQL: Режим таблицы: 27 БД_5 -SQL_запросы_2011
Операторы манипулирования данными Переименование столбцов Имена столбцов, указанные в предложении SELECT, можно переименовать. Это делает результаты более читабельными, поскольку имена полей в таблицах часто сокращают с целью упрощения набора. Ключевое слово AS, используемое для переименования, согласно стандарту можно и опустить, т. к. оно неявно подразумевается. 28 БД_5 -SQL_запросы_2011
Операторы манипулирования данными Переименование столбцов Режим SQL: Режим таблицы: БД_5 -SQL_запросы_2011 29
Операторы манипулирования данными Переименование столбцов Режим SQL: Режим таблицы: 30 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ПРЕДИКАТ LIKE Синтаксис LIKE= <Выражение для вычисления значения строки> [NOT] LIKE <Выражение для вычисления значения строки> 31 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ПРЕДИКАТ LIKE Режим SQL: Режим таблицы: 32 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ПРЕДИКАТ IS [NOT] NULL Позволяет проверить отсутствие (наличие) значения в полях таблицы. Использование в этих случаях обычных предикатов сравнения может привести к неверным результатам, т. к. сравнение со значением NULL дает результат UNKNOWN (неизвестно). 33 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ПРЕДИКАТ IS [NOT] NULL Режим SQL: Режим таблицы: БД_5 -SQL_запросы_2011 34
ИСПОЛЬЗОВАНИЕ В ЗАПРОСЕ НЕСКОЛЬКИХ ИСТОЧНИКОВ ЗАПИСЕЙ В предложении FROM допускается указание нескольких таблиц. Простое перечисление таблиц практически не используется, поскольку в результирующем наборе каждая запись из одной таблицы будет сочетаться с каждой записью в другой. Пример: SELECT * FROM students, teacher; 35 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ЯВНЫЕ ОПЕРАЦИИ СОЕДИНЕНИЯ Синтаксис соединения по предикату имеет вид: FROM <таблица 1> [INNER] JOIN <таблица 2> [ON <предикат>] 36 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ЯВНЫЕ ОПЕРАЦИИ СОЕДИНЕНИЯ Режим SQL: Режим таблицы: 37 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ВЫЧИСЛЯЕМЫЕ ПОЛЯ Вычисляемых полей на самом деле в таблице базы данных нет. Они создаются SQL-оператором SELECT. Это дает возможность выполнять любые математические действия над данными. 38 БД_5 -SQL_запросы_2011
Операторы манипулирования данными ВЫЧИСЛЯЕМЫЕ ПОЛЯ Режим SQL: Режим таблицы: 39 БД_5 -SQL_запросы_2011
ТИПЫ ДАННЫХ SQL - СТРОКОВЫЕ 40 БД_5 -SQL_запросы_2011
ТИПЫ ДАННЫХ SQL - С ПЛАВАЮЩЕЙ ТОЧКОЙ ДРОБНЫЕ ЧИСЛА) И ЦЕЛЫЕ ЧИСЛА 41 БД_5 -SQL_запросы_2011
ТИПЫ ДАННЫХ SQL - ДАТА И ВРЕМЯ 42 БД_5 -SQL_запросы_2011