- •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 **************
52 Понимание sql
______________________________________________________________________
ГЛ. 5
=============== SQL Execution Log ============
| |
| SELECT * |
| FROM Salespeople |
| WHERE ( comm BETWEEN .10 AND .12 |
| AND NOT comm IN ( .10 .12; |
| ==============================================|
| snum sname city comm |
| ------ ---------- ----------- ------- |
| 1004 Motika London 0.11 |
| |
===============================================
Рисунок 5.5: Сделать BETWEEN - невключенным
Этот запрос выбирает всех заказчиков чьи имена попали в определенный
алфавитный диапазон:
SELECT *
FROM Customers
WHERE cname BETWEEN 'A' AND 'G';
Вывод для этого запроса показывается в Рисунке 5.6.
Обратите Внимание что Grass и Giovanni отсутствуют, даже при
включенном BETWEEN. Это происходит из-за того что BETWEEN
сравнивает строки неравной длины. Строка 'G' более короткая чем
строка Giovanni, поэтому BETWEEN выводит 'G' с пробелами. Пробелы
предшествуют символам в алфавитном порядке ( в большинстве реа-
лизаций ), поэтому Giovanni не выбирается. То же самое происходит с
Grass. Важно помнить это когда вы используете BETWEEN для извлечения
значений из алфавитных диапазонов. Обычно вы указываете диапазон с
помощью символа начала диапазона и символа конца( вместо которого
можно просто поставить z ).
ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНЫХ ОПЕРАТОРОВ В УСЛОВИЯХ 53
______________________________________________________________________
=============== SQL Execution Log ============
| |
| SELECT * |
| FROM Customers |
| WHERE cname BETWEEN 'A' AND 'G'; |
| ============================================= |
| cnum cname city rating snum |
| ------ -------- ------ ---- ------ |
| 2006 Clemens London 100 1001 |
| 2008 Cisneros San Jose 300 1007 |
| |
=============================================
Рисунок 5. 6: Использование BETWEEN в алфавитных порядках
============ ОПЕРАТОР LIKE =============
LIKE применим только к полям типа CHAR или VARCHAR, с которыми
он используется чтобы находить подстроки. Т.е. он ищет поле символа
чтобы видеть, совпадает ли с условием часть его строки.
В качестве условия он использует групповые символы(wildkards) -
специальные символы которые могут соответствовать чему-нибудь.
Имеются два типа групповых символов используемых с LIKE:
* символ подчеркивания ( _ ) замещает любой одиночный символ.
Например, 'b_t' будет соответствовать словам 'bat' или
'bit', но не будет соответствовать 'brat'.
* знак процента (%) замещает последовательность любого числа
символов (включая символы нуля). Например '%p%t' будет
соответствовать словам 'put', 'posit', или 'opt', но не 'spite'.
Давайте найдем всех заказчиков чьи имена начинаются с G ( вывод
показывается в Рисунке 5.7 ):
SELECT
FROM Customers
WHERE cname LIKE 'G%';