Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7.Введение в язык SQL.pdf
Скачиваний:
48
Добавлен:
20.02.2016
Размер:
538.4 Кб
Скачать

Лекции / Структура команды SQL. Типы данных. Выражения

Технологии баз данных и знаний

 

 

 

 

 

 

 

 

 

 

 

Главная

Типовая

Лекции

Практикум

Индивидуальные

Заочникам

Экзамен/зачет

Тесты

 

 

программа

задания

 

 

 

 

 

 

 

 

 

 

 

ЛЕКЦИИ

Лекция на тему

ВВЕДЕНИЕ В ЯЗЫК SQL

Разработчик: к.социолог.н. Пунчик З.В.

План лекции

1.Язык SQL в СУБД

2.Структура команды SQL. Типы данных. Выражения

3.Функциональные возможности языка SQL

4.Диалекты языка SQL в СУБД

Литература

Глоссарий

&

2.СТРУКТУРА КОМАНДЫ SQL. ТИПЫ ДАННЫХ. ВЫРАЖЕНИЯ

2.1.Структура команды SQL

Каждая команда SQL начинается с действия – ключевого слова или группы слов, описывающих выполняемую операцию. Например, INSERT (добавить), DELETE (удалить), COMMIT (завершить), CREATE TABLE (создать таблицу).

Примечание. В языках программирования ключевое слово – название, зарезервированное для определенных целей, например, названий команд, устройств и т.п.

После действия может следовать одно или несколько предложений. Предложение описывает данные, с которыми работает команда, или содержит уточняющую информацию о действии, выполняемом командой. Каждое предложение начинается с ключевого слова, такого как, например, WHERE (где), FROM (откуда), INTO (куда), HAVING (имеющий). Многие предложения содержат имена таблиц и полей БД; некоторые

– константы и выражения.

Имена таблиц, полей и пользователей должны содержать от 1 до 18 символов, начинаться с буквы и не содержать пробелов или специальных символов пунктуации. В качестве имен нельзя использовать ключевые слова SQL.

Пример команды SQL:

http://www.bseu.by/it/tohod/lekcii7_2.htm[17.05.2013 13:18:44]

Лекции / Структура команды SQL. Типы данных. Выражения

2.2. Типы данных

Ограничимся рассмотрением типов данных, предусмотренных в стандарте SQL-1. Эти типы приведены в табл. 1.

Таблица 1

Тип данных Типы данных языка SQL-1 Описание

CHAR(длина)

Строка символов постоянной длины

CHARACTER(длина)

 

INTEGER

Целое число

INT

 

SMALLINT

Малое целое число

NUMERIC(точность, степень)

Число с фиксированной запятой

DECIMAL(точность, степень

 

DEC(точность, степень)

 

FLOAT (точность)

Число с плавающей запятой

Более поздние стандарты предусматривают дополнительно и другие типы данных, такие, например, как строка символов переменной длины, дата, время, абстрактные типы данных и др.

2.3. Выражения

Выражения в SQL используются для выполнения операций над значениями, которые считаны из БД, или для выбора информации из БД. Выражения представляют собой определенную последовательность полей, констант, функций, соединенных операторами.

Для указания конкретных значений данных используются константы. Различают

следующие виды констант:

 

 

 

Константы

с фиксированной запятой

(пишут точку)

 

21

-375.18

62.3

Константы

с плавающей запятой

 

 

 

1.5Е7

-3.14Е9

2.5Е-6

0.783Е24

Строковые константы (должны быть заключены в одинарные кавычки).

 

'Минск'

'New York' 'Иванов И. И.'

Отсутствующее значение (NULL). SQL поддерживает обработку отсутствующих данных с помощью понятия «отсутствующее значение».

Примеры отсутствующих значений

http://www.bseu.by/it/tohod/lekcii7_2.htm[17.05.2013 13:18:44]

Лекции / Структура команды SQL. Типы данных. Выражения

Хотя в SQL-1 стандартные функции не определены, большинство СУБД поддерживает так называемые агрегатные (итоговые) функции. К часто используемым агрегатным функциям можно отнести следующие:

COUNT – количество значений в столбце,

SUM – сумма значений в столбце,

AVG – среднее значение в столбце,

MAX – максимальное значение в столбце,

MIN – минимальное значение в столбце.

Примечание. Для функций SUM и AVG рассматриваемый столбец должен

содержать числовые значения.

 

 

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

 

арифметические:

+ (сложение),

- (вычитание),

* (умножение), /

(деление);

 

 

 

отношения: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно);

логические: AND (логическое "И"), OR (логическое "ИЛИ"), NOT ("НЕТ");

специальные: IN (определяет множество, которому может принадлежать значение); BETWEEN (задает границы, в которые должно попадать значение); LIKE (применяется для поиска по шаблону. В шаблоне используются специальные символы: % (процент), заменяющий любую последовательность символов и _ (подчеркивание), заменяющий один любой символ); IS NULL – используется для поиска NULL-значений.

Для указания порядка действий в выражениях можно применять скобки. Пример выражения:

Цена * (Остаток + Приход - Расход)

©Минск БГЭУ, 2005 - 2011

http://www.bseu.by/it/tohod/lekcii7_2.htm[17.05.2013 13:18:44]

Лекции / Функциональные возможности языка SQL

Технологии баз данных и знаний

 

 

 

 

 

 

 

 

 

 

 

Главная

Типовая

Лекции

Практикум

Индивидуальные

Заочникам

Экзамен/зачет

Тесты

 

 

программа

задания

 

 

 

 

 

 

 

 

 

 

 

ЛЕКЦИИ

Лекция на тему

ВВЕДЕНИЕ В ЯЗЫК SQL

Разработчик: к.социолог.н. Пунчик З.В.

План лекции

1.Язык SQL в СУБД

2.Структура команды SQL. Типы данных. Выражения

3.Функциональные возможности языка SQL

4.Диалекты языка SQL в СУБД

Литература

Глоссарий

&

3.ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ЯЗЫКА SQL

3.1.Роль языка SQL в СУБД

Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. SQL – это неотъемлемая часть СУБД, инструмент, с помощью которого осуществляется связь пользователя с ней. На рис. 1 изображена структурная схема типичной СУБД, компоненты которой соединяются в единое целое с помощью SQL (своего рода “клея”). Ядро базы данных является сердцевиной СУБД; оно отвечает за физическое структурирование данных и запись их на диск, а также за физическое чтение данных с диска. Кроме того, ядро принимает SQL-запросы от других компонентов СУБД (таких как генератор форм, генератор отчетов или модуль запросов), от пользовательских приложений, а также от других вычислительных систем.

http://www.bseu.by/it/tohod/lekcii7_3.htm[17.05.2013 13:18:51]

Лекции / Функциональные возможности языка SQL

Рис. 1. Компоненты СУБД

Как видно из рисунка, SQL является мощным инструментом, обеспечивающим пользователям, прикладным программам и вычислительным системам доступ к информации, содержащейся в БД.

SQL выполняет множество функций:

SQL – язык интерактивных запросов. Пользователи вводят команды SQL в

интерактивном режиме для выборки данных и отображения их на экране, а также внесения изменений в БД.

SQL – язык программирования баз данных. Чтобы получить доступ к базе данных, в

прикладные программы вставляются команды SQL.

SQL – язык администрирования баз данных. Администратор БД использует SQL для определения структуры базы данных и управления доступом к данным.

SQL – язык создания приложений клиент/сервер. В прикладных программах SQL

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

и др.

3.2. Описание команд язык SQL

Формирование запросов на языке SQL должно осуществляться в строгом соответствии с форматом (правилом формирования) команды.

При описании структуры и правил использования некоторого языка программирования употребляется определенная система обозначений. Для описания форматов команд языка SQL используем так называемую форму Бэкуса-Наура (БНФ), в которой приняты следующие обозначения:

< > (угловые скобки) – то, что в них указано, определяет пользователь;

[ ] (квадратные скобки) – выделяют те части команды, которые могут отсутствовать;

{ } (фигурные скобки) – объединяют последовательность элементов в логическую

http://www.bseu.by/it/tohod/lekcii7_3.htm[17.05.2013 13:18:51]

Лекции / Функциональные возможности языка SQL

группу;

... (многоточие) – указывает на допустимость повторения элемента или группы элементов один или несколько раз;

½ (вертикальная черта) – означает альтернативный выбор;

( ) (круглые скобки) – заключают аргументы команды;

(пробелы) – используются для разделения элементов команды.

Язык SQL, соответствующий последним стандартам SQL:2003, SQL:1999 представляет собой очень богатый и сложный язык, все возможности которого трудно сразу осознать и тем более понять. Поэтому приходится разбивать язык на уровни. В одной из классификаций, предусмотренных стандартом SQL, этот язык разбивается на «базовый» (entry), «промежуточный» (intermediate) и «полный» (full) уровни. Базовый уровень содержит около сорока команд, которые можно сгруппировать в категории по их функциональному назначению. Ниже приводится краткое описание подмножества изучаемых в настоящем курсе команд SQL базового уровня по категориям.

К категории Описание данных относятся команды, позволяющие создавать, изменять и уничтожать БД и объекты БД, такие как таблицы и представления[2]. Команды из этой категории представлены в табл. 2.

 

 

