|
Программирование >> Руководство по sql
Скобки также используются для изменения порядка выполнения операций, поскольку заключенные в них операторы выполняются в первую очередь. В случае вложенных скобок (одна пара скобок внутри другой пары) первыми выполняются операторы, имеющие максимальную глубину вложения. Например, результаты предыдущего запроса изменятся, если переставить скобки таким образом, чтобы сначала выполнялась операция вычитания: SQL: select title id, ytd sales * (price - advance) from titles Результат: title id PC8888 BU1032 P57777 P53333 BUllll MC2222 TC7777 TC4203 PC1035 MC3026 BU2075 P52091 P52106 MC3021 TC3218 BU7832 P51372 PC9999 -32678100.000 -20393140.950 -13317345.360 -8062600.720 -19333681.800 40619.680 -32698615.950 -60203602.800 -61258499.000 (NULL) -189504271.220 -4629982.250 -665223.000 -333623484.460 -2617143.750 -20393140.950 -2616903.750 (NULL) УКАЗАНИЕ ТАБЛИЦ: СПИСОК ТАБЛИЦ в списке таблиц (table list) указываются имена таблиц и курсоров, содержащих столбцы из списка выбора и предложения WHERE. Имена таблиц в списке разделяются запятыми. Ниже приведен общий вид предложения FROM: SELECT список выбора FROM [квалификатор] {имя таблицы имя курсора} [ , [квалификатор] { имя таблицы имя курсора}]... В списке таблиц также можно указать соответствующие таблицам базы данных и их владельцев. Необходимость в этом может возникнуть, если в запросе используются одноименные таблицы из разных баз данных. В больщинстве диалектов SQL для упрощения набора таблицам позволяется задавать псевдонимы (aliases). Псевдоним указывается после имени таблицы в списке таблиц: SQL: select p.pub id, p.pub name from publishers p Буква р перед именами столбцов заменяет полное имя таблицы (publishers). Этот запрос эквивалентен следующему: SQL: select publishers.pub id, publishers.pub name from publishers Так как в каждом запросе используется только одна таблица, и при использовании столбца pubid не возникает никакой неопределенности, имя таблицы можно опустить. Псевдонимы действительно полезны в многотабличных запросах, когда нужно различать одноименные столбцы из разных таблиц. Примеры их использования содержатся в главах 7 и 8. ВЫБОР СТРОК: ПРЕДЛОЖЕНИЕ WHERE предложение WHERE является частью оператора SELECT и позволяет определить условия для выборки строк. Общий формат оператора имеет следующий вид: SELECT список выбора FROM список таблиц WHERE условия При выполнении оператора SELECT с предложением WHERE выбираются все строки, удовлетворяющие наложенному условию. В SQL имеется целый ряд операторов и ключевых слов для задания условий. Операторы сравнения (=,<, > и т.д.) where advance * 2 > ytd sales * price Комбинации условий и логическое отрицание (AND, OR, NOT) where advance < 5000 or ytd sales>2000 Диапазоны (BETWEEN и NOT BETWEEN) where ytd sales between 4095 and 12000 Списки (IN, NOT IN) where state in (CA, IN, MD) Неизвестные значения (IS NULL и IS NOT NULL) where advance is null Соответствия символов (LIKE и NOT LIKE) where phone not like 415% Bee эти ключевые слова и операторы будут описаны и проиллюстрированы дальше в этой главе. Кроме того, в предложение WHERE могут включаться условия на объединение (глава 7) и подзапросы (глава 8). Операторы сравнения Часто в приложениях возникает необходимость провести сравнительный анализ некоторых значений из базы данных: выяснить, какое из них больше или меньше (в числовом или алфавитном порядке). Для этих целей в SQL предусмотрен целый ряд операторов сравнения. В большинстве диалектов имеются следующие операторы сравнения: Оператор Значение = Равно > Больше < Меньше >= Больше или равно Оператор Значение <= Меньше или равно != Не равно о Не равно Эти операторы используются следующим образом: WHERE выражение оператор сравнения выражение В качестве выражений могут использоваться константы, имена столбцов, функции, подзапросы или их комбинации, связанные арифметическими операторами. Обычно операторы сравнения применяются к числовым значениям. В SQL они также могут применяться к данным с типами char и varchar (< означает раньше в алфавитном порядке, > означает позже) и к датам (< означает раньше в хронологическом порядке, > означает позже). При использовании символьных значений и дат в SQL их нужно заключать в кавычки. Порядок следования строчных, прописных и специальных символов определяется используемой вами кодовой таблицей символов и может отличаться в разных системах. В большинстве систем при сравнении игнорируются все концевые пробелы. Например, значения Dirk и Dirk считаются одинаковыми. На примере следующих операторов SELECT можно увидеть, как работают операторы сравнения. Первый запрос используется для поиска книг стоимостью выше $15: SQL: select title, price from titles where price > $15.00 Результат: title price Secrets of Silicon Valley 20 The Busy Executives Database Guide 19.99 Prolonged Data Deprivation: Four Case Studies 19.99 Silicon Valley Gastronomic Treats 19.99 But Is It User Friendly? 22.95 Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean 20.95 Straight Talk About Computers 19.99 Computer Phobic and Non-Phobic Individuals: Behavior Variations 21.59 В результате выполнения второго запроса находятся авторы с фамилиями, идущими в алфавитном порядке после фамилии McBadden: SQL: select au lname, au fname from authors where au lname > McBadden Результат: au lname au fname Ringer Albert Ringer Anne Panteley Sylvia Stringer Dirk Straight Dick
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |