Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие ТБД.doc
Скачиваний:
26
Добавлен:
04.09.2019
Размер:
1.92 Mб
Скачать

3.4.Средства манипулирования данными

3.4.1.Оператор select

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

3.4.1.1.Общий формат оператора select

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

FROM <таблица1> [ , <таблица2> … ]

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

[ GROUP BY столбец [, столбец1 … ]

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

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

[ PLAN <план_выполнения_запроса>]

[ ORDER BY <список_столбцов>]

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

SELECT { * | <значение1>, <значение1> [,<значение2> …]}

FROM <таблица1> [ , <таблица2 … ]

Например:

SELECT *

FROM RASHOD

Или так:

SELECT N_RASH, DAT_RASH, KOLVO, TOVAR, POKUP

FROM RASHOD

3.4.1.2.Использование предложения where для задания условия отбора

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

В этом случае имеем следующий формат:

SELECT {* | <значение1> [,<значение2> …]}

FROM <таблица1> [ , <таблица2> … ]

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

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

<условия поиска > = <оператор> <константа>

Где <оператор> - одна из следующих операций отношения:

<оператор> = { = | < | > | <= | >= | != | !< | !> | <> }

Пример:

SELECT * FROM RASHOD WHERE KOLVO = 20

3.4.1.3.Использование предложения where. Внутреннее соединение таблиц.

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

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

Пример:

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

SELECT RASHOD.*, TOVARY.ZENA

FROM RASHOD, TOVARY

WHERE RASHOD.TOVAR = TOVARY.TOVAR

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

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

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

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

Замечание:

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

Пример:

Таблица 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