Таблица 2

 

Команды описания данных

Команда

Назначение

Краткий формат

CREATE TABLE

Создает

CREATE TABLE <имя таблицы> ({<имя поля>

 

структуру

<тип данных>[<размер> ] [<ограничения на

 

таблицы

поле>][<значение поля по умолчанию>] },...)

Например, по команде

CREATE TABLE Сведения (НОМЗ INT, ФИО CHAR(15), ГОД INT, ПОЛ CHAR(3))

в БД создается структура таблицы Сведения, включающая поля: НОМЗ, ФИО, ГОД, ПОЛ. Поля НОМЗ и ГОД имеют тип целые числа. Поля ФИО и ПОЛ имеют тип символьный с размерами 15 и 3 символа соответственно.

DROP TABLE

Удаляет

DROP TABLE <имя таблицы>

 

таблицу

 

 

Например, по команде

 

 

DROP TABLE Сведения

 

 

таблица Сведения удаляется из БД.

 

ALTER TABLE

Изменяет

ALTER

TABLE <имя таблицы> ({<имя поля>

 

описание

<тип

данных>[<размер>] [<ограничения на

 

таблицы

поле>][<значение поля по умолчанию>] },...)

Например, по команде

ALTER TABLE Сведения (СЕМПОЛ CHAR(10))

в структуру таблицы Сведения добавляется новое поле СЕМПОЛ, символьного типа размером 10 символов.

CREATE

Создает

CREATE VIEW

<имя представления> AS

VIEW

представление <запрос>

 

Например,

по команде

[WITH CHECK OPTION]

 

 

CREATE VIEW УспеваемостьМ1 AS SELECT *FROM УспеваемостьWHERE ГРУП=

"М-1"

 

 

 

создается

представление (временная таблица)

УспеваемостьМ1, содержащее

те записи таблицы Успеваемость, у которых в поле ГРУП хранится значение М-1.

http://www.bseu.by/it/tohod/lekcii7_3.htm[17.05.2013 13:18:51]

Лекции / Функциональные возможности языка SQL

К категории Внесение изменений в БД относятся команды, позволяющие добавлять,

удалять и модифицировать данные в таблицах. Команды из этой категории представлены в табл. 3.

 

 

 

Таблица 3

 

Команды внесения изменений в БД

Команда

Назначение

Краткий формат

INSERT

Добавляет

 

INSERT INTO <имя таблицы> [{<имя поля>},...]

 

новые

 

VALUES({<значение>},...)

 

записи

в

 

 

таблицу

 

 

Например,

по команде

 

 

INSERT INTO Сведения VALUES (980101, "ИВАНОВ И. И.", 1980, "МУЖ")

в конец таблицы Сведения добавляется новая запись, в первое поле которой заносится значение 980101, во второе поле – значение ИВАНОВ И. И., в третье поле – 1980, в четвертое поле – МУЖ.

DELETE

Удаляет

DELETE FROM

<имя таблицы>

[WHERE

 

записи

из <условие>]

 

 

 

таблицы

 

 

 

Например,

по команде

 

 

 

DELETE FROM Сведения

WHERE НОМЗ=980201

 

 

из таблицы Сведения удаляются все записи, у которых в поле НОМЗ хранится 980201.

UPDATE

Обновляет

UPDATE

<имя

таблицы>

SET{<имя

 

данные

поля>=<выражение>},... [WHERE <условие>]

 

таблицы

 

 

 

 

Например,

по команде

 

 

 

 

UPDATE Сведения SET ФИО = "КРАВЦОВА И. И." WHERE НОМЗ=980201

в таблице

Сведения для

тех записей,

у которых

в поле

НОМЗ хранится

980201, значение поля ФИО устанавливается равным КРАВЦОВА И. И.

Категория Извлечение данных (см. табл. 4) состоит из одной команды SELECT, являющейся основной, наиболее часто используемой командой языка SQL. Эта команда применяется при формировании всех запросов выбора.

 

 

 

Таблица 4

 

 

Команда извлечения данных

Команда Назначение

 

Краткий формат

SELECT

Извлекает

SELECT

[DISTINCT½ALL] {<выражение>},…½*FROM

 

данные из

{<имя таблицы>},... [WHERE <условие>] [ORDER BY

 

БД

{<имя

поля> [ASC½DESC]},...] [GROUP BY {<имя

Например,

по команде

поля>},...] [HAVING <условие>]

 

 

SELECT * FROM Сведения WHERE ФИО="СИДОРОВ С. С." OR ФИО="ПЕТРОВ П.

П."

извлекаются все записи, у которых в поле ФИО хранятся значения СИДОРОВ С.

