W Cat - SQL за 24 часа
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - SQL за 24 часа краткое содержание
SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
2. Свяжите описания задач операторов с подходящими командами.
_______ Задача оператора ______________ Команда
а. Показать совпадающие данные UNION
б. Вернуть только те строки первого за- INTERSECT
проса, которым имеются эквивааенты UNION ALL
во втором запросе FXPFPT
в. Показать данные без повторений
г. Вернуть строки первого запроса, не
возвращаемые вторым
Выполните упражнения для следующих таблиц.
Задача оператора |
Команда |
|
а. Показать совпадающие данные б. Вернуть только те строки первого запроса, которым имеются эквивааенты во втором запросе в. Показать данные без повторений г. Вернуть строки первого запроса, не возвращаемые вторым |
UNION INTERSECT UNION ALL EXCEPT |
CUSTOMER_TBL |
|||||
CUST ID CUST NAME CUST ADDRESS CUST CITY COST 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 |
Ключевое поле |
1. Запишите составной запрос, возвращающий имена всех покупателей (C(JST_NAME), разместивших заказы.
2. Запишите составной запрос, возвращающий имена всех покупателей (CUST_NAME), не разместивших заказы.
16-й час Использование индексов для ускорения поиска данных
В ходе этого урока вы узнаете о том, как можно повысить скорость рабогы операторов SQL с помощью создания и использования индексов таблиц.
Сначала будет рассмотрено использование команды CREATE INDEX, с помощью которой создаются индексы таблиц, а затем использование самих индексов.
Основными на этом уроке будут следующие темы.
• Создание индексов
• Принципы работы индексов
• Различные типы индексов
• Когда следует использовать индексы?
• Когда не следует использовать индексы?
Упрощенно говоря, индекс - это указатель на данные в таблице. Индекс в базе данных подобен предметному указателю в книге. Например, если вы хотите просмотреть все страницы книги, на которых идет обсуждение интересующего вас предмета, вы сначала обращаетесь к предметному указателю, где все предметы перечислены в алфавитном порядке со ссылками на одну или несколько соответствующих предмету страниц. Индекс в базе данных работает точно так же в том смысле, что он направляет запрос в точности туда, где хранятся нужные данные.
Как быстрее найти нужную информацию в книге - перелистывая книгу страница за страницей, либо находя номер нужной страницы в предметном указателе? Конечно, использование предметного указателя оказывается более эффективным. Если книга большая, то таким образом можно сэкономить немало времени. Предположим, что в книге всего несколько страниц. В таком случае, конечно, проще проверить все страницы вместо того, чтобы скакать туда-сюда к предметному указателю и страницам с основным текстом. Когда индексы не используются, выполняется то, что называется полным сканированием таблиц - нечто подобное перелистыванию книги постранично от начала до конца. Полное сканирование таблиц будет обсуждаться в ходе урока 17, "Повышение эффективности работы с базой данных".
Созданный для таблицы индекс сохраняется отдельно от этой таблицы. Главным назначением индекса является повышение скорости извлечения данных. Создание или удаление индексов на сами данные не влияет. Удаление индекса может лишь замедлять процесс получения данных. Для хранения индекса требуется физическая память и нередко индекс разрастается больше самой таблицы, для которой он был построен.
При создании индекса таблицы в него заносится информация о размещении данных того столбца, по которому происходит индексирование. Когда в таблицу добавляются записи, в индекс тоже заносятся соответствующие данные. При выполнении запроса, в котором либо в условии этого запроса, либо в выражении ключевого слова WHERE присутствует столбец, по которому выполнено индексирование, сначала происходит поиск в индексе. Если подходящее значение в индексе будет найдено, индекс возвратит точное местоположение нужных данных в таблице. На рис. 16.1 показано, как функционирует индекс.
Рассмотрим для примера следующий запрос.
SELECT *
FROM TABLE_NAME
WHERE NAME = 'SMITH';
Как показано на рис. 16.1, для ускорения поиска значений 'SMITH' в таблице используется индекс, построенный по значениям столбца NAME (фамилия). После того, как для фамилии места соответствующих записей в таблице определены, данные могут быть извлечены очень быстро. В индексе данные упорядочены по алфавиту - здесь, например, это касается фамилий.
В случае отсутствия индекса тот же самый запрос привел бы к полному сканированию таблицы, и значит, в поисках нужных данных (фамилии SMITH) была бы прочитана каждая строка таблицы.

Рис. 16.1.Доступ к таблице с помощью индекса
Форма оператора CREATE INDEX, как формы многих других операторов SQL, может варьироваться в зависимости от конкретной реализации языка. Многие реализации поддерживают следующий синтаксис оператора.
CREATE INDEX имя_индекса ON имя_таблицы
Очень большие отличия для различных реализаций языка наблюдаются в допустимых опциях оператора CREATE INDEX. Некоторые реализации SQL допускают опции управления памятью (как в операторе CREATE TABLE), опции упорядочения (DESC | ASC), а также использование кластеров. Чтобы выяснить корректный синтаксис, необходимо обратиться к документации по той конкретной реализации языка, которую вы используете.
Для таблиц базы данных можно создать индексы нескольких типов, но все индексы служат одной цели - ускорению работы с базой данных посредством ускорения поиска данных. На этом уроке мы рассмотрим простые индексы (построенные по данным одного столбца), составные или композитные индексы (комбинирующие данные нескольких столбцов) и уникальные индексы.
В некоторых реализациях SQL индексы могут создаваться уже при создании таблицы. Большинство реализаций языка для создания индексов предлагает специальную команду, отличную от команды CREATE INDEX. Наличие или отсутствие специальной команды для создания индексов, как и ее синтаксис, можно уточнить по документации используемого вами языка.
Индексирование по данным одного столбца таблицы является самым простым и, в то же время, наиболее часто используемым типом индексирования. Простой индекс - это индекс, создаваемый по данным одного столбца таблицы. Базовый синтаксис оператора для создания такого индекса выглядит следующим образом.
Читать дальшеИнтервал:
Закладка: