W Cat - SQL за 24 часа
Здесь есть возможность читать онлайн «W Cat - SQL за 24 часа» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Год:неизвестен
- ISBN:нет данных
- Рейтинг книги:5 / 5. Голосов: 1
-
Избранное:Добавить в избранное
- Отзывы:
-
Ваша оценка:
- 100
- 1
- 2
- 3
- 4
- 5
SQL за 24 часа: краткое содержание, описание и аннотация
Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «SQL за 24 часа»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.
SQL за 24 часа — читать онлайн бесплатно полную книгу (весь текст) целиком
Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «SQL за 24 часа», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.
Интервал:
Закладка:
SELECT P.PROD_DESC, О. QTY
FROM PRODUCTS_TBL P,
ORDERS_TBL О
WHERE P.PROD_ID = O.PROD_ID;
PRODJ3ESC QTY
КОСТЮМ ВЕДЬМЫ 1
ПЛАСТИКОВЫЕ ТЫКВЫ 25
ПЛАСТИКОВЫЕ ТЫКВЫ 2
ФОНАРИ 10
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 20
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 1
6 строк выбраны.
Здесь оказались выбранными всего 6 строк, хотя различных товаров более 10. Но вы хотели бы увидеть список всех товаров, независимо от того, имеются ли на них заказы или нет.
В следующем примере эта задача решается с помощью внешнего связывания. Для соответствующего оператора используется синтаксис Oracle.
SELECT P.PROD_DESC, О.QTY
FROM PRODUCTS_TBL P,
ORDERS_TBL О
WHERE P . PROD_ID = О . PROD_ID (+);
PROD_DESC QTY
КОСТЮМ ВЕДЬМЫ 1
МАСКИ В АССОРТИМЕНТЕ
ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 20
КОСТЮМЫ В АССОРТИМЕНТЕ
ПЛАСТИКОВЫЕ ТЫКВЫ 25
ПЛАСТИКОВЫЕ ТЫКВЫ 2
ТЫКВЕННЫЕ КОНФЕТЫ
ПЛАСТИКОВЫЕ ПАУКИ
СЛАДКАЯ КУКУРУЗА
ФОНАРИ 10
ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 1
ПОЛОЧКА ИЗ ДУБА
12 строк выбраны.
Теперь запрос возвращает список всех товаров, включая те, для которых не указано количество заказов в таблице. Внешняя связь предполагает включение в вывод всех строк данных из таблицы PRODUCTSJTBL независимо от того, существуют для них соответствующие записи в таблице ORDERSJTBL или нет.
Рекурсивное связывание (SELF JOIN) предполагает связывание таблицы с ней же самой, как будто бы это были две таблицы, применяя временное переименование таблицы в операторе SQL. Синтаксис такого оператора следующий.
SELECT А.имя_столбца, В.имя_столбца [, С.имя_столбца ]
FROM таблица1 А, таблица2 В [, таблицаЗ С ]
WHERE А.имя_столбца = В.имя_столбца
[ AND А.имя_столбца = С.имя_столбца ]
Например,
SELECT A.LASTJJAME, B.LAST_NIME, A.FIRST_NAME
FROM EMPLOYEE_TBL A,
EMPLOYEEJTBL В
WHERE A.LAST_NAME = B.LAST_NAME;
Этот оператор SQL возвратит имена всех служащих с одинаковыми фамилиями из таблицы EMPLOYEEJTBL. Рекурсивное связывание удобно использовать, когда все необходимые данные размещаются в одной таблице, но требуется каким-то образом сравнить одни записи таблицы с другими.
Часто использование рекурсивного связывания объясняется на следующем примере. Предположим, что имеется таблица, в которой хранятся табельный номер, имя служащего и табельный номер менеджера этого служащего, и предположим, что возникла необходимость получить список служащих вместе с именами их менеджеров. Проблема в том, что столбца с именами менеджеров в данной таблице нет - имеется только столбец с именами всех служащих.
SELECT FROM EMP;
ID NAME MNGR_ID
1 JOHN 0
2 MARY 1
3 STEVE 1
4 JACK 2
5 SUE 2
Поэтому в следующем запросе таблица EMP в выражении ключевого слова FROMвключена дважды и ей назначены два псевдонима. Имея два псевдонима, таблицу можно рассматривать как две разные таблицы. Все менеджеры являются также служащими, поэтому в условии связывания можно сравнить табельный номер служащего из "первой" таблицы с табельным номером менеджера из "второй" таблицы. Теперь "первая" таблица хранит информацию о служащих, а "вторая" - о менеджерах.
SELECT El.NAME, E2.NAME
FROM EMP El, EMP E2
WHERE E1.MGR_ID = E2.ID;
NAME NAME
MARY JOHN
STEVE JOHN
JACK MARY
SUE MARY
В большинстве случаев связывание таблиц осуществляется по одному ключевому полю одной таблицы и одному ключевому полю другой. Но в зависимости от структуры базы данных для вас может оказаться возможным связать табчицы и по нескольким ключам. В таблице может иметься ключ, составленный из значений не одного, а нескольких столбцов. Точно так же из нескольких столбцов может состоять и внешний ключ.
Рассмотрим для примера следующие таблицы.
SQL> desc prod
Имя NULL? Тип данных
SERIAL_NUMBER NOT NULL NUMBER(10)
VENDOR_NUMBER NOT NULL NUMBER(10)
PRODUCT_NAME NOT NULL VARCHAR2OO)
COSTNOT NULL NITMBER (8,2)
SQL> desc prod NULL? Тип данных
ORD_NO NOT NULL NUMBER(10)
SERIAL_NUMBER NOT NULL NUMBER(10}
VENDOKJMUMBER NOT NULL NUMBER(10)
QUANTITY NOT NULL NUMBERt5)
ORD_DATE NOT NULL DATE
Ключом в таблице PROD является комбинация столбцов SERTAL_NUMBER и VENDOR_NUMBER Верояшо, в данной торговой компании некоторые товары имеют один серийный номер, но различаются по коду производителя
Внешним ключом в таблице ORD тоже является комбинация столбцов
SERIAL_NUMBER И VENDOR_NUMBER.
При выборе данных из обеих таблиц (PROD и ORD) оператор связывания может выглядеть следующим образом:
SELECT Р.PRODUCT_NAME, O.ORD_DATE, О.QUANTITY
FROM PROD P, ORD О
WHERE P.SERIAL_NUMBER = 0.SER1AL_NUMBER
AND P.VENDOR_NUMBER = О.VENDOR_NUMBER;
Прежде чем использовать связывание, следует получить ответы на ряд важных вопросов Например, какие из столбцов необходимо связать, имеются ли общие столбцы вообще, а также вопросы оптимизации Вопросы оптимизации будут рассматриваться в ходе урока 18, "Управление доступом к базе данных".
Читать дальшеИнтервал:
Закладка:
Похожие книги на «SQL за 24 часа»
Представляем Вашему вниманию похожие книги на «SQL за 24 часа» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.
Обсуждение, отзывы о книге «SQL за 24 часа» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.