С. либо ПЕТРОВ П. П.

К категории Управление транзакциями относятся команды, позволяющие обеспечивать целостность данных в базе данных. Для обеспечения целостности данных в SQL используются средства обработки транзакций. Транзакция – это совокупность операций манипулирования данными в системе баз данных, которая переводит базу

http://www.bseu.by/it/tohod/lekcii7_3.htm[17.05.2013 13:18:51]

Лекции / Функциональные возможности языка SQL

данных из одного целостного состояния в другое.

SQL-транзакция – последовательность команд SQL, обладающая свойством атомарности (неделимости) относительно восстановления состояния базы данных. Иначе говоря, это несколько последовательных команд SQL, которые рассматриваются как единое целое.

В языке SQL обработка транзакций реализована с помощью двух команд: COMMIT и ROLLBACK. Они управляют изменениями, выполненными группой команд. Команда COMMIT сообщает об успешном окончании транзакции. Она информирует СУБД о том, что транзакция завершена, все ее команды выполнены успешно и противоречия в БД не возникли. Команда ROLLBACK сообщает о неуспешном окончании транзакции. Она информирует СУБД о том, что пользователь не хочет завершать транзакцию, и СУБД должна отменить все изменения, внесенные в БД в результате выполнения транзакции. В этом случае СУБД возвращает БД в состояние, в котором она находилась до выполнения транзакции.

Команды COMMIT и ROLLBACK используются в основном в программном режиме, хотя возможно их использование и в интерактивном режиме.

К категории Управление доступом (см. табл. 5) относятся команды для осуществления административных функций, присваивающих или отменяющих право (привилегию) использовать таблицы в БД определенным образом. Каждый пользователь БД имеет определенные права по отношению к объектам БД. Права – это те действия с объектом, которые может выполнять пользователь. Права могут меняться с течением времени: старые могут отменяться, новые – добавляться. Стандартом языка SQL предусмотрены следующие права:

SELECT – право читать таблицу;

INSERT – право добавлять данные в таблицу;

UPDATE – право изменять данные таблицы;

DELETE – право удалять данные из таблицы;

REFERENCES – право определять первичный ключ.

Пользователь, создавший таблицу, является ее владельцем. Как владелец, пользователь имеет все права на таблицу и может назначить права для работы с ней другим пользователям. Кроме владельца, права может назначать администратор БД.

 

 

Команды управления доступом

Таблица 5

 

 

 

Команда

Назначение

 

Краткий формат

 

GRANT

Предоставляет

GRANT

ALL [PRIVILEGES]½{SELECT ½INSERT

½DELETE

 

пользователю

½UPDATE

[<список

полей>]½REFERENCES

[<список

 

право доступа

полей>]},...ON <имя таблицы> TO PUBLIC ½<список

Например,

по команде

пользователей> [WITH GRANT OPTION]

 

 

 

 

 

GRANT SELECT, UPDATE ON Сведения TO ГИЛЬ, БРЕЛЬ

пользователям ГИЛЬ и БРЕЛЬ назначаются права чтения и обновления (редактирования) таблицы Сведения

REVOKE

 

Отменяет право доступа REVOKE

ALL [PRIVILEGES]½{SELECT ½INSERT

 

 

½DELETE ½UPDATE [<список полей>]½REFERENCES

 

 

[<список полей>]},...ON <имя таблицы>TO PUBLIC

Например,

½<список пользователей> [WITH GRANT OPTION]

по команде

 

REVOKE

UPDATE ON Сведения TO ГИЛЬ

 

отменяется право обновления таблицы Сведения пользователю ГИЛЬ.

http://www.bseu.by/it/tohod/lekcii7_3.htm[17.05.2013 13:18:51]

Лекции / Функциональные возможности языка SQL

К категории Встроенный SQL (см. табл. 6) относятся команды, предназначенные для реализации обращения к БД из прикладных программ, написанных на определенном языке программирования. Для пересылки данных из БД в прикладную программу используются временная таблица, называемая SQL-курсором.

Таблица 6

 

Команды встроенного SQL

Команда

Назначение

DECLARE

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

OPEN

возвращены результаты запроса

Открывает определенный набор записей

FETCH

Извлекает строку из таблицы результатов запроса

CLOSE

Закрывает набор записей запроса

[2] Представления (views) – это таблицы, содержимое которых извлекается из других таблиц БД. Иначе говоря, представление – это сохраненный запрос выбора. Использование представлений упрощает доступ к информации БД.

© Минск БГЭУ, 2005 - 2011

http://www.bseu.by/it/tohod/lekcii7_3.htm[17.05.2013 13:18:51]

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