Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

4.1.3.Предложение from

Предложение FROM содержит список имен таблиц, разделенных запятыми. Каждое имя определяет таблицу, содержащую данные, извлекаемые данным запросом. Такие таблицы называются исходными таблицами запроса (инструкции SELECT), поскольку все данные, содержащиеся в таблице результатов запроса, берутся из них.

При составлении много табличных запросов может, что в разных таблицах имеются одноименные столбцы. При этом необходимо перед именем столбца через точку указать имя таблицы. Использование имен таблиц при написании имен столбцов может привести к громоздким записям. Намного лучше присвоить каждой таблице какое-нибудь краткое имя. Такие имена называются псевдонимами таблиц. Формат задания псевдонимов таблиц следующий:

SELECT . . .

FROM <таблица1 псевдоним> [, <таблица1 псевдоним> ...]

WHERE . . .

Например, запрос

SELECT SLUZHASCHIE.FAMILY, SLUZHASCHIE.NAME, OFFISY.CITY

FROM SLUZHASCHIE, OFFISY

WHERE SLUZHASCHIE.ID_OFC = OFFISY.ID_OFC

после введения в него псевдонимов выглядит так

SELECT С.FAMILY, С.NAME, О.CITY

FROM SLUZHASCHIE С, OFFISY О

WHERE С.ID_OFC = О.ID_OFC

4.1.4.Предложение where

Предложение WHERE используется для включения в набор данных лишь нужных записей. В этом случае оператор SELECT имеет следующий формат:

SELECT {* | <Список_полей>}

FROM <Список_таблиц>

WHERE <условие_выборки>

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

В SQL используется множество условий отбора, позволяющих создавать различные типы запросов. Мы рассмотрим пять основных условий отбора:

сравнение – значение одного выражения сравнивается со значением другого выражения. Например, такое условие отбора используется для отбора всех офисов, находящихся в Московской области, или всех служащих, фактические объемы продаж которых превышают плановые;

проверка на принадлежность диапазону – проверяется, попадает ли указанное значение в определенный диапазон. Например, такое условие отбора используется для нахождения служащих, чей возраст больше 30, но меньше 50 лет;

проверка на членство в множестве – проверяется, совпадает ли значение выражения с одним из значений заданного множества. Например, такое условие отбора используется для выбора офисов, расположенных в городах Москва, Пенза или Самара;

проверка на соответствие шаблону – проверяется, соответствует ли значение, содержащееся в столбце, определенному шаблону. Например, такое условие используется для выбора клиентов, чьи имена начинаются с буквы «А»;

проверка на равенство на значение NULL – проверяется, содержится ли в столбце значение NULL. Например, такое условие отбора используется для нахождения всех служащих, которым не был назначен руководитель.

Сравнение

Наиболее общим типом условия выборки является сравнение. При сравнении СУБД вычисляет и сравнивает значения двух выражений для каждой строки данных. Синтаксис сравнения можно записать следующим образом:

<выражение1> <оператор> <выражение2>

оператор − {= | < | > | <= | >= | !< | !> | <> | !=}.

Сравнение столбца с константой. Чаще всего выражения бывают простыми и содержат в качестве выражения1 имя столбца, а в качестве выражения2 – константу. При этом условие поиска имеет такой вид:

<имя_столбца> <оператор> <константа>.

Здесь в качестве константы явно указываются строковые или числовые значения.

Сравнение столбца с результатом вычисления выражения. В более сложных ситуациях условие поиска в предложении WHERE может быть сформулировано при помощи выражения:

<выражение1> <оператор> <имя_столбца>

Или может использоваться и другой вариант написания условия поиска

<имя_столбца> <оператор> <выражение2>

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

Использование логических выражений. Сложные логические выражения строятся при помощи операторов AND, OR и NOT. Их использование, а также построение из них сложных выражений подчиняется стандартным правилам, принятым для большинства алгоритмических языков, с одним исключением: операции отношения в них имеют больший приоритет, чем логические операции, что избавляет от необходимости расстановки многочисленных скобок.

Пример: получить фамилию и имя служащих из таблиц SLUZHASCHIE, плюс город в котором он работает из таблицы OFFISY. При этом возраст служащего должен быть не меньше 30 и не больше 50 лет.

SELECT S.FAMILY, S.NAME, О.CITY

FROM SLUZHASCHIE S, OFFISY О

WHERE (S.ID_OFC = О.ID_OFC) AND

(S.AGE >= 30 AND S.AGE <= 50)

Когда СУБД сравнивает значения двух выражений, могут получиться следующие результаты:

  • если значение истинно, то результат проверки имеет значение TRUE;

  • если значение ложно, то результат проверки имеет значение FALSE

  • если хотя бы одно из выражений имеет значение NULL, то результат проверки имеет значение NULL.

Следует помнить, что в трехзначной логике SQL в результат запроса попадают только те строки, для которых условие отбора рано TRUE. Поэтому строки, содержащие NULL-значения, «исчезают» при выполнении запроса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]