Программирование >>  Исключение дубликатов строк 

1 ... 42 43 44 [ 45 ] 46 47 48 ... 152


можно объединять в условие поиска, используя булевы операторы AND или OR. Когда условие поиска оказывается равным True для конкретной строки, эта строка будет присутствовать в окончательном наборе результата. Когда условие поиска содержит только один предикат, термины условие поиска и предикат являются синонимами.

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

Самый простой и, возможно, наиболее распространенный предикат сравнивает одно типизированное выражение (столбец) с другим (литерал). Например, если нужны только те строки из таблицы Customers, в которых значение столбца фамилии клиента - Smith , то записывается предикат, который сравнивает столбец фамилии со значением литерала Smith .

SELECT CustLastName FROM Customers

WHERE CustLastName = Smith

предикат в условии WrtiiKii эквивалентен оораидению с вопросом к каждой строке в таблице Customers: Совпадает ли фамилия клиента со Smith ? Когда ответ положительный (True) для произвольной строки в таблице Customers, эта строка появляется в наборе результатов.

Стандарт SQL определяет пять базовых предикатов: сравнение, BETWEEN, IN, LIKE и IS NULL.

Сравнение

Диапазон

Принадлежность

Для сравнения одного типизированного выражения с другим используется один из шести операторов сравнения: ( = , о, <, >, < = , >=).

Предикат BETWEEN позволяет тестировать, попадает ли указанное типизированное выражение в указанный диапазон значений. Диапазон определяется с помоидью двух типизированных выражений, разделенных ключевым словом AND.

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

Поиск по шаблону Предикат LIKE позволяет проверить, совпадает ли

выражение типа символьная строка с указанным образцом символьной строки.

Null Используйте предикат IS NULL для определения,

равно ли типизированное выражение Null.



Использование условии ШН€П€

Вначале рассмотрим еще один пример построения простого условия WHERE На этот раз представим подробное изложение действий по построению запроса.

Внимание! В данной главе используется метод Запрос/Преобразование/Уточнение/SQL , введенный в главе 4

Предположим, что к базе данных обращаются со следующим вопросом:

Какие фамилии у наших клиентов, лсивущих в штате Вашингтон ?

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

Преобразование: Select first name and last name from the customers table

for those customers who live in Washington State (Выбрать имя и фамилию из таблицы Клиенты для клиентов, живущих в штате Вашингтон)

Уточните это преобразование обычным образом и выполните еще две дополнительные задачи. Во-первых, поищите любые слова или фразы, которые указывают или подразумевают некоторый вид ограничений. Слова-указатели - рый и для . Ниже приведены некоторые примеры типов фраз, которые вы пытаетесь распознать:

...которые эюивут в Беллевью .

где , кото-

.. для всех, чей почтовый код 98125 .

..которые разместили заказы в мае .

.. для поставщиков из Калифорнии .

..которые были приняты на работу 16 мая 1985 г. .

.. где трехзначный мео/сдугородный телефонный код равен 425 .

..для Майкла Хернандеса .

Когда такое ограничение найдется, перед вами встанет вторая задача. Изучите фразы и попытайтесь определить, какой столбец должен быть проверен, на какое значение предполагается проверить этот столбец и как предполагается выгюлнить проверку столбца. Ответы на эти вопросы помогут вам сформулировать условие поиска в условии WHERE. Рассмотрим эти вопросы по отношению к нашему преобразуемому утверждению.

Какой столбец нужно проверить? State (Штат)






На какое значение его необходимо проверить? (Вашингтон)

Как предполагается проверить столбец? Используя оператор сравнения на равенство

Нужно хорошо представлять себе структуру таблицы, используемой для ответа на запрос. Если необходимо, держите под рукой копию структуры таблицы, прежде чем начнете отвечать на эти вопросы.

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


и расшифровать правильные ответы.

Воспользуйтесь ответами на вопросы и создайте соответствующее условие. Затем вычеркните исходное ограничение и замените его на слово WHERE с только что созданным условием поиска. Так выглядит уточненное утверждение после выполнения этой задачи:

Уточнение: Select first name ttne last name from ttte customers table

for those customers who live in where state equals = WA Washington State

(Выбрать имя, фамилию из Клиенты , где штат = *WA\ Теперь можно преобразовать это в соответствующий оператор SELECT:

SELECT CustFirstName, CustLastName

FROM Customers

WHERE CustState = WA

Набор результатов полученного оператора SELECT отобразит только тех клиентов, которые проживают в штате Вашингтон. Это все определяется в условии WHERE, т. е. создаются соответствующие условия поиска и помещаются в условие WHERE. Однако подлинная работа состоит в определении условий.

Определение условий поиско

Рассмотрим поближе пять основных типов предикатов, которые можно определить.

Сроонвнив

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

>

>

Равно

Не равно

Меньше

Больше

Меньше, либо равно

Больше, либо равно



1 ... 42 43 44 [ 45 ] 46 47 48 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика