Читаем SQL за 24 часа полностью


CUSTOMERS TBL








CUST ID CUST NAME CUST ADDRESS CUST CITY


CUST STATE CUST ZIP CUST PHONE CUST_FAX


VARCHAR2 (10) VARCHAR2 (30) VARCHAR2 (20) VARCHAR2 (15) CHAR ( 2 ) NUMBER (5) NUMBER (10) NUMBER (10)


NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL


Ключевое поле


ORDERS TBL








ORD NUM CUST ID PROD ID QTY ORD DATE


VARCHAR2 (10) VARCHAR2 (10) VARCHAR2(10) NUMBER (6) DATE


NOT NULL NOT NULL NOT NULL NOT NULL


Ключевое поле


PRODUCTS TBL








PROD ID PROD DESC COST


VARCHAR2 (10) VARCHAR2 (40) NUMBER (6, 2)


NOT NULL NOT NULL NOT NULL


Ключевое поле


1. Запишите оператор SQL, возвращающий EMP_ID, LAST_NAME и FIRST NAME из таблицы EMPLOYEE_TBL; SALARY и BONUS из таблицы EMPLOYEE_PAYJTBL.

2. Выберите из таблицы CUSTOMERS_TBL столбцы CUST_ID и CUST "NAME из таблицы PRODUCTS_TBL - столбцы PROD_ID и COST, а из таблицы ORDERS_TBL - ORD_NUM и QTY. Объедините три эти таблицы в одном оператопе SOL.

14-й час Использование подзапросов

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

• Что такое подзапрос?

• Выравнивание выводимых данных с помощью подзапросов

• Примеры типичных подзапросов к базе данных

• Использование подзапросов с операторами языка манипуляций данными

• Вложенные подзапросы


Что такое подзапрос?

Подзапрос - это запрос, содержащийся в выражении ключевого слова WHERE другого запроса с целью дополнительных ограничений на выводимые данные. Подзапросы называют также вложенными запросами. Подзапрос в содержащем его запросе используют для наложения условий на выводимые данные. Подзапросы могут использоваться с операторами SELECT, INSERT, UPDATE или DELETE.

В некоторых случаях подзапрос можно использовать вместо связывания таблиц, тем самым связывая данные таблиц неявно. При использовании в запросе подзапроса сначала выполняется подзапрос, а только потом - содержащий его запрос, причем с учетом условий выполнения подзапроса. Результаты выполнения подзапроса используются при обработке условий в выражении ключевого слова WHERE основного запроса Подзапрос можно использовать либо в выражении ключевого слова WHERE, либо в выражении ключевого слова HAVING главного запроса. Логические операции и операции сравнения типа =, >, <, о, IN, NOT IN, AND, OR и т п. можно использовать как в подзапросе, так и для обработки результатов подзапроса в выражениях ключевых слов WHERE и HAVING.

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

При составлении подзапросов необходимо придерживаться следующих правил.

• Подзапрос необходимо заключить в круглые скобки.

• Подзапрос может ссылаться только на один столбец в выражении своего ключевого слова SELECT, за исключением случаев, когда в главном запросе используется сравнение с несколькими столбцами из подзапроса.

• Ключевое слово ORDER BY использовать в подзапросе нельзя, хотя в главном запросе ORDER BY использоваться может. Вместо ORDER BY в подзапросе можно использовать GROUP BY.

• Подзапрос, возвращающий несколько строк данных, можно использовать только в операторах, допускающих множество значений, например в IN.

• В списке ключевого слова SELECT не допускаются ссылки на значения типа

BLOB, ARRAY, CLOB ИЛИ NCLOB.

• Подзапрос нельзя непосредственно использовать как аргумент допускающей множество значений функяии.

• Операцию BETWEEN по отношению к подзапросу использовать нельзя, но ее можно использовать в самом подзапросе. Базовый синтаксис оператора с подзапросом выглядит следующим образом.

SELECT имя_столбиа

FROM таблица

WHERE имя_столбца = (SELECT имя__столбца

FROM таблица

WHERE условия);

Обратите внимание на отступы в примерах Отступы используются исключительно в целях оформления. Практика показывает, что чем аккуратнее выглядят операторы SQL, тем проще они для понимания и тем легче искать и исправлять в них ошибки, если таковые вдруг обнаруживаются.

Рассмотрим примеры правильного и неправильного использования операции BETWEEN в операторе с подзапросом.

Вот пример правильного использования BETWEEN:

SELECT имя_столбца

FROM таблица

WHERE имя_столбца ОПЕРАЦИЯ (SELECT имя_столбца

FROM таблица

WHERE значение BETWEEN значение);

Вот пример неправильного использования BETWEEN:

SELECT имя_столбца FROM таблица

WHERE имя_столбца BETWEEN значение AND (SELECT имя_столбца

FROM таблица);


Подзапросы в операторе SELECT

Перейти на страницу:

Похожие книги

Adobe InDesign CS3
Adobe InDesign CS3

Книга посвящена верстке и макетированию в программе Adobe InDesign CS3. Помимо того что в ней описываются возможности программы, рассматриваются также принципы и традиции верстки, приводятся примеры решения типичных задач. Все это позволит читателю не только овладеть богатым инструментарием программы, но и грамотно применять его.Материал книги разделен на логические части: теоретические сведения, инструментарий программы, решение задач, – а также рассчитан на два уровня подготовки читателей – начинающих и опытных пользователей, что выгодно отличает книгу от других изданий. Это позволит применять ее как новичкам для знакомства с программой, так и пользователям со стажем для пополнения своих знаний.

Владимир Гавриилович Завгородний , Владимир Завгородний

Программирование, программы, базы данных / Программное обеспечение / Книги по IT