- •Iso (международной организацией по
- •2 Понимание sql
- •Что такое - реляционная база данных?
- •Порядок строк произволен
- •4 Понимание sql ___________________________________________________________________
- •Идентификация строк ( первичные ключи )
- •Столбцы именуются и нумеруются
- •8 Понимание sql
- •************** Работа с sql **************
- •Sql : обзор
- •Что делает ansi ?
- •Интерактивный и вложенный sql
- •14 Понимание sql
- •Субподразделения sql
- •16 Понимание sql
- •Sql несогласованности
- •Что такое - пользователь?
- •18 Понимание sql
- •Условия и терминология
- •************** Работа с sql **************
- •24 Понимание sql
- •26 Понимание sql
- •Переупорядочение столбца
- •28 Понимание sql
- •Параметры distinct
- •30 Понимание sql
- •32 Понимание sql
- •************* Работа с sql ***************
- •38 Понимание sql
- •40 Понимание sql
- •42 Понимание sql
- •44 Понимание sql
- •Использование специальных операторов в условиях
- •50 Понимание sql
- •52 Понимание sql
- •54 Понимание sql
- •56 Понимание sql
- •************** Работа с sql **************
- •Обобщение данных с помощью агрегатных функций
- •64 Понимание sql
- •66 Понимание sql
- •Включение дубликатов в агрегатные функции
- •Предложение group by
- •68 Понимание sql
- •Предложение having
- •70 Понимание sql
- •72 Понимание sql
- •************** Работа с sql **************
- •Формирование выводов запросов
- •Помещение текста в вашем выводе запроса
- •78 Понимание sql
- •80 Понимание sql
- •82 Понимание sql
- •Упорядочение вывода по номеру столбца
- •84 Понимание sql
- •************** Работа с sql **************
- •Запрашивание многочисленых таблиц также как одной
- •90 Понимание sql
- •92 Понимание sql
- •94 Понимание sql
- •************** Работа с sql **************
- •Объединение таблицы с собой
- •Псевдонимы
- •100 Понимание sql
- •Устранение избыточности
- •102 Понимание sql
- •Больше псевдонимов
- •104 Понимание sql
- •106 Понимание sql
- •************** Работа с sql **************
- •Вставка одного запроса внутрь другого
- •112 Понимание sql
- •114 Понимание sql
- •116 Понимание sql
- •In определяет набор значений, одно из которых должно совпадать с другим
- •118 Понимание sql
- •In является подходящим, если запрос может ограниченно производить одно
- •120 Понимание sql
- •122 Понимание sql
- •*************** Работа с sql *************
- •Соотнесенные подзапросы
- •130 Понимание sql
- •132 Понимание sql
- •Соотнесенные подзапросы в предложении having
- •134 Понимание sql
- •*************** Работа с sql *************
- •Использование оператора exists
- •140 Понимание sql
- •142 Понимание sql
- •144 Понимание sql
- •146 Понимание sql
- •************** Работа с sql **************
- •Использование оператора exists
- •152 Понимание sql
- •154 Понимание sql _____________________________________________________________________
- •156 Понимание sql
- •158 Понимание sql
- •160 Понимание sql
- •162 Понимание sql
- •Использование count вместо exists
- •166 Понимание sql
- •************** Работа с sql **************
50 Понимание sql
______________________________________________________________________
ГЛ. 5
=============== SQL Execution Log ============
| SELECT * |
| FROM Customers |
| WHERE snum IN ( 1001, 1007, 1004 ); |
| ============================================= |
| snum cname city rating snum |
| ------ -------- ------ ---- ------ |
| 2001 Hoffman London 100 1001 |
| 2006 Clemens London 100 1001 |
| 2008 Cisneros San Jose 300 1007 |
| 2007 Pereira Rome 100 1004 |
=============================================
Рисунок 5.3: SELECT использует IN с номерами
=========== ОПЕРАТОР BETWEEN ==========
Оператор BETWEEN похож на оператор IN. В отличии от определения по
номерам из набора, как это делает IN, BETWEEN определяет диапазон, значения
которого должны уменьшаться что делает предикат верным. Вы должны ввести
ключевое слово BETWEEN с начальным значением, ключевое AND и конечное
значение. В отличие от IN, BETWEEN чувствителен к порядку, и первое значение
в предложении должно быть первым по алфавитному или числовому порядку.
( Обратите Внимание что, в отличие от Английского языка, SQL не говорит что
"значение находится (между)BETWEEN значением и значением”, а просто
"значение BETWEEN значение значение”. Это применимо и к оператору LIKE).
Следующий пример будет извлекать из таблицы Продавцов всех продавцов с
комиссионными между .10 и .12 (вывод показывается в Рисунке 5.4):
SELECT *
FROM Salespeople
WHERE comm BETWEEN .10 AND .12;
Для включенного оператора BETWEEN, значение совпадающее с любым из двух
значений границы ( в этом случае, .10 и .12 ) заставляет предикат быть верным.
=============== SQL Execution Log ============
| SELECT * |
| FROM Salespeople |
| WHERE comm BETWEEN .10 AND .12; |
| ==============================================|
| snum sname city comm |
| ------ ---------- ----------- ------- |
| 1001 Peel London 0.12 |
| 1004 Motika London 0.11 |
| 1003 Axelrod New York 0.10 |
=============================================
Рисунок 5.4: SELECT использует BETWEEN
ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНЫХ ОПЕРАТОРОВ В УСЛОВИЯХ 51
______________________________________________________________________
SQL не делает непосредственной поддержки невключения BETWEEN.
Вы должны или определить ваши граничные значения так, чтобы
включающая интерпретация была приемлема, или сделать что-нибудь
типа этого:
SELECT *
FROM Salespeople
WHERE ( comm BETWEEN .10, AND .12 )
AND NOT comm IN ( .10, .12 );
Вывод для этого запроса показывается в Рисунке 5.5.
По общему признанию, это немного неуклюже, но зато показывает
как эти новые операторы могут комбинироваться с операторами Буля
чтобы производить более сложные предикаты. В основном, вы
используете IN и BETWEEN также как вы использовали реляционные
операторы чтобы сравнивать значения, которые берутся либо из
набора ( для IN ) либо из диапазона ( для BETWEEN ).
Также, подобно реляционным операторам, BETWEEN может работать
с символьными полями в терминах эквивалентов ASCII. Это означает
что вы можете использовать BETWEEN чтобы выбирать ряд значений
из упорядоченных по алфавиту значений.