Введение в структурированный язык запросов SQL (Strukture...

25
А.М. Гудов А.М. Гудов 1

description

Введение в структурированный язык запросов SQL (Strukture Query Language). Цели курса. Основные положения, терминология и операторы реляционной базы данных. Проектирование и создание структур базы данных (таблиц, представлений и т.д.) с помощью структурированного языка запросов (SQL). - PowerPoint PPT Presentation

Transcript of Введение в структурированный язык запросов SQL (Strukture...

Page 1: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов1

Page 2: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов2

• Основные положения, терминология и операторы реляционной базы данных.

• Проектирование и создание структур базы данных (таблиц, представлений и т.д.) с помощью структурированного языка запросов (SQL).

• Хранение, выборка и обновление данных в базе данных.

Page 3: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов3

• Доктор Е.Ф. Кодд предложил реляционную модель баз данных в 1979 г.

• Эта модель лежит в основе систем управления реляционными базами данных (RDBMS или РСУБД).

• Реляционная модель содержит следующие компоненты:– Совокупность объектов или отношений.– Набор операций над отношениями.– Целостность данных - их точность и

согласованность.

Page 4: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов4

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

Сервер БД Сервер БД

IDID LAST_NAMELAST_NAME FIRST_NAMEFIRST_NAME1010 HavelHavel MartaMarta1111 MageeMagee ColinColin1212 GiljumGiljum HenryHenry1414 NguyenNguyen MaiMai

SALES_SALES_IDID NAMENAME PHONEPHONE REP_IDREP_ID

201201 UnisportsUnisports 55-206610155-2066101 1212202202 Simms AtheleticsSimms Atheletics 81-2010181-20101 1414203203 Delhi SportsDelhi Sports 91-1035191-10351 1414204204 WomansportWomansport 1-206-104-01031-206-104-0103 1111

Имя таблицы: Имя таблицы: S_CUSTOMERS_CUSTOMER Имя таблицы: Имя таблицы: S_EMPS_EMP

Page 5: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов5

• Каждая таблица состоит из строк и столбцов.Каждая таблица состоит из строк и столбцов.

• Манипулировать данными в строках можно с помощью Манипулировать данными в строках можно с помощью команд Структурированного языка запросов (SQL).команд Структурированного языка запросов (SQL).

SALES_SALES_IDID NAMENAME PHONEPHONE REP_IDREP_ID

201201 UnisportsUnisports 55-206610155-2066101 1212202202 Simms AtheleticsSimms Atheletics 81-2010181-20101 1414203203 Delhi SportsDelhi Sports 91-1035191-10351 1414204204 WomansportWomansport 1-206-104-01031-206-104-0103 1111

Строка (кортеж)Строка (кортеж)

Столбец (атрибут)Столбец (атрибут)

Таблица (отношение) S_CUSTOMER)Таблица (отношение) S_CUSTOMER)

Терминология реляционной базы данныхТерминология реляционной базы данных

Page 6: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов6

• Каждая строка данных в таблице однозначно идентифицируется главным ключом (PK).

• С помощью внешних ключей (FK) можно логически связывать информацию из нескольких таблиц.

IDID LAST_NAMELAST_NAME FIRST_NAMEFIRST_NAME1010 HavelHavel MartaMarta1111 MageeMagee ColinColin1212 GiljumGiljum HenryHenry1414 NguyenNguyen MaiMai

SALES_SALES_IDID NAMENAME PHONEPHONE REP_IDREP_ID

201201 UnisportsUnisports 55-206610155-2066101 1212202202 Simms AtheleticsSimms Atheletics 81-2010181-20101 1414203203 Delhi SportsDelhi Sports 91-1035191-10351 1414204204 WomansportWomansport 1-206-104-01031-206-104-0103 1111

Имя таблицы: Имя таблицы: S_CUSTOMERS_CUSTOMER Имя таблицы: Имя таблицы: S_EMPS_EMP

Главный ключГлавный ключ Внешний ключВнешний ключ Главный ключГлавный ключ

Терминология реляционной базы данныхТерминология реляционной базы данных

Page 7: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов7

СвойстваСвойства реляционнойреляционной базы данныхбазы данных

• Доступ к объектам базы данных и их изменение осуществляются с помощью команд языка SQL.

• Содержит совокупность таблиц без физических указателей.

• Используется набор операций.• Может быть изменена в оперативном

(онлайновом) режиме.• Полная независимость данных.

Page 8: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов8

Объекты базы данныхОбъекты базы данных

ОписаниеОписаниеОсновная единица хранения данных, Основная единица хранения данных, состоящая из строк и столбцов.состоящая из строк и столбцов.

Логическое представление подмножествЛогическое представление подмножествданных из одной или нескольких таблиц.данных из одной или нескольких таблиц.

Генерирует значения первичного ключа.Генерирует значения первичного ключа.

Ускоряет некоторые запросы.Ускоряет некоторые запросы.

Альтернативное имя объекта.Альтернативное имя объекта.

Процедура, функция или пакет команд Процедура, функция или пакет команд SQL и PL/SQL..SQL и PL/SQL..

ОбъектОбъект

ТаблицаТаблица

ПредставлениеПредставление

Последоват.Последоват.

ИндексИндекс

СинонимСиноним

Программн.Программн.единицаединица

Page 9: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов9

Ограничения целостности данныхОграничения целостности данных

• Сущности:– Ни одна часть первичного ключа не может иметь неопределенного

значения (NULL). Значение должно быть определенным и уникальным.

• Ссылки:– Значение внешнего ключа должно совпадать со значением

первичного ключа или быть неопределенным (NULL).

• Столбцы:– Значения столбца должны соответствовать заданному типу данных.

• Пользовательские ограничения:– Значения должны соответствовать правилам бизнеса.

Page 10: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов10

Что такое Oracle?Что такое Oracle?

• Система управления реляционными базами Система управления реляционными базами данных фирмы Oracle называется сервером данных фирмы Oracle называется сервером OracleOracle Server Server..

• Oracle — это фирма, специализирующаяся Oracle — это фирма, специализирующаяся на базах данных и предлагающая продукты на базах данных и предлагающая продукты и услуги в сфере информационных и услуги в сфере информационных технологий.технологий.– Обозначенные области хранения данных– Быстрая выборка данных– Безопасность базы данных– Распределенные базы данных и

целостность в сетях– Конфигурации клиент-сервер

Page 11: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов11

Oracle: общая схемаOracle: общая схема

СерверСервер

Пользовательскиетаблицы

Словарь данных

Page 12: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов12

““Луковица“ OracleЛуковица“ Oracle

Oracle7Oracle7SQL, PL/SQLSQL, PL/SQL

ДанныеДанныеОперационная системаОперационная система

ИнструментарийИнструментарийСервер

Приложения

Page 13: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов13

SQL, SQL*Plus и PL/SQLSQL, SQL*Plus и PL/SQL

• SQL:SQL:– Язык команд для взаимодействия с сервером OracleOracle.

• SQL*Plus:SQL*Plus:– Инструмент Oracle, предназначенный для

распознавания и выполнения команд SQL и PL/SQL.

• PL/SQL:PL/SQL:– Процедурный язык Oracle, дополняющий SQL

логикой прикладной программы.

Page 14: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов14

Взаимодействие SQL и SQL*PlusВзаимодействие SQL и SQL*Plus

SQL*Plus

Скрипты SQL и PL/SQL

Буфер

СерверСервер

Page 15: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов15

Команды SQLКоманды SQL

• Выборка данных:Выборка данных:– SELECT

• Манипулирование данными (DML):Манипулирование данными (DML):– INSERT, UPDATE, DELETE

• Определение данных (DDL):Определение данных (DDL):– CREATE, ALTER, DROP, RENAME, TRUNCATE

• Управление транзакциями:Управление транзакциями:– COMMIT, ROLLBACK, SAVEPOINT

• Безопасность (DCL):Безопасность (DCL):– GRANT, REVOKE

Page 16: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов16

Команды SQL*PlusКоманды SQL*Plus

Основные категории команд SQL*Plus:Основные категории команд SQL*Plus:• Управление средой.• Форматирование.• Манипулирование файлами.• Выполнение.• Редактирование.• Взаимодействие.• Прочие команды.

Page 17: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов17

Запуск SQL*PlusЗапуск SQL*Plus• Из среды WindowsИз среды Windows

– Дважды щелкнуть мышью по пиктограмме.– Представить имя пользователя и пароль.

• Из командной строкиИз командной строки– sqlplus [username[/password]]sqlplus [username[/password]]

Page 18: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов18

Вывод структуры таблицыВывод структуры таблицы

Команда SQL*Plus DESCRIBEDESCRIBE выводит структуру таблицы (имена столбцов, столбцы NOT NULL и типы данных).

