Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Устранение повторяющихся значений




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

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

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

Общий формат оператора SELECT

Оператор 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

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

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

 

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

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

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

 

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

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

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

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

Пример:

SELECT * FROM RASHOD WHERE KOLVO = 20

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

<условия поиска > = <имя столбца 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  
b x  
c y  
d    

 

Таблица B

Ст. P1 Ст. P2
x  
y  
z  

 

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  
a x y  
a x z  
b x x  
b x y  
b x z  
c y x  
c y y  
c y z  

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

Ст. A.P1 Ст. A.P2 Ст. B.P2
a x  
b x  
c у  

SELECT …

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

WHERE …

Пример:

SELECT R.*, P.ADRES

FROM RASHOD R, POKUPATELI P

WHERE P.POKUP = R.POKUP

3.4.1.5. Предложение ORDER BY – определение сортировки

Результирующий набор данных можно отсортировать с помощью предложения:

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

Пример:

SELECT POKUP, DATRASH, TOVAR, KOLVO

FROM RASHOD

WHERE TOVAR = “Кока-кола”

ORDER BY POKUP, DATARASH

Часто в результирующий НД необходимо включать не все записи с одинаковым значением комбинации столбцов. Для этого используется ключевое слово

DISTINCT

Пример:

SELECT DISTINCT TOVAR

FROM RASHOD

Замечание:

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




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 350; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.