SQL (Structured Query Language – структурированный язык запросов) с 1986г. является стандартным языком реляционных баз данных. В частности, он используется в приложениях Access и Excel. Стандарт языка SQL изложен в [1].
Запросы в MS Access сохраняются и реализуются с помощью языка SQL. Хотя большинство запросов можно создать графическими средствами (запросы по образцу), однако хранятся они в виде инструкций SQL. В ряде случаев (например в подчиненных запросах) можно использовать только язык SQL. В MS Access использован и ниже излагается диалект этого языка. Многочисленные примеры запросов на языке SQL можно найти в базе данных (БД) Борей (файл I:\Access \Sampapps\Nwind.mdb).
SQL заметно отличается от других языков программирования высокого уровня.
1. SQL относится к непроцедурным языкам. Он просто декларирует, что нужно сделать, а исполнение возлагается на СУБД (система управления базами данных).
2. В SQL используется трехзначная логика. Наряду с традиционными логическими значениями TRUE и FALSE используется NULL (НЕИЗВЕСТНО или ОТСУТСТВИЕ ДАННЫХ).
3. Операции осуществляются над целыми наборами данных, а не над отдельными элементами, как в других языках программирования.
Запрос на языке SQL состоит из инструкций. Каждая инструкция может содержать несколько предложений.
FROM
Практически ни один запрос не обходится без предложения FROM, описывающего используемые таблицы или запросы, и имеющего синтаксис
FROM таблицы [IN внешняя_БД]
Таблицы - используемые таблицы/запросы и их взаимосвязи.
Если в предложении FROM присутствует конструкция IN(квадратные скобки указывают, что эта часть предложения не является обязательной), то после зарезервированного слова IN должно стоять имябазы данных, в которой находятся таблицы (предполагается, что используют таблицы не из текущей БД).
Пример
FROM Преподаватели
Если запрос строится на двух таблицах, то необходимо указать способ их объединения – один из следующих (предполагается , что читатель с ними знаком):
, декартово произведение;
INNER JOIN внутреннее объединение;
LEFT JOIN левое внешнее объединение;
RIGHT JOIN правое внешнее объединение.
Сразу после способа объединения необходимо поместить фразу
ON Таблица1.Ключ = Таблица2.ВнешнийКлюч
Ключ - имя ключевого поля со стороны 1.
ВнешнийКлюч - имя связующего поля со стороны N.
Схема данных
На рисунке представлена схема объединения таблиц (схема данных), которая будет использоваться для большинства приводимых ниже примеров. Из рисунка, например, видно, что у таблицы “Экзаменаторы” поле “Предмет” является ключевым (выделено жирным шрифтом), а поле “Преподаватель” – внешним ключом для таблицы “Преподаватели”. Объединение между указанными таблицами – внутреннее с обеспечением целостности данных. Об этом свидетельствуют знаки 1 и ¥ на концах связующей линии (“Преподаватели” – главная таблица, а “Экзаменаторы” – подчиненная). При внешнем объединении можно увидеть на линии объединения таблиц стрелку, направленную к подчиненной таблице. Это значит, что в главной таблице будут показаны все записи, даже если им нет соответствующих записей в подчиненной. Например, можно получить список преподавателей и названий предметов. Если некоторого преподавателя нет в таблице “Экзаменаторы”, то поле названия предмета этого преподавателя будет пусто, если используется объединение LEFT JOIN.