Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные для управления данными / для типографии методическое пособие по БД.doc
Скачиваний:
97
Добавлен:
20.02.2016
Размер:
670.72 Кб
Скачать
  1. 5 Язык sql

SQL (Structure Query Language – Структурированный Язык Запросов) – стандартный язык запросов для работы с базами данных. SQL содержит примерно 40 операторов для выполнения различных действий внутри СУБД. Рассмотрим некоторые из них. Категория операторов Data Manipulation Language (DML) содержит операторы, позволяющие выбирать, добавлять, удалять и модифицировать данные. Операторы DML представлены в таблице 1.

Таблица 1 - Операторы языка SQL категории DML

Оператор

Описание

SELECT

Применяется для выбора данных

INSERT

Применяется для добавления кортежа к таблице

DELETE

Применяется для удаления кортежа из таблицы

UPDATE

Применяется для изменения данных

Иногда оператор SELECT относят к отдельной категории, называемой Data Query Language (DQL).

Примеры использования SQL языка в СУБД Microsoft Access будут приводиться на основе базы данных Магазин. Схема базы данных приведена на рисунке 1.

Рисунок 1 - Схема данных БД Магазин

При использовании SQL языка в СУБД Microsoft Access название таблиц отделяется от названия полей точкой или восклицательным знаком. Если название поля или таблицы состоит из нескольких слов, разделенных пробелом, то название берется в квадратные скобки.

При создании запроса на основе полей нескольких таблиц данные таблицы необходимо объединить. Существует несколько правил объединения. Рассмотрим внешнее соединение на основе INNER JOIN. Синтаксис данного объединения двух таблиц:

From<таблица_1> INNER JOIN<таблица_2> ON таблица_1.Поле_связи = таблица_2. Поле_связи

Синтаксис объединения трех таблиц:

From<таблица_1> INNER JOIN<таблица_2> (<таблица_2> INNER JOIN<таблица_3> ON таблица_2.Поле_связи = таблица_3. Поле_связи) ON таблица_1.Поле_связи = таблица_2. Поле_связи

Например. Показать информацию о заказах с номером счета и датой счета.

SELECT Заказ. КодЗаказа, Заказ. НазваниеКомпании, Заказ. ДатаИсполнения, Счет. КодСчета, Счет. ДатаСчета

FROM Заказ INNER JOIN Счет ON Заказ.КодЗаказа = Счет.[Код заказа];

Рисунок 2 - Пример запроса с объединением двух таблиц

    1. 5.1 Оператор select

Формат оператора SELECT:

Select [all |*|distinct] <список полей>

From<список таблиц>

Where<условия выборки строк>

Group by<список полей группировки>

Having<условия для групп>

Order by<список полей для сортировки>

      1. 5.1.1 Особенности использования предложения select

1. Вычисления в запросах и переименование столбцов.

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

Пример. Показать общую стоимость каждого заказа.

SELECT Заказ.КодЗаказа, Заказ.НазваниеКомпании, Заказ.ДатаИсполнения, Товары.ТипТовара, Товары.МаркаТовара, Заказ.Количества, Товары.Цена, Заказ.СтоимостьДоставки, (Товары.Цена * Заказ.Количества) + Заказ.СтоимостьДоставки AS [Общая стоимость заказа]

FROM Товары INNER JOIN Заказ ON Товары.КодТовара = Заказ.КодТовара;

Рисунок 3 - Пример запроса с вычисляемым полем

2. Использование операции сцепление строк.

Операция & соединяет два строковых значения, которые могут быть представлены выражениями: <строковое значение 1> & <строковое значение 2>.

Пример. Показать информацию о сотрудниках с указанием их домашних телефонов:

SELECT [Сотрудники]![Фамилия] & " " & [Сотрудники]![Имя] & " (домашний_телефон " & [Сотрудники]![ДомашнийТелефон] & ")" AS Информация

FROM Сотрудники;

Рисунок 4 - Пример запроса с операцией сцепления строк

3. Устранение повторяющихся значений производится через ключевое слово DISTINCT.

Пример. Показать все заказанные товары.

SELECT DISTINCT Товары.ТипТовара, Товары.МаркаТовара

FROM Товары INNER JOIN Заказ ON Товары.КодТовара = Заказ.КодТовара;

4. Отображение всех полей таблицы возможно при использовании * или ALL.

Пример. Показать информацию о товарах.

SELECT Товары.*

FROM Товары;

или

SELECT Товары. All

FROM Товары;