- •Язык запросов sql
- •Общие сведения
- •Insert - запрос на добавление;
- •Инструкция select
- •Синтаксис select
- •Расширения инструкции select в access
- •Порядок выполнения выборки
- •Управление списком выбора
- •Указание источника данных
- •Применение реляционных операторов
- •Применение булевых операторов
- •Обработка неопределенных значений
- •Сортировка данных
- •Вычисление агрегатных функций
- •Группировка данных
- •Ограничение для групп данных
- •Выборка из нескольких таблиц
- •Соединение отношений
- •Выборка из нескольких таблиц
- •Соединение отношений
- •Запрос с соединением, использующий from и where
- •Запрос с соединением join
- •Запрос с соединением, использующий from и where
- •Запрос с соединением join
- •Операции с таблицами
- •Изменение структуры таблицы
- •Удаление таблицы
- •Действия со строками
- •Вставка строк в таблицу
- •Изменение данных в таблице
- •Удаление данных из таблицы
- •Инструкция transform
- •In ("Физика", "Математика");
- •Глава 5 Работа с формами
Язык запросов sql
В этой главе описаны возможности Access по созданию запросов непосредственно с помощью языка SQL. Описаны синтаксические конструкции основных инструкций SQL, позволяющих создавать, изменять и удалять таблицы, выполнять различные действия над записями. Основное внимание уделено инструкции SELECT, формирующей из одной или нескольких таблиц БД выборку записей, соответствующих указанным условиям и упорядоченных заданным способом. Приведено множество примеров, иллюстрирующих особенности синтаксиса инструкции SELECT.
Общие сведения
SQL расшифровывается как Structured Query Language - язык структурированных запросов, который используют для создания, изменения и удаления данных в реляционных БД.
В 1981 году компания IBM предложила первый, основанный на языке SQL, программный продукт - SQL/DS, а через несколько лет собственные системы управления базами данных (СУБД) выпустили компании Oracle, Relational Technology и др. К концу 1980-х уже насчитывалось более 20 различных СУБД, каждая из которых развивалась отдельно и имела собственную реализацию языка SQL. Со временем эти диалекты все более сближались. Рынок консолидировался и стабилизировался в стремлении дать пользователю стандартный набор функций языка структурированных запросов, что оказалось удобнее и дешевле при эксплуатации БД. Появилась необходимость в стандартизации SQL.
Практически одновременно с выходом первых коммерческих версий началась разработка стандарта SQL. Принятый в 1989 году международный стандарт SQL (SQL-89) во многих частях имел общий характер и допускал очень широкое толкование.
В этом стандарте полностью отсутствуют такие разделы, как манипулирование схемой БД и динамический SQL.
Поэтому была начата работа над следующим стандартом - SQL2. Она длилась до марта 1992 года, когда был выработан окончательный проект стандарта (IS092). Его принято называть SQL- 92. Этот стандарт более полный и охватывает практически все необходимые разделы: манипулирование БД, управление транзакциями и сессиями, подключение к БД, динамический SQL.
Спецификация SQL 1992 года стала самой популярной, хотя новая версия - SQL3 (называемая SQL-99) - используется уже достаточно долго. Процесс стандартизации SQL3 позволил значительно усовершенствовать язык, дав возможность использовать его со сложными объектами в объектных базах данных.
Для того чтобы основные СУБД (в том числе Access) могли использовать в работе с базами данных собственные диалекты и расширения SQL, специально созданной группой компаний SQL Access Group был разработан интерфейс Common Language Interface (CLI - стандартный интерфейс языка) для основных диалектов SQL. Расширенная версия CL1 является частью стандарта SQL3.
Корпорацией Microsoft была реализована программная поддержка CLI в виде интерфейса Application Programming Interface (API - интерфейс программирования приложений) для операционной системы Windows. Этот интерфейс, получивший название Open Database Connectivity (ODBC - открытая связь с базами данных), дает возможность обмена данными на основе стандарта SQL3 между различными СУБД. Таким образом, Microsoft Access посредством интерфейса ODBC «общается» с другими СУБД и «понимает» стандарт SQL3.
В SQL выделяются два подмножества языка, каждое из которых предполагает реализацию определенных действий, описанных далее в этой главе:
-
DDL (Data Definition Language - язык определения данных):
-
создание, изменение и удаление таблиц базы данных;
-
DML (Data Manipulation Language - язык манипулирования
данными):
-
выборка данных;
-
вставка, изменение и удаление данных;
-
выборка данных из нескольких таблиц.
SQL и Access
Как уже было сказано в предыдущей главе, для того чтобы увидеть запрос не в режиме конструктора, а непосредственно в виде инструкции SQL, необходимо выбрать пункт SQL ев««кн в раскры
вающемся списке кнопки LJ Режим. После этого запрос можно редактировать в соответствии с требованиями синтаксиса SQL.
Когда текст запроса отредактирован разработчиком, запрос следует сохранить. При этом Access автоматически расставляет в некоторых местах запроса квадратные и круглые скобки, чтобы оптимизировать последующую компиляцию. В некоторых случаях с той же целью может быть выполнено автоматическое преобразование сложных выражений и изменение синтаксических конструкций на эквивалентные.
Примечание. Имена полей и таблиц, как правило, автоматически заключаются в квадратные скобки. Это является необходимостью в случае, если имя таблицы или поля состоит из нескольких слов. Однако в рассматриваемой базе данных Education таких имен нет, поэтому квадратные скобки расставлять необязательно.
Существует несколько основных инструкций SQL для создания запросов различных типов: