Конспект лекций

Вид материалаКонспект
7.5.Предложение FROM
Дополнительные сведения
7.6.Предложение WHERE
Дополнительные сведения
Подобный материал:
1   ...   15   16   17   18   19   20   21   22   ...   30

7.5.Предложение FROM


Указывает таблицы или запросы, которые содержат поля, перечисленные в инструкции SELECT.

Синтаксис


SELECT списокПолей

FROM выражение [IN внешняяБазаДанных]

Ниже перечислены аргументы инструкции SELECT, содержащей предложение FROM:

Элемент

Описание

списокПолей

Имена одного или нескольких полей, из которых отбираются данные, вместе с псевдонимами, статистическими функциями SQL, предикатами отбора (ALL, DISTINCT, DISTINCTROW или TOP) и другими элементами инструкции SELECT.

выражение

Выражение, определяющее одну или несколько таблиц, откуда извлекаются данные. Это выражение может быть именем отдельной таблицы, именем сохраненного запроса или результатом операции INNER JOIN, LEFT JOIN, или RIGHT JOIN.

внешняяБазаДанных

Полное имя внешней базы данных, содержащей таблицы, указанные в аргументе выражение.

Дополнительные сведения


Предложение FROM должно присутствовать в каждой инструкции SELECT.

Порядок следования имен таблиц в аргументе выражение не существенен.

Для повышения быстродействия и облегчения применения рекомендуется использовать присоединение таблиц вместо предложения IN при загрузке данных из внешней базы данных.

Следующий пример показывает, как отобрать данные из таблицы "Сотрудники":


SELECT Фамилия, Имя

FROM Сотрудники;

7.6.Предложение WHERE


Определяет, какие записи из таблиц, перечисленных в предложении FROM, следует включить в результат выполнения инструкции SELECT, UPDATE или DELETE.

Синтаксис


SELECT списокПолей

FROM выражение

WHERE условиеОтбора


Инструкция SELECT, содержащая предложение WHERE, состоит из трех частей:

Элемент

Описание

списокПолей

Имена одного или нескольких полей, из которых отбираются данные, вместе с псевдонимами, предикатами отбора (ALL, DISTINCT, DISTINCTROW или TOP) и другими элементами инструкции SELECT.

выражение

Имена одной или нескольких таблиц, из которых отбираются данные.

условиеОтбора

Выражение, которому должны удовлетворять записи, включаемые в результат выполнения запроса.

Дополнительные сведения


Ядро базы данных Microsoft Jet отбирает записи, соответствующие условиям, перечисленным в предложении WHERE. Если не задавать предложение WHERE, запрос возвращает все строки таблицы. Если в запросе определить несколько таблиц и не включить предложение WHERE или JOIN, запрос будет возвращать скалярное произведение таблиц.

Предложение WHERE не является обязательным, однако, если оно присутствует, то должно следовать после предложения FROM. Например, можно отобрать всех сотрудников отдела продаж (WHERE Отдел = 'Продажи') или всех клиентов в возрасте от 18 до 30 лет (WHERE Возраст Between 18 And 30).


Если не использовать предложение JOIN для выполнения операций объединения нескольких таблиц, результирующий объект Recordset нельзя будет изменять.

Предложение WHERE похоже на предложение HAVING. Предложение WHERE указывает, какие записи должны быть отобраны. Аналогично, после того как записи будут сгруппированы с помощью предложения GROUP BY, предложение HAVING указывает, какие из полученных записей должны быть отобраны.

Используйте предложение WHERE для исключения записей из группировки, выполняемой предложением GROUP BY.


Допускается использование различных выражений. Например, следующая инструкция SQL отбирает всех сотрудников, зарплата которых превышает 810 000 рублей:


SELECT Фамилия, Оклад

FROM Сотрудники

WHERE Оклад > 810000;


Предложение WHERE может содержать до 40 выражений, связанных логическими операторами, такими как And и Or.


Имена полей, которые содержат пробелы или знаки препинания, необходимо заключать в квадратные скобки ([ ]). Например, в таблицу, содержащую сведения о клиентах, можно включить сведения о привычках клиентов:


SELECT [Любимый ресторан]


При указании аргумента условиеОтбора литералы даты символы дат должны вводиться в американском формате, даже если используется неамериканская версия ядра базы данных Jet. Например, дата 10 мая 1996 года записывается в России как 10.05.94, а в США как 5/10/94. Обязательно заключите даты в символы "решетки" (#), как показано в следующих примерах.


Для отбора записей с этой датой в российской базе данных необходимо использовать следующую инструкцию SQL:


SELECT *

FROM Заказы

WHERE ДатаИсполнения = #5/10/96#;


Кроме того, можно применять функцию DateValue, которая поддерживает международные стандарты, заданные в Microsoft Windows. Например, для отбора записей в американской базе данных создайте текст программы:


SELECT *

FROM Заказы

WHERE ДатаИсполнения = DateValue('5/10/96');


Для российской базы данных текст программы будет выглядеть так:


SELECT *

FROM Заказы

WHERE ДатаИсполнения = DateValue('10.5.96');


Примечание. Если столбец, на который имеется ссылка в строке условий, имеет тип GUID, используется другой синтаксис:


WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}


Фигурные скобки и дефисы являются обязательными.