260 likes | 449 Views
Введение в структурированный язык запросов SQL (Strukture Query Language). Цели курса. Основные положения, терминология и операторы реляционной базы данных. Проектирование и создание структур базы данных (таблиц, представлений и т.д.) с помощью структурированного языка запросов (SQL).
E N D
Введение в структурированный язык запросов SQL (Strukture Query Language) А.М. Гудов
Цели курса • Основные положения, терминология и операторы реляционной базы данных. • Проектирование и создание структур базы данных (таблиц, представлений и т.д.) с помощью структурированного языка запросов (SQL). • Хранение, выборка и обновление данных в базе данных. А.М. Гудов
Концепция реляционной базы данных • Доктор Е.Ф. Кодд предложил реляционную модель баз данных в 1979 г. • Эта модель лежит в основе систем управления реляционными базами данных (RDBMS или РСУБД). • Реляционная модель содержит следующие компоненты: • Совокупность объектов или отношений. • Набор операций над отношениями. • Целостность данных - их точность и согласованность. А.М. Гудов
Реляционная база данных - это совокупность отношенийили двумерных таблиц. Сервер БД Имя таблицы: S_CUSTOMER Имя таблицы: S_EMP SALES_ ID NAME PHONE REP_ID 201 Unisports 55-2066101 12 202 Simms Atheletics 81-20101 14 203 Delhi Sports 91-10351 14 204 Womansport 1-206-104-0103 11 ID LAST_NAME FIRST_NAME 10 Havel Marta 11 Magee Colin 12 Giljum Henry 14 Nguyen Mai А.М. Гудов
Терминология реляционной базы данных • Каждая таблица состоит из строк и столбцов. • Манипулировать данными в строках можно с помощью команд Структурированного языка запросов (SQL). Таблица (отношение) S_CUSTOMER) SALES_ ID NAME PHONE REP_ID 201 Unisports 55-2066101 12 202 Simms Atheletics 81-20101 14 203 Delhi Sports 91-10351 14 204 Womansport 1-206-104-0103 11 Строка (кортеж) Столбец (атрибут) А.М. Гудов
Терминология реляционной базы данных • Каждая строка данных в таблице однозначно идентифицируется главным ключом (PK). • С помощью внешних ключей (FK) можно логически связывать информацию из нескольких таблиц. Имя таблицы: S_CUSTOMER Имя таблицы: S_EMP SALES_ ID NAME PHONE REP_ID 201 Unisports 55-2066101 12 202 Simms Atheletics 81-20101 14 203 Delhi Sports 91-10351 14 204 Womansport 1-206-104-0103 11 ID LAST_NAME FIRST_NAME 10 Havel Marta 11 Magee Colin 12 Giljum Henry 14 Nguyen Mai Главный ключ Внешний ключ Главный ключ А.М. Гудов
Свойствареляционнойбазы данных • Доступ к объектам базы данных и их изменение осуществляются с помощью команд языка SQL. • Содержит совокупность таблиц без физических указателей. • Используется набор операций. • Может быть изменена в оперативном (онлайновом) режиме. • Полная независимость данных. А.М. Гудов
Объекты базы данных Объект Таблица ПредставлениеПоследоват. Индекс Синоним Программн.единица Описание Основная единица хранения данных, состоящая из строк и столбцов.Логическое представление подмножествданных из одной или нескольких таблиц. Генерирует значения первичного ключа. Ускоряет некоторые запросы. Альтернативное имя объекта. Процедура, функция или пакет команд SQL и PL/SQL.. А.М. Гудов
Ограничения целостности данных • Сущности: • Ни одна часть первичного ключа не может иметь неопределенного значения (NULL). Значение должно быть определенным и уникальным. • Ссылки: • Значение внешнего ключа должно совпадать со значением первичного ключа или быть неопределенным (NULL). • Столбцы: • Значения столбца должны соответствовать заданному типу данных. • Пользовательские ограничения: • Значения должны соответствовать правилам бизнеса. А.М. Гудов
Что такое Oracle? • Система управления реляционными базами данных фирмы Oracle называется сервером Oracle Server. • Oracle — это фирма, специализирующаяся на базах данных и предлагающая продукты и услуги в сфере информационных технологий. • Обозначенные области хранения данных • Быстрая выборка данных • Безопасность базы данных • Распределенные базы данных ицелостность в сетях • Конфигурации клиент-сервер А.М. Гудов
Oracle: общая схема Сервер Пользовательскиетаблицы Словарь данных А.М. Гудов
Oracle7 SQL, PL/SQL “Луковица“ Oracle Данные Операционная система Инструментарий Сервер Приложения А.М. Гудов
SQL, SQL*Plus и PL/SQL • SQL: • Язык команд для взаимодействия с сервером Oracle. • SQL*Plus: • Инструмент Oracle, предназначенный для распознавания и выполнения команд SQL и PL/SQL. • PL/SQL: • Процедурный язык Oracle, дополняющий SQL логикой прикладной программы. А.М. Гудов
Сервер Взаимодействие SQL и SQL*Plus SQL*Plus Буфер Скрипты SQL и PL/SQL А.М. Гудов
Команды SQL • Выборка данных: • SELECT • Манипулирование данными (DML): • INSERT, UPDATE, DELETE • Определение данных (DDL): • CREATE, ALTER, DROP, RENAME, TRUNCATE • Управление транзакциями: • COMMIT, ROLLBACK, SAVEPOINT • Безопасность (DCL): • GRANT, REVOKE А.М. Гудов
Команды SQL*Plus Основные категории команд SQL*Plus: • Управление средой. • Форматирование. • Манипулирование файлами. • Выполнение. • Редактирование. • Взаимодействие. • Прочие команды. А.М. Гудов
Запуск SQL*Plus • Из среды Windows • Дважды щелкнуть мышью по пиктограмме. • Представить имя пользователя и пароль. • Из командной строки • sqlplus [username[/password]] А.М. Гудов
Вывод структуры таблицы Команда SQL*Plus DESCRIBE выводит структуру таблицы (имена столбцов, столбцы NOT NULL и типы данных). SQL> DESCRIBE s_dept • Столбцы NOT NULL должны содержать данные. • Примеры типов данных и ширины столбцов • NUMBER (p,s) • VARCHAR2(s) • DATE • CHAR(s) А.М. Гудов
Команды редактирования SQL*Plus • A[PPEND] text • C[HANGE] / old/ new • CL[EAR] BUFF[ER] • DEL • I[NPUT] text • L[IST] n • n text А.М. Гудов
Команда SET PAUSE • Позволяет контролировать прокрутку изображения на терминале. После каждой паузы для получения следующего экрана необходимо нажать на RETURN. SET PAUSE {OFF|ON| text} А.М. Гудов
Команды для работы с файлами • SAVE filename • GET filename • START filename • @ filename • EDIT filename • SPOOL filename • EXIT А.М. Гудов
Команда COLUMN: синтаксис COL[UMN] [{column|alias}[option]] • CLE[AR] – сбрасывает любые форматы столбцов. • FOR[MAT] format – изменяет вывод столбца с помощью форматной модели. • HEA[DING] text – задает заголовок столбца. • JUS[TIFY] {align} – выравнивает заголовок столбца по левому краю, центру или правому краю. А.М. Гудов
Команда COLUMN: примеры Создание заголовков столбцов COLUMN last_name HEADING 'Employee|Name' FORMAT A15 COLUMN salary JUSTIFY LEFT FORMAT $99,990.00 COLUMN start_date FORMAT A8 NULL 'Not hired' Вывод текущих установок для столбца LAST_NAME. COLUMN last_name Сброс установок для столбца LAST_NAME. COLUMN last_name CLEAR А.М. Гудов
Форматные модели COLUMN • Столбцы с символьными данными и датами An Задает ширину столбца n для вывода. • Столбцы с числовыми данными 9 Один цифровой разряд. 0 Вставляет ведущий ноль. $ Плавающий знак доллара. L Местная валюта. . Место десятичной точки. , Разделитель тысяч. А.М. Гудов
Структура блока PL/SQL CREATE OR REPLACE PROCEDURE del_inv (p_product_id NUMBER) IS v_product_id s_product.id%TYPE; BEGIN SELECT idINTO 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; А.М. Гудов