SQL (Structured Query Language) — это язык программирования, который используется при работе с реляционными базами данных в современных СУБД (ORACLE, dBASE IY, dBASE Y, Paradox, Access и др.).
Язык SQL стал стандартом языков запросов для работы с реляционными базами данных для архитектуры как файл-сервер, так и клиент-сервер, а также в условиях применения системы управления распределенными базами данных. SQL использует ограниченный набор команд, но в то же время — это реляционно полный язык, предназначенный для работы с базами данных, создания запросов выборки данных, выполнения вычислений, обеспечения их целостности. Синтаксис версий языка SQL может в определенной степени различаться для отдельных СУБД.
Организация запросов к базе данных на языке SQL
Синтаксис оператора SELECT
Выборка с помощью оператора SELECT — наиболее частая команда при работе с реляционной базой данных. Этот оператор обладает большими возможностями по заданию структуры выходной информации, указанию источников входной информации, способа упорядочения выходной информации, формированию новых значений и т.п.
При выполнении выборки могут формироваться и новые данные, так называемые вычисляемые поля, являющиеся результатом обработки исходных данных. Возможно упорядочение выводимых данных, формирование групп записей, подсчет групповых итогов, формирование подмножеств данных (записей), являющихся основой для формирования условий по обработке следующего этапа — вложенных запросов.
Универсальный оператор SELECT имеет следующую конструкцию:
В таблице 19.1. представлены аргументы оператора SELECT.
Синтаксис оператора SELECT весьма лаконично реализует сложные алгоритмы запросов. Практическое освоение элементов постепенное — методом от простого к сложному, а отладка оператора сложной конструкции может идти по частям.
Слово SELECT определяет структуру выводимой информации, это могут быть поля таблиц, вычисляемые выражения.
Вычисляемое выражение состоит из:
• полей таблиц;
• констант;
• знаков операций;
• встроенных функций;
• групповых функций SQL.
Синтаксис оператора SELECT весьма лаконично реализует сложные алгоритмы запросов. Практическое освоение элементов постепенное — методом от простого к сложному, а отладка оператора сложной конструкции может идти по частям.
Таблица 19.1.
Аргумент
Назначение
Предикат
Предикаты используются для ограничения числа возвращаемых записей:
ALL — все записи;
DISTINCT — записи, различающиеся в указанных для вывода полях;
DISTINCTROW — полностью различающиеся записи по всем полям; ТОР — возврат заданного числа или процента записей в диапазоне, соответствующем фразе ORDER BY
Таблица
Имя таблицы, поля которой формируют выходные данные
Поле/, поле 2
Имена полей, используемых при отборе (порядок их следования определяет выходную структуру выборки данных)
Псевдоним1, Псевдоним2
Новые заголовки столбцов результата выборки данных
FROM
Определяет выражение, используемое для задания источника формирования выборки (обязательно присутствует в каждом операторе)
Внешняя база данных
Имя внешней базы данных — источника данных для выборки
[WHERE... ]
Определяет условия отбора записей (необязательное)
[GROUP BY... ]
Указание полей (максимум — 10) для формирования групп, по которым возможно вычисление групповых итогов; порядок их следования определяет виды итогов (старший, промежуточный и т.п.) — необязательное
[HAVING... ]
Определяет условия отбора записей для сгруппированных данных (задан способ группирования GROUP BY...) — необязательное
[ORDER BY... ]
Определяет поля, по которым выполняется упорядочение выходных записей; порядок их следования соответствует старшинству ключей сортировки. Упорядочение возможно как по возрастанию (ASC), так и по убыванию (DESC) значения выбранного поля
[WITH OWNERACCESS OPTION]
При работе в сети в составе защищенной рабочей группы для указания пользователям, не обладающим достаточными правами, возможности просматривать результат запроса или выполнять запрос
Слово SELECT определяет структуру выводимой информации, это могут быть поля таблиц, вычисляемые выражения.
Вычисляемое выражение состоит из:
• полей таблиц;
• констант;
• знаков операций;
• встроенных функций;
• групповых функций SQL.
Пример.
SELECT [Имя],[Фамилия] FROM Студент
SELECT TOP 5 [Фамилия] FROM Студент
SELECT TOP 5 [Фамилия] FROM Студент ORDER BY [Группа]
В первом случае выбираются все записи таблицы Студент в составе указанных полей. Если отбираются все поля в том же самом порядке, что и в структуре таблицы, можно указать символ точки. Во втором случае отбирается 5 первых фамилий студентов, в третьем случае — выбирается 5 первых фамилий студентов, упорядочение записей осуществлено по учебным группам.
Если используются одноименные поля из нескольких таблиц, включенных в предложение FROM, следует указать перед именем такого поля имя таблицы через . (точку): [Студент заочник].[Группа] и [Студент].[Группа] — два одноименных поля из разных таблиц.
Для изменения заголовка столбца с результатами выборки используется служебное слово AS.
Пример.
SELECT DISTINCT [Дата рождения] AS Юбилей FROM Студент
SELECT [Фамилия] &" "& [Имя] AS ФИО, [Дата рождения] AS Год FROM Студент
В первом случае будут выведены неповторяющиеся даты рождения студентов, которые имеют новое наименование — Юбилей. Во втором случае в результирующей таблице присутствуют все записи, но вместо [Дата рождения] указан Год и вместо Фамилия и Имя, соединенных вместе через пробел, — ФИО.
Наиболее часто слово AS применяется для именования вычисляемых полей.