Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Оператор SELECT. Выборка, поиск, сортировка




Ограничения внешнего ключа.

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

Например, пусть у нас есть таблица товаров product:

CREATE TABLE products (

product_no integer PRIMARY KEY,

name text,

price numeric

);

Также пусть у нас есть таблица orders, хранящая порядок этих товаров. Мы хотим иметь уверенность, что таблица с порядком товаров содержит только те товары, которые уже есть. Для этого мы определяем ограничение внешнего ключа в таблице orders, которое ссылается на таблицу products:

CREATE TABLE orders (

order_id integer PRIMARY KEY,

product_no integer REFERENCES products (product_no),

quantity integer

);

Теперь в таблице orders невозможно создать строку, в которой значение product_no не соответствует одному из значений в таблице products. В более кратком виде:

CREATE TABLE orders (

order_id integer PRIMARY KEY,

product_no integer REFERENCES products,

quantity integer

);

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

CREATE TABLE t1 (

a integer PRIMARY KEY,

b integer,

c integer,

FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)

);

Оператор SELECT, представляющий язык запросов к данным (Data Query Language — DQL) в SQL, используется для составления запросов к БД. Он требует указания некоторых параметров с помощью ключевых слов. Кроме обязательных, у этого оператора имеется несколько необязательных ключевых слов, расширяющих его возможности. Оператор SELECT состоит из выражений, строящихся на основе следующих четырех ключевых слов.• SELECT• FROM• WHERE• ORDER BY

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

Синтаксис SELECT [ * | ALL | DISTINCT СТОЛБЕЦ1, СТОЛБЕЦ2 ] FROM ТАБЛИЦА1 [, ТАБЛИЦА2 ];

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

Условие — это часть запроса, содержащая информацию, на основе которой отбираются данные. В выражении WHERE может содержаться несколько условий (они связываются операциями AND и OR)

Синтаксис SELECT [ ALL | * | DISTINCT СТОЛБЕЦ1, СТОЛБЕЦ2 ] FROM ТАБЛИЦА1[, ТАБЛИЦА2 ] WHERE [ УСЛОВИЕ1| ВЫРАЖЕНИЕ1 ] [ AND УСЛОВИЕ2 | ВЫРАЖЕНИЕ2 ]

Сортировка вывода Обычно требуется, чтобы выводимые данные были как-то упорядочены. Выводимые данные можно упорядочить с помощью выражения, связанного с ключевым словом ORDER BY. По умолчанию будет упорядочение по возрастанию ASC, обозначается A—Z (А—Я) в случае сортировки имен. Для числовых значений между 1 и 9 упорядочение по возрастанию обозначается 1-9, а по убыванию — 9— 1 DESC.

Синтаксис SELECT [ ALL | * | DISTINCT СТОЛБЕЦ1, СТОЛБЕЦ2 ]

FROM ТАБЛИЦА1 [, ТАБЛИЦА2 ]

WHERE [ УСЛОВИЕ1 | ВЫРАЖЕНИЕ1 ] AND [УСЛОВИЕ2 | ВЫРАЖЕНИЕ2 ]

ORDER BY СТОЛБЕЦ1 [ ASC|DESC ];

В SQL предлагаются и некоторые сокращения. Столбец, указанный в списке ключевого слова ORDER BY, можно заменить числом, соответствующим порядку столбца в списке после ключевого слова SELECT.

Можно задать упорядочение по нескольким столбцам, используя либо имена столбцов, либо соответствующие им в списке SELECT номера: ORDER BY 1,2,3

Резюме: В основе построения запросов лежит использование оператора SELECT, являющегося командой языка запросов к данным (DQL). Каждый оператор SELECT должен включать ключевое слово FROM. Вы узнали о том, как с помощью ключевого слова WHERE в запросах задаются условия отбора, а с помощью ключевого слова ORDER BY — условия сортировки. На основе простейших запросов строятся более сложные.




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


Дата добавления: 2015-05-10; Просмотров: 1206; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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