Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
27.04.2015
Размер:
433.66 Кб
Скачать

Запрос: Вывести сведения о клиентах и их покупках (сведения в таблице ПРОДАЖИ).

SELECT Клиенты.Фамилия, Продажи.Продано FROM Клиенты, Продажи

WHERE

Клиенты.Код_клиента = Продажи.Код_клиента

Запрос: Вывести для каждого клиента суммарное количество покупок

SELECT Клиенты.Фамилия,

SUM (Продажи.Продано) AS Количество FROM Клиенты, Продажи

WHERE

Клиенты.Код_клиента = Продажи.Код_клиента GROUP BY Клиенты.Фамилия

Выборка из 3 таблиц проводится аналогично.

Запрос: Вывести для каждого клиента суммарное количество покупок по видам товара

SELECT Клиенты.Фамилия,

SUM (Продажи.Продано) AS Количество FROM Клиенты, Продажи, Товар

WHERE

(Клиенты.Код_клиента = Продажи.Код_клиента) and (Продажи.Код_товара=Товары.Код_товара)

GROUP BY Клиенты.Фамилия

Внешнее соединения

Результат запроса будет содержать все записи одной из таблиц, даже в том случае, если в связанной с ней таблице отсутствуют совпадающие значения.

Этот тип соединения реализуется с помощью оператора OUTER JOIN.

Различают:

левое внешнее соединение LEFT OUTER JOIN – выборка будет содержать все записи таблицы, имя которой указано слева от оператора,

правое внешнее соединение RIGHT OUTER JOIN

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

полное внешнее соединение FULL OUTER JOIN – выборка будет содержать все записи из правой и левой таблицы.

Синтаксис:

SELECT table1.field1, table2.field2, …. FROM table1

LEFT | RIGHT | FULL {OUTER } JOIN table2

ON условие

{LEFT | RIGHT | FULL {OUTER } JOIN table3

ON условие}

Запрос: Выбрать из таблицы «Товары» список товаров, а из таблицы «Продажи» - суммарное количество проданных товаров.

SELECT Товары.Наименование,

SUM (Продажи.Продано) AS Всего FROM Товары

LEFT OUTER JOIN Продажи

ON Продажи.Код_товара = Товары.Код_товара

GROUP BY Товары.Наименование

Команда создания таблицы — CREATE TABLE

CREATE TABLE имя_таблицы

({<определение_столбца> |<определение _ограничения _таблицы> } [,..., {<определение _столбца>| <определение _ограничения_ таблицы

>}])

определение_столбца — задание имени, типа данных и параметров отдельного столбца таблицы. Названия столбцов должны соответствовать правилам для идентификаторов и быть уникальными в пределах таблицы;

определение_ограничения_таблицы — задание некоторого ограничения целостности на уровне таблицы.

ограничение_столбца с помощью этого предложения указываются ограничения, которые будут определены для столбца. Синтаксис предложения следующий:

<ограничение_столбца>::=[ CONSTRAINT

<имя_ограничения > ]

{[ DEFAULT <выражение>] | [ NULL | NOT NULL ] [ PRIMARY KEY | UNIQUE ] |

[FOREIGN KEY REFERENCES

<имя_главной_таблицы>[(<имя_столбца> [,...,n])] [ON DELETE { CASCADE | NO ACTION } ]

[ ON UPDATE { CASCADE | NO ACTION } ] ] | [CHECK (<условие проверки>)]}

CONSTRAINT — необязательное ключевое слово, после которого указывается название ограничения на значения столбца (имя_ограничения). Имена ограничений должны быть уникальны пределах базы данных.

DEFAULT — задает значение по умолчанию для столбца.

NULL|NOT NULL — ключевые слова, разрешающие (NULL) или запрещающие (NOT NULL) хранение в столбце значений NULL