Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
01.05.2014
Размер:
526.34 Кб
Скачать

Элементы языка SQL

Работа с индексами

Создание индекса

CREATE [UNIQUE] ASC | DESC ]

INDEX ИмяИндекса ON ИмяТаблицы (столбец1 [, столбец2 … ]

UNIQUE – требует создания уникального индекса, не допускающего одинаковых

значений

индексных полей для разных записей таблицы.

 

ASC – указывает на необходимость сортировки полей по возрастанию (принят по

 

умолчанию)

 

DESC - указывает на необходимость сортировки полей по убыванию

 

Определения всех индексов можно вывести оператором

 

SHOW INDEX ;

 

Для конкретной таблицы

 

SHOW INDEX <имя таблицы>;

 

Удаление существующих ключей

 

DROP INDEX <имя индекса>;

Элементы языка SQL

Работа с индексами

Пример:

CREATE TABLE PRIHOD(

ID_PRIHOD INTEGER NOT NULL PRIMARY KEY, DATAPRIH DATE NOT NULL,

TOVAR VARCHAR(20) NOT NULL, KOLVO INTEGER NOT NULL);

CREATE DESC INDEX D_P

ON PRIHOD (DATAPRIH, TOVAR);

.

Элементы языка SQL

Работа с индексами

Улучшение производительности индекса

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

Для улучшения показателя индекса необходимо выполнить его перестроение:

ALTER INDEX <имя индекса> DEACTIVATE;

ALTER INDEX <имя индекса> ACTIVATE;

Замечания:

Нельзя перестроить индекс, если он используется в данный момент в запросах

Нельзя перестроить индекс, созданный в результате создания первичного ключа, внешнего и уникального ключей.

.

Элементы языка SQL

Оператор SELECT

Позволяет производить выборки из ТБД и преобразовывать к нужному виду полученные результаты.

Общий формат:

SELECT [DISTINCT | ALL ] {* | <значение1> [,<значение2> …]} FROM <таблица1> [ , <таблица2> … ]

[ WHERE <условия_поиска> ]

[ GROUP BY столбец [, столбец1 … ] [ HAVING < условия_поиска> ]

[ UNION <оператор_select>]

[ PLAN <план_выполнения_запроса>] [ ORDER BY <список_столбцов>]

Элементы языка SQL

Оператор SELECT

Простейший формат:

SELECT { * | <значение1>, <значение1> [,<значение2> …]} FROM <таблица1> [ , <таблица2 … ]

Например:

SELECT *

FROM RASHOD

Или так:

SELECT N_RASH, DAT_RASH, KOLVO, TOVAR, POKUP FROM RASHOD

Элементы языка SQL

Оператор SELECT

Использование предложения WHERE

Предложение WHERE используется для включения в НД лишь нужных записей. В этом случае имеем следующий формат:

SELECT {* | <значение1> [,<значение2> …]} FROM <таблица1> [ , <таблица2> … ]

[ WHERE <условия_поиска> ]

Сравнение значения столбца с константой При сравнении столбца с константой условие имеет вид:

<условия поиска > = <оператор> <константа> Где <оператор> - одна из следующих операций отношения: <оператор> = { = | < | > | <= | >= | != | !< | !> | <> }

Пример:

SELECT * FROM RASHOD WHERE KOLVO = 20

Элементы языка SQL

Оператор SELECT

Использование предложения WHERE

Внутреннее соединение таблиц

При сравнении значения одной таблицы с со значением столбца другой таблицы условие поиска имеет следующий вид:

<условия поиска > = <имя столбца 1> <оператор> <имя столбца 2>

Пример:

Чтобы выбрать все записи о расходе товара из таблицы RASHOD и для каждого товара указать его цену из таблицы TOVARY, можно использовать такой оператор:

SELECT RASHOD.*, TOVARY.ZENA FROM RASHOD, TOVARY

WHERE RASHOD.TOVAR = TOVARY.TOVAR

Такой способ соединения называется внутренним соединением.

Элементы языка SQL

Оператор SELECT

Использование предложения WHERE

Внутреннее соединение таблиц

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

1.Из столбцов, которые указаны после слова SELECT, составляется промежуточный набор данных путем сцепления результирующих столбцов каждой записи из таблицы А и результирующих столбцов записи из таблицы В.

2.Из получившегося НД отбрасываются все записи , не удовлетворяющие условию в предложении WHERE.

Замечание:

Фактический порядок выполнения запроса для конкретного SQL-сервера может быть другим.

Элементы языка SQL

Оператор SELECT

Использование предложения WHERE

Внутреннее соединение таблиц Пример:

Таблица A

Ст. P1

Ст. P2

Ст. P3

a

x

400

b

x

200

c

y

500

d

 

 

Таблица B

Ст. P1

Ст. P2

x

1

y

2

z

2

SELECT A.P1, A.P2, B.P2

FROM A, B

WHERE A.P2 = B.P1

Промежуточный набор

Ст. A.P1

Ст. A.P2

Ст. B.P1

Ст. B.P2

a

x

x

1

a

x

y

2

a

x

z

2

b

x

x

1

b

x

y

2

b

x

z

2

c

y

x

1

c

y

y

2

c

y

z

2

Окончательный набор

Ст. A.P1 Ст. A.P2 Ст. B.P2

a

x

1

b

x

2

c

у

2

Элементы языка SQL

Оператор SELECT

Использование псевдонимов таблиц

SELECT …

FROM < таблица1 псевдоним1> [, таблица2 псевдоним 2 … ] WHERE …

Пример:

SELECT R.*, P.ADRES

FROM RASHOD R, POKUPATELI P WHERE P.POKUP = R.POKUP

Соседние файлы в папке Презентации по технологиям БД