Части оператора SQL
SQL – оператор состоит из трех частей:
· Объявления параметров. Необязательные параметры, которые передаются в SQL-оператор программой. (Используются редко.);
· Управляюший оператор. Часть оператора, которая сообщает ядру обработки запросов тип операции;
· Опциональные объявления. Передают ядру обработки запросов информацию об условиях фильтрации, сортировки, группировки или других условий, которые необходимо применить к обрабатываемым данным.;
Управляющие операторы бывают следующих видов:
· DELETE FROM – удаляет записи из таблицы;
· INSERT ITO - добавляет группу записей в таблицу;
· SELECT – возвращает группу записей, размещая их в динамическом наборе или таблице;
· UDATE – устанавливает значения полей в таблице;
К опциональным объявлениям относятся разного рода директивы типа WHERE, GROUP BY, ORDER BY.
ЧТО ТАКОЕ ЗАПРОС?
Запрос - команда которую вы даете вашей программе базы данных, чтобы она вывела определенную информацию из таблиц в память. Эта информация обычно выводится непосредственно на экран компьютера или терминала, хотя, ее можно также послать принтеру, сохранить в файле (как объект в памяти компьютера), или представить как вводную информацию для другой команды или процесса. Запрос не меняет информацию в таблицах базы, а просто показывает ее пользователю.
ЗАПРОСЫНА ВЫБОРКУ
Существует немало различных видов запросов, но самые простые из них и, к тому же, используемые наиболее часто - это запросы на выборку. С них и принято начинать знакомство с созданием запросов.
Цель запроса на выборку состоит в создании результирующей таблицы, в которой отображаются только нужные по условию запроса данные из базовых таблиц.
Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны расширять ее так чтобы выполнить высоко сложные оценки и обработки данных. Эта команда называется - SELECT(ВЫБОР).
Использование команды SELECT
Для поиска информации в базе данных используется оператор SELECT. Синтаксис оператора следующий:
SELECT список имен полей FROM список имен таблиц
где SELECT, FROM — ключевые слова;
список имен полей — список имен полей, которые выбираются из одной или нескольких таблиц. Для выбора всех полей можно использовать символ «*», вместо перечисления имен всех полей. Если имя поля таблицы содержит пробел, то это имя должно заключаться в квадратные скобки;
список имен таблиц — список имен таблиц, из которых производится выбор.
Имена полей и таблиц нечувствительны к регистру клавиатуры
Простой запрос
Наиболее часто используется оператор SELECT_FROM (выбрать…из..). Он возвращает записи и размещает информацию в динамическом наборе или таблице для дальнейшей ее обработки. Оператор может быть довольно сложным или совершенно простым. Простейшая форма оператора выглядит следующим образом:
strSQL = "SELECT * FROM Publishers"
В данном случае выбираются все поля, которые существуют в таблице.
Сложный запрос
Для выбора конкретных полей из таблицы (те, которые нужны вам для обработки) SQL-запрос записывается так:
strSQL = "SELECT Publishers.[Company Name], Publishers.Address, Publishers.State FROM Publishers"
Использовав данный запрос, вы получите из таблицы Publishers поля [Company Name], Address иPublishers.State.
Примечание. Все поля, которые имеют пробел в имени, берутся в квадратные скобки.
Директива ORDER BY
Оператор SELECT_FROM возвращает записи в результирующий набор в таком порядке, в каком они встречаются в таблице, что бывает не совсем удобно. Иногда желательно информацию сортировать по фамилиям, иногда (как потребует оператор) по именам, датам рождения или приема на работу и т.д. Для представления результирующего набора в удобном для вас виде, т.е. отсортированного, вы можете использовать в операторе SELECT_FROM директиву ORDER BY (по порядку) с добавлением ключевых слов ASC или DESC, где:
· ASC – сортирует записи по возрастающей – (напр. от 0 до 9 или от А до Я);
· DESC – сортирует записи по убывающей - (напр. от 9 до 0 или от Я до А);
strSQL = "SELECT Publishers.[Company Name], Publishers.Address, Publishers.State FROM Publishers ORDER BY Publishers.[Company Name] ASC, Publishers.Address, Publishers.State"
В данном случае вы получите записи, которые по полю [Company Name] будут отсортированы в алфавитном порядке.
Директива WHERE
Ограничение результирующего набора
Используя оператор SELECT_FROM, вы выбираете все записи из необходимых вам полей, а что если вам не нужны все записи? Для этого необходимо ограничить содержимое результирующего запроса и это вы можете сделать с помощью директивы WHERE (где).
strSQL = "SELECT Publishers.[Company Name], Publishers.Address, Publishers.State FROM Publishers WHERE Publishers.State = '" & "CA'"
В таблице Publishers (база данных Biblio.mdb) имеется 727 записей, после выполнения данного SQL-запроса, вы получите всего 18.