Сравнение значения столбца из одной таблицы со значением столбца из другой таблицы (внутреннее соединение)

Лабораторная работа

«Оператор SELECT»

Часть1

Оператор SELECT имеет следующий формат:

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

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

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

[GROUP BY столбец [COLLATE collation} [,столбец! [COLLATE collation]...]

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

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

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

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

Простейший вид оператора SELECT

В простейшем случае оператор SELECT имеет вид:

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

FROM <таблица1>

После ключевого слова FROM приводится список ТБД, из которых будет происходить выборка данных.

После ключевого слова SELECT приводится список значений. В большинстве случаев это имена столбцов таблиц, перечисленных после слова FROM. Звездочка '*' указывает, что в результат выполнения запроса нужно включить все столбцы той или иной таблицы.

Пример. Выдать набор данных, состоящий из всех столбцов и всех записей из таблицы RASHOD.

SELECT *

FROM RASHOD

что эквивалентно

SELECT N_RASH, DAT_RASH, KOLVO, TOVAR, POKUP

FROM RASHOD

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

С использованием предложения WHERE оператор SELECT имеет следующий формат:

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

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

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

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

Сравнение значения столбца с константой

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

<имя столбца> <оператор> константа

где в качестве оператора могут выступать операции отношения

= равно < меньше > больше

<= меньше или равно или!> не больше (т.е. меньше или равно)

>= больше или равно или!< не меньше (т.е. больше или равно)

<> не равно или!= не равно

В качестве константы могут выступать строковые и числовые значения.

Пример. Показать все операции отпуска товаров объемом 20 единиц

SELECT *

FROM RASHOD R

WHERE KOLVO=20

Сравнение значения столбца из одной таблицы со значением столбца из другой таблицы (внутреннее соединение)

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

<имя столбца таблицы 1> <оператор> <имя столбца таблицы 2>

Пример. Выдать все записи о расходе товара из таблицы RASHOD. Для каждого товара выдать его цену из таблицы ТОVARY

SELECT RASHOD.*, TOVARY.ZENA

FROM RASHOD, TOVARY

WHERE RASHOD.TOVAR = TOVARY.TOVAR

При выполнении оператора SELECT для каждой записи из таблицы RASHOD ищется запись в таблице TOVARY, у которой значение в поле TOVAR совпадает со значением в поле TOVAR текущей записи таблицы RASHOD

При этом безразлично, в каком порядке перечислять таблицы в условии поиска, т.е безразлично, какая из таблиц будет упомянута слева, а какая справа. Таким образом, следующие условия поиска идентичны

RASHOD. TOVAR = TOVARY. TOVAR идентично условию

TOVARY.TOVAR = RASHOD.TOVAR

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

Пример. Выдать все записи о расходе товара из таблицы RASHOD Для каждого покупателя выдать его адрес из таблицы POKUPATELI

SELECT RASHOD.*, POKUPATELI.ADRES

FROM RASHOD, POKUPATELI

WHERE POKUPATELI.POKUP = RASHOD.POKUP


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: