Теоретические языки запросов. SQL - структурированный язык запросов. Основные методы его использования
SQL – это язык, который обеспечивает доступ к информации и позволяет
управлять реляционными базами данных. Язык SQL – Structured Query Language– структурированный язык запросов. Язык SQL оперирует данными, представленными в виде логически связанных таблиц.
Язык SQL используется на разных платформах, позволяет работать с ре-
ляционными базами данных различных форматов.
Ср-ва SQL применимы для выполнения операций с локальными и удаленными БД. Основное достоинство реляц способа доступа – небольшая загрузка сети, т.к. по сети передаются только запросы и результат их выполнения. Наиболее эффективны они при работе с удаленными БД. В локальн БД с помощью SQL-запросов можно:
-формировать состав полей НД при выполнении приложения
-включать в НД поля и записи одной или нескольких таблиц
-отбирать записи по сложным критериям
-сор-ть НД по люб полю, в том числе и неиндексированному
-осущ-ть поиск данных по полному или частичному совпадению критерия поиска со знач поля записи.
Язык SQL определяет набор операторов (команд), типы данных, набор
встроенных функций. Так как язык SQL предназначен для манипулирования
данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде, то в него в качестве составных частей входят:
язык манипулирования данными (Data Manipulation Language, DML);
язык определения данных (Data Definition Language, DDL);
язык управления данными (Data Control Language, DCL).
Это не отдельные языки, а различные команды одного языка. Деление
проведено только лишь с точки зрения функционального назначения команд.
Язык манипулирования данными (DML, ЯМД) состоит из четырёх основ-
ных команд:
SELECT (выбрать) – извлечь данные из одной или нескольких таблиц;
INSERT (вставить) – добавить строки в таблицу;
UPDATE (обновить) – изменить значения полей в таблице;
DELETE (удалить) – удалить строки из таблицы.
Язык определения данных (DDL, ЯОД) используется для создания
(CREATE), изменения (ALTER), удаления (DROP) структуры базы данных и ее составных частей – таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и хранимых процедур. Примеры:
CREATE INDEX – создать индекс; ALTER INDEX – модифицировать индекс; DROP INDEX – удалить индекс; DROP TABLE – удалить таблицу;
Язык управления данными (DCL) используется для управления правами
доступа к данным и для управления выполнением процедур в многопользовательской среде. Более точно его можно было бы назвать языком управления доступом. Он состоит из двух основных команд:
GRANT – дать права; REVOKE – забрать права.
С точки зрения прикладного интерфейса существуют две разновидности
языка SQL: интерактивный и встроенный. Интерактивный SQL позволяет в интерактивном режиме вводить запросы, посылать их на выполнение и получать результаты в предназначенном для этого окне. Интерактивный SQL используется в специальных утилитах (например, SQL Explorer).
Встроенный SQL применяется в прикладных программах, написанных на
других языках программирования, позволяет посылать запросы и обрабатывать полученные результаты.
Использование
Реляционные базы данных имеют мощный теоретический фундамент, ос-
нованный на математической теории множеств. Основными операциями над
отношениями являются: выборка (Restriction), проекция (Projection), соединение (Join), объединение (Union), пересечение, разность, декартово произведение (Cross Join).
Операции выборки и проекции являются унарными, поскольку они работают с одним отношением. Операция выборки – это построение горизонтального подмножества, т.е. получение части строк, обладающих заданными свойствами. Операция выборки работает с одной таблицей и позволяет получить либо все, либо те строки таблицы, которые удовлетворяют заданному условию.
Например, вывести все строки таблицы country:
SELECT * FROM country
Операция проекции – это построение вертикального подмножества отно-
шения, т.е. выделение подмножества столбцов таблицы. Операция проекции применяется к одной таблице и в качестве результата выдаёт таблицу, у которой оставлена только часть атрибутов и исключены строки-дубликаты.
Например, вывести названия фирм, город и страну из таблицы vendors:
SELECT VendorName,City,Country FROM vendors
На практике очень часто требуется получить подмножество столбцов и
строк таблицы – выполнить комбинацию выборки и проекции. Для этого достаточно перечислить столбцы таблицы и наложить ограничения на строки. Например, получить фамилии работников, которых зовут Roger:
SELECT firstName,lastName FROM employee
WHERE firstName="Roger"
Декартово произведение R×S двух отношений (двух таблиц) определяет
новое отношение – результат сцепления каждой записи из отношения R с каждой записью из отношения S.
Пусть таблица R имеет поля а1, а2 и таблица S имеет поля b1, b2. Оператор SELECT R.a1, R.a2, S.b1, S.b2 FROM R,S сформирует результи-
рующую таблицу, причём если одна из исходных таблиц имеет N записей и K полей, а другая – M записей и L полей, то их декартово произведение будет содержать N×M записей и K+L полей.
Операция объединения (UNION) позволяет объединить результаты от-
дельных запросов по нескольким таблицам в единую результирующую таблицу. Таким образом, предложение UNION объединяет вывод двух или более SQL-запросов в единый набор строк и столбцов. При этом результаты запросов должны быть совместимы, т. е. иметь одинаковое количество полей с совпадающими типами данных:
Пример. Из таблиц employee и country получить список работников и заказчиков, проживающих во Франции:
SELECT first_name,last_name,job_country FROM employee
WHERE job_country = "France"
UNION
SELECT contact_first,contact_last,country FROM customer
WHERE country = "France"
36.Основные операторы языка SQL. Оператор SELECT: назначение, формат оператора.
Оператор SELECT — важнейший оператор языка SQL. Он используется для отбора записей, удовлетворяющих сложным критериям поиска. Этот оператор имеет следующий формат:
SELECT (*/(знач.1),(знач.2)…/)- список полей.
FROM (табл.1),(табл.2)… - имена набора данных (таблиц).
WHERE (условие отбора (выборки) данных)
При выполнении оператора SELECT результат SQL-запроса — это выборка записей, удовлетворяющих заданному критерию.
В описание оператора SELECT требуется включать список полей и операнд FROM. Остальные операнды не обязательны. В операнде FROM перечисляются имена таблиц, из которых отбираются записи. Список должен содержать, как минимум, одну таблицу.
Список полей определяет состав полей результирующего набора данных, эти поля могут принадлежать разным таблицам. В списке должно быть задано хотя бы одно поле. Если в набор данных требуется включить все поля таблицы (таблиц), то вместо перечисления имен полей можно указать символ "*". Если список содержит поля нескольких таблиц, то для указания принадлежности поля к той или иной таблице используют составное имя, которое включает имя таблицы и имя поля, разделенные точкой: <имя таблицы>.<Имя поля>.