Чтение онлайн

на главную - закладки

Жанры

Понимание SQL

Грубер Мартин

Шрифт:

* Если HAVING используется, предикат<predicate > применяется к каждой строке произведенной предложением GROUP BY, и те строки которые сделают этот предикат верным, будут выведены.

* Если ORDER BY используется, вывод имеет определенную последовательность. Каждый идентификатор столбца<column identifer> ссылается к указанному <value expression> в предложении SELECT. Если это <value expression> является указанным столбцом<column spec>, <column identifier> может быть таким же как <column spec>. Иначе <column identifier> может быть положительным целым числом, указывающим место где находится <value expression> в последовательности предложения SELECT. Вывод будет сформирован так чтобы помещать значения содержащиеся в <column identifier > в порядке возрастания, если DESC не указан. Имя идентификатора столбца<column identifier> стоящее первым в предложении ORDER BY будет предшествовать

позже стоящим именам в определении последовательности вывода.

Предложение SELECT оценивает каждую строку-кандидат таблицы в которой строки показаны независимо. Строка-кандидат определяется следующим образом:

* Если только одна ссылаемая таблица<table reference> включена, каждая строка этой таблица в свою очередь является строкой-кандидатом.

* Если более одной ссылаемой таблицы<table reference> включено, каждая строка каждой таблицы должна быть скомбинирована в свою очередь с каждой комбинацией строк из всех других таблиц. Каждая такая комбинация будет в свою очередь строкой-кандидатом.

Каждая строка-кандидат производит значения, которые делают предикат <predicate > в предложении WHERE верным, неверным, или неизвестным.

Если GROUP BY не используется, каждое<value expression> применяется в свою очередь для каждой строки-кандидата чье значение делает предикат верным, и результатом этой операции является вывод. Если GROUP BY используется, строки-кандидаты комбинируются, используя агрегатные функции. Если никакого предиката<predicate > не установлено, каждое выражение<value expression> применяется к каждой строке-кандидату или к каждой группе. Если указан DISTINCT, дубликаты( двойники) строк будут удалены из вывода.

UNION (ОБЪЕДИНЕНИЕ)

Синтаксис

<query> {UNION [ALL] <query> } . . . ;

Вывод двух или более запросов<query> будет объединен. Каждый запрос <query > должен содержать один и тот же номер <value expression> в предложение SELECT и в таком порядке что 1.. n каждого, совместим по типу данных<data type> и размеру<size> с 1.. n всех других.

Синтаксис

UPDATE <table name>

SET { <column name>=<value expression> } .,..

{[ WHERE <predlcate>]; }

| {[WHERE CURRENT OF <cursorname>]

<SQL term>]}

UPDATE изменяет значения в каждом столбце с именем<column name> на соответствующее значение<value expression>. Если предложение WHERE использует предикат<predicate>, то только строки таблиц чьи текущие значения делают тот предикат<predicate> верным, могут быть изменены. Если WHERE использует предложение CURRENT OF, то значения в строке таблицы с именем<table name> находящиеся в курсоре с именем<cursor name> меняются. WHERE CURRENT OF пригодно для использования только во вложенном SQL, и только с модифицируемыми курсорами. При отсутствия предложения WHERE - все строки меняются.

WHENEVER (ВСЯКИЙ РАЗ КАК)

Синтаксис

EXEC SQL WHENEVER <SQLcond> <actlon> <SQL term>

<SQLcond> ::=SQLERROR | NOT FOUND | SQLWARNING

(последнее - нестандартное)

<action> ::=CONTINUE | GOTO <target> | GOTO <target>

<target> ::=зависит от главного языка

Приложение E. ТАБЛИЦЫ ИСПОЛЬЗУЕМЫЕ В КНИГЕ

ТАБЛИЦА 1: ПРОДАВЦЫ

snum

sname

city

comm

1001

Peel

London

.12

1002

Serres

San Jose

.13

1004

Motika

London

.11

1007

Rifkin

Barcelona

.15

1003

Axelrod

New York

.10

ТАБЛИЦА 2:

ЗАКАЗЧИКИ

cnum

cname

city

rating

snum

2001

Hoffman

London

100

1001

2002

Giovanni

Rome

200

1003

2003

Liu

SanJose

200

1002

2004

Grass

Berlin

300

1002

2006

Clemens

London

100

1001

2008

Cisneros

SanJose

300

1007

2007

Pereira

Rome

100

1004

ТАБЛИЦА 3: ПОРЯДКИ

onum

amt

odate

cnum

snum

3001

18.69

10/03/1990

2008

1007

3003

767.19

10/03/1990

2001

1001

3002

1900.10

10/03/1990

2007

1004

3005

5160.45

10/03/1990

2003

1002

3006

1098.16

10/03/1990

2008

1007

3009

1713.23

10/04/1990

2002

1003

3007

75.75

10/04/1990

2004

1002

3008

4723.00

10/05/1990

2006

1001

3010

1309.95

10/06/1990

2004

1002

3011

9891.88

10/06/1990

2006

1001

Поделиться:
Популярные книги

Отморозки

Земляной Андрей Борисович
Фантастика:
научная фантастика
7.00
рейтинг книги
Отморозки

Цеховик. Книга 2. Движение к цели

Ромов Дмитрий
2. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цеховик. Книга 2. Движение к цели

Гримуар темного лорда V

Грехов Тимофей
5. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда V

Комендант некромантской общаги 2

Леденцовская Анна
2. Мир
Фантастика:
юмористическая фантастика
7.77
рейтинг книги
Комендант некромантской общаги 2

Попаданка в деле, или Ваш любимый доктор

Марей Соня
1. Попаданка в деле, или Ваш любимый доктор
Фантастика:
фэнтези
5.50
рейтинг книги
Попаданка в деле, или Ваш любимый доктор

Ведьмак. Назад в СССР

Подус Игорь
1. Ведьмак. Назад в СССР
Фантастика:
попаданцы
альтернативная история
6.60
рейтинг книги
Ведьмак. Назад в СССР

Здравствуй, 1984-й

Иванов Дмитрий
1. Девяностые
Фантастика:
альтернативная история
6.42
рейтинг книги
Здравствуй, 1984-й

Огромный. Злой. Зеленый

Новикова Татьяна О.
1. Большой. Зеленый... ОРК
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Огромный. Злой. Зеленый

Черный маг императора

Герда Александр
1. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора

Мое ускорение

Иванов Дмитрий
5. Девяностые
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Мое ускорение

Вечный. Книга IV

Рокотов Алексей
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга IV

Я еще князь. Книга XX

Дрейк Сириус
20. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще князь. Книга XX

Матабар IV

Клеванский Кирилл Сергеевич
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар IV

Лорд Системы

Токсик Саша
1. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
4.00
рейтинг книги
Лорд Системы