W Cat - Справка по SQL

Тут можно читать онлайн W Cat - Справка по SQL - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-db. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Справка по SQL
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.63/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

W Cat - Справка по SQL краткое содержание

Справка по SQL - описание и краткое содержание, автор W Cat, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Справка по SQL - читать онлайн бесплатно полную версию (весь текст целиком)

Справка по SQL - читать книгу онлайн бесплатно, автор W Cat
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В результате выполнения запроса получим:

model

Qty_model

Avg_price

1232

4

425.0

1260

1

350.0

Заметим, что в предложении HAVING нельзя использовать псевдоним(Avg_price), используемый для именования значений агрегатной функции. Дело в том, что предложение SELECT, формирующее выходной набор запроса, выполняется предпоследним перед предложением ORDER BY.

Ниже приведен порядок обработки предложенийв операторе SELECT:

* FROM

* WHERE

* GROUP BY

* HAVING

* SELECT

* ORDER BY

Этот порядок не соответствует синтаксическому порядку общего формата оператора SELECT, представленному ниже:

SELECT[ DISTINCT| ALL]{*

| [ [[ AS] ]] [,…]}

FROM[[ AS] ] [,…]

[ WHERE]

[[ GROUP BY]

[ HAVING] ]

[ ORDER BY]

Использование в запросе нескольких таблиц. Предложение FROM

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

A

B

a

b

c

d

1

2

2

4

2

1

3

3

Результат запроса

SELECT * FROM A, B;

будет выглядеть следующим образом:

a

b

c

d

1

2

2

4

1

2

3

3

2

1

2

4

2

1

3

3

Поэтому перечисление таблиц, как правило, используется совместно с условием соединения записей из разных таблиц, указываемым в предложении WHERE. Для приведенных выше таблиц таким условием может быть совпадение значений, скажем, в полях a и c :

SELECT * FROM A, B WHERE a=c;

Теперь результатом выполнения этого запроса будет следующая таблица:

a

b

c

d

2

1

2

4

т.е. соединяются только те строки таблиц, у которых в указанных полях находятся равные значения (эквисоединение). Естественно, могут быть использованы любые условия, хотя эквисоединение используется чаще всего, поскольку эта операция воссоздает некую сущность, декомпозированную на две других в результате процедуры нормализации.

Если разные таблицы имеют столбцы с одинаковыми именами, то для однозначности требуется использовать точечную нотацию:

.

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

Пример. Найти номер модели и производителя ПК, имеющих цену менее $600:

SELECT DISTINCT PC.model, maker

FROM PC, Product

WHERE PC.model = Product.model AND price < 600;

В результате каждая модель одного и того же производителя выводится только один раз:

model

maker

1232

A

1260

E

Иногда в предложении FROMтребуется указать одну и ту же таблицу несколько раз. В этом случае обязательным является переименование.

Пример. Вывести пары моделей, имеющих одинаковые цены:

SELECT DISTINCT A.model AS model_1, B.model AS model_2

FROM PC AS A, PC B

WHERE A.price = B.price AND A.model < B.model;

Здесь условие A.model < B.model используется для того, чтобы не выводились одинаковые пары, отличающиеся только перестановкой, например: 1232, 1233 и 1233, 1232. DISTINCT применяется для того, чтобы исключить одинаковые строки, поскольку в таблице PC имеются одинаковые модели по одной и той же цене. В результате получим следующую таблицу:

model_1

model_2

1232

1233

1232

1260

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

SELECT DISTINCT PC.model, maker

FROM PC,

(SELECT maker, model

FROM Product) AS prod

WHERE PC.model = prod.model AND price < 600;

Обратите внимание, что в этом случае в других предложениях оператора SELECTуже нельзя использовать квалификатор Product , поскольку таблица Product уже не используется. Вместо него используется псевдоним prod . Кроме того, ссылаться теперь можно только на те поля таблицы Product , которые перечислены в подзапросе.

Операции соединения. Предложения JOIN

В предложении FROMможет быть указана явная операция соединениядвух и более таблиц. Среди ряда операций соединения, описанных в стандарте языка SQL, многими серверами баз данных поддерживается лишь операция соединения по предикату. Синтаксис соединения по предикату имеет вид:

FROM[ INNER]

| {{ LEFT| RIGHT| FULL} [ OUTER]} JOIN

[ ON]

Соединение может быть либо внутренним( INNER), либо одним из внешних( OUTER). Служебные слова INNERи OUTERможно опускать, поскольку внешнее соединение однозначно определяется его типом - LEFT(левое), RIGHT(правое) или FULL(полное), а просто JOINбудет означать внутреннее соединение.

Предикат определяет условие соединения строк из разных таблиц. При этом INNER JOINозначает, что в результирующий набор попадут только те соединения строк двух таблиц, для которых значение предиката равно TRUE. Как правило, предикат определяет эквисоединение по внешнему и первичному ключам соединяемых таблиц, хотя это не обязательно.

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

SELECT maker, Product.model AS model_1, PC.model AS model_2, price

FROM Product INNER JOIN PC ON PC.model = Product.model

ORDER BY maker, PC.model;

В данном примере в результирующем наборе будут соединяться только те строки из таблиц PC и Product , у которых совпадают номера моделей.

Для контроля в результат включен как номер модели из таблицы PC , так и из таблицы Product :

maker

model_1

model_2

price

A

1232

1232

600.0

A

1232

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Справка по SQL отзывы


Отзывы читателей о книге Справка по SQL, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x