Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД и ЭС.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
69 Кб
Скачать
☆

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

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

Например, пусть у нас есть таблица товаров 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)

);

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

Оператор 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 — условия сортировки. На основе простейших запросов строятся более сложные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]