SQL> SQL> DESCRIBE s_deptDESCRIBE s_dept

• Столбцы NOT NULLNOT NULL должны содержать данные. • Примеры типов данных и ширины столбцов

– NUMBER (NUMBER (p,sp,s))– VARCHAR2(VARCHAR2(ss))– DATEDATE– CHAR(CHAR(ss))

Page 19: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов19

Команды редактирования SQL*PlusКоманды редактирования SQL*Plus

• A[PPEND] A[PPEND] texttext• C[HANGE] C[HANGE] / old/ new/ old/ new• CL[EAR] BUFF[ER]CL[EAR] BUFF[ER]• DELDEL• I[NPUT] textI[NPUT] text• L[IST] L[IST] nn• n textn text

Page 20: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов20

Команда SET PAUSEКоманда SET PAUSE

• Позволяет контролировать прокрутку изображения на терминале. После каждой паузы для получения следующего экрана необходимо нажать на RETURN.

SET PAUSE {OFF|ON| text}SET PAUSE {OFF|ON| text}

Page 21: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов21

Команды для работы с файламиКоманды для работы с файлами

• SAVE SAVE filenamefilename• GET GET filenamefilename• START START filenamefilename• @ @ filenamefilename• EDIT EDIT filenamefilename• SPOOL SPOOL filenamefilename• EXITEXIT

Page 22: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов22

Команда COLUMN: синтаксисКоманда COLUMN: синтаксис

COL[UMN] [{COL[UMN] [{columncolumn||aliasalias}} [[optionoption]]]]

• CLE[AR]CLE[AR] – сбрасывает любые форматы столбцов. – сбрасывает любые форматы столбцов.• FOR[MAT] FOR[MAT] formatformat – изменяет вывод столбца с – изменяет вывод столбца с

помощью форматной модели.помощью форматной модели.• HEA[DING]HEA[DING] text text – задает заголовок столбца. – задает заголовок столбца. • JUS[TIFY] {JUS[TIFY] {alignalign}} – выравнивает заголовок – выравнивает заголовок

столбца по левому краю, центру или правому столбца по левому краю, центру или правому краю.краю.

Page 23: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов23

Команда COLUMN: примерыКоманда COLUMN: примеры

Создание заголовков столбцовСоздание заголовков столбцов

Вывод текущих установок для столбца LAST_NAME.Вывод текущих установок для столбца LAST_NAME.

Сброс установок для столбца LAST_NAME.Сброс установок для столбца LAST_NAME.

COLUMN last_name HEADING 'Employee|Name' FORMAT A15COLUMN last_name HEADING 'Employee|Name' FORMAT A15COLUMN salary JUSTIFY LEFT FORMAT $99,990.00COLUMN salary JUSTIFY LEFT FORMAT $99,990.00COLUMN start_date FORMAT A8 NULL 'Not hired'COLUMN start_date FORMAT A8 NULL 'Not hired'

COLUMN last_nameCOLUMN last_name

COLUMN last_name CLEARCOLUMN last_name CLEAR

Page 24: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов24

Форматные модели COLUMNФорматные модели COLUMN

• Столбцы с символьными данными и датамиСтолбцы с символьными данными и датамиAAnn Задает ширину столбца Задает ширину столбца n n для вывода.для вывода.

• Столбцы с числовыми даннымиСтолбцы с числовыми данными99 Один цифровой разряд.Один цифровой разряд.00 Вставляет ведущий ноль.Вставляет ведущий ноль.$$ Плавающий знак доллара.Плавающий знак доллара.LL Местная валюта.Местная валюта... Место десятичной точки.Место десятичной точки.,, Разделитель тысяч.Разделитель тысяч.

Page 25: Введение в структурированный язык запросов SQL (Strukture Query Language)

А.М. ГудовА.М. Гудов25

Структура блока PL/SQLСтруктура блока PL/SQLCREATE OR REPLACE PROCEDURE del_inv (p_product_id NUMBER) IS v_product_id s_product.id%TYPE;BEGIN SELECT id

INTO v_product_idFROM s_productWHERE id = p_product_id;

DELETE FROM s_inventoryWHERE product_id = v_product_id;

COMMIT;EXCEPTION WHEN OTHERS THEN

ROLLBACK;INSERT INTO exception_table (message)

VALUES ('Some error occurred in the database.');COMMIT;

END;