Введение в язык SQL DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) TCL (Transaction Control Language)

Презентация:



Advertisements
Похожие презентации
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Advertisements

СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Лекция 16 Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL.
Содержание: 1. Управление данными. а) Извлечение данных команда SELECT; б) Полный список разделов. 2. Раздел SELECT. а) Синтаксис раздела SELECT; б) Ключевые.
Тема 6. Технология разработки реляционной модели данных Вопросы 1.Объекты реляционных БД, терминология 2.Разработка структуры БД 3.Нормализация отношений.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
История развития языка SQL Structured Query Language ɛ skju ɛ l ɛ skju ɛ l или si:kwəlsi:kwəl DML (Data Manipulation Language) DDL (Data Definition Language)
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
SQL SQL (Structured Query Language Структурированный язык запросов) язык управления базами данных для реляционных баз данных.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
СУБД 5. SQL для выборки данных. 2 SELECT Обработка элементов оператора SELECT выполняется в следующей последовательности: FROM – определяются имена используемых.
Основы SQL Запросы к базе данных. Что такое база данных SQL? SQL (Structured Query Language - «Структурированный язык запросов») - универсальный компьютерный.
Базы данных Язык запросов SQL. Команда SELECT (продолжение)
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Реляционные базы данных N-арное отношение – подмножество декартова произведения N множеств возможных значений (доменов, типов данных, атрибутов) Изображение.
Язык QBE Язык QBE -общая характеристика Табличный двумерный язык, основанный на реляционном исчислении. Декларативный язык. Язык четвертого поколения (4.
Объединение таблиц Подзапросы. Оператор SELECT дает возможность выборки информации сразу из нескольких таблиц, которые перечислены в списке FROM. Такая.
Транксрипт:

Введение в язык SQL DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) TCL (Transaction Control Language)

SQL (англ. Structured Query Language язык структурированных запросов) Универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования. SQL основывается на реляционной алгебре.

Основные группы SQL Операторы определения данных (англ. Data Definition Language, DDL) – Создание структуры данных Операторы манипуляции данными (англ. Data Manipulation Language, DML) – Извлечение данных – Обновление данных Операторы определения доступа к данным (англ. Data Control Language, DCL)

Часть 1: DDL Создание структуры базы данных в SQL

Типы данных in SQL Символьные: – CHAR(20)-- fixed length – VARCHAR(40)-- variable length Числовые: – BIGINT, INT, SMALLINT, TINYINT – REAL, FLOAT -- differ in precision Время и дата: – DATE – TIMESTAMP – DATETIME-- SQL Server Другие…

Создание таблицы Самая важная из DDL-операций является создание таблицы: уникальное имя таблицы «Table elements»: определение имени и типа данных для каждого столбца определение ограничений Синтаксис объявления таблицы:

Создание таблицы Создание таблицы FotballMatch содержащей результаты футбольных матчей

Создание таблицы: структура

Создание таблицы: столбец Объявление содержит – имя колонки – тип значения – спец ограничение Синтаксис объявления столбца

Создание таблицы: столбец Синтаксис ограничений столбца Объявление содержит – имя колонки – тип значения – спец ограничение

Ограничения таблицы Вторая часть определения таблицы – задание ограничений. Синтаксис ограничений таблицы:

Ограничение CHECK При каждом изменении строки данных условие этого ограничения должно удовлетворятся для указанного столбца

Ограничение UNIQUE Семантика: не может быть две строки с одинаковым значением для указанного столбца Исключение: значения NULL могут повторятся В таблице возможно иметь несколько столбцов с таким ограничением Если в таблице есть хоть одно UNIQUE поле, то не будет ни одной записи-дубликата

Ограничение PRIMARY KEY Ограничение PRIMARY KEY(PK) уникально идентифицирует каждую запись в таблице PK должен содержать уникальные значения PK не может быть иметь значение NULL Каждая таблица должна иметь PK и он должен быть один

Ограничение PRIMARY KEY Синтаксис создания PK – PK состоящий из одного столбца может быть объявлен в контексте его объявления... PRIMARY KEY – «мульти-столбцовый» PK объявляется в контексте ограничений таблицы PRIMARY KEY ( ) PRIMARY KEY – не тоже самое что UNIQUE!

Значение по умолчанию (DЕFAULT) Есть возможность задания значения по умолчанию для столбца Синтаксис:

Ограничение FOREIN KEY В контексте ограничений таблицы можно задать так называемое ограничение «по внешнему ключу» - FOREIN KEY(FK) Синтаксис: Если список столбцов отсутствует – то будет принят PK Пример:

Ситуация FK Столбец(столбцы) таблицы A объявлены как ссылки на столбец(столбцы) таблицы B Условие: FK столбец(столбцы) таблицы A могут содержать только значения существующие в таблице B Колонки формиру ющие FK

Часть 2: DМL В этой части мы поговорим о манипуляции данными в SQL

Простой SQL запрос на выборку данных Основной компонент всех SQL запросов на выборку данных из таблиц - SELECT-FROM- WHERE Пример Найти все столицы с населением более миллиона

Расшифровка: Select-From-Where

Пример работы запроса [1]

Пример работы запроса [2] На первом шаге результирующая таблица содержит 46 * 77 = 3542 записей

Пример работы запроса [3] На следующем шаге происходит отсеивание записей в соответствии с WHERE выражением. (Всего 46 столиц отсеянных по критерию численности населения)

Пример работы запроса [4] Далее отбрасываем ненужные столбцы. Получаем результирующую таблицу:

WHERE-условия Предусмотрены 6 следующих операций сравнения: Выражение может быть комбинированно с использованием логических операторов - связок:

Понимание логических операторов

Сокращенные и полные ссылки на таблицы Без префикса: С префиксом:

Пример табличных ссылок В предыдущем примере вместо населения мы использовали столбец «year». Если поменять «year» на «population» то возникает конфликт так как этот столбец есть в обоих таблицах: Разрешение конфликта:

Псевдоним (Alias) для таблиц Для краткости записи запроса можно использовать псевдонимы таблиц: Псевдонимы таблиц можно смешивать со стандартным использованием ссылок на таблицы:

Множество данных таблицы

Операции с множествами Объедение – все содержит элементы обоих множеств Пересечение – содержит только те элементы которые есть в обоих множествах Разность – Содержит все элементы A, которых нет в B Ключевые SQL слова для выполнения этих операций с множествами

Пример операций с множествами

Объединение в SQL

Блоки SELECT-FROM-WHERE как операторы реляционной алгебры (РА) Операторы РА Проекция – исключение всех столбцов кроме A и B Выборка – исключение всех строк исключая те которые удовлетворяют выражению cond Производство – множество всех комбинаций записей из R и S Пример: Порядок обработки: 1) Производство 2) Выборка 3) Проекция

Оператор JOIN Существует специальная нотация для ситуации: Это так называемое выражение объединения: JOIN JOIN доступно только в части запроса FROM. Эту форму объединения называют INNER JOIN

Оператор IN

NOT IN для представления операции «РАЗНОСТЬ» множеств

Эмуляция «Пересечения» с помощью JOIN В некоторых реализациях БД (например MS Access) не поддерживается оператор INTERSECT. Проблема решается оператором JOIN: В этом случае порядок входных таблиц не важен. Например такой запрос даст аналогичный результат:

Удаление дублирующих записей Для удаления дублирующих используется ключевое слово DESTINCT

Агрегатные функции Важная часть SQL – встроенные функции COUNT – Количество SUM – Сумма AVG – Вычисление среднеарифметического Maximum – Вычисление максимального Minimum – Вычисление минимального

Пример использование встроенной функции Вычисление суммы зарплат всех профессоров с рангом «С3» Кто из профессоров ранга «С3» старше самого пожилого профессора «С4»

Группировка записей SELECT FROM WHERE condition ; GROUP BY groupexpr [HAVING requirement] Синтаксис: groupexpr – список столбцов группировки WHERE condition – условие налагаемое на результат до того как группы будут сформированы HAVING requirement – наложение условия при котором группа попадет в выборку

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

Иллюстрация GROUP BY

Пример группировки записей Выводятся средние результат теста у мальчиков по классам – в вывод попадут только те классы в которых более 3-х мальчиков SELECT AVG(mtest), class FROM student WHERE sex="M" GROUP BY class HAVING COUNT(*) >= 3 Result

Сортировка полученных записей Сортировка указывается в самом конце запроса (после GROUP BY если она есть) Пример: Направления сортировки: ASC – по возрастанию (по умолчанию) DESC – по убыванию

Значения NULL

Операции с NULL NULL может присваиваться переменным и записываться в поля, независимо от объявленного типа данных этих переменных (полей); NULL может передаваться в процедуры и функции как легальное значение параметра. Результаты выполнения такой процедуры или функции определяются операциями, выполняемыми с параметрами внутри неё. Любая операция с NULL, кроме операции сравнения, в результате даёт NULL, независимо от значения прочих операндов. Существует специальная системная функция или операция (обычно expr IS [NOT] NULL), возвращающая логическое значение «истина» (TRUE), если expr является (не является) NULL и FALSE в противном случае.

Операция сравнения с NULL Любая операция сравнения с NULL (даже операция «NULL = NULL»), даёт в результате значение «неизвестность» (UNKNOWN). Если сравнение с NULL есть вся логическая операция целиком (а не её часть), то результат её аналогичен FALSE (выражение вида IF = NULL THEN ELSE END IF всегда будет приводить к выполнению действия2).

NULL и агрегатные функции Агрегатные функции игнорируют значение NULL

Операции изменения данных Существуют три операции изменения данных: – INSERT – вставка строк – UPDATE – модификация значений столбцов – DELETE – удаление строк

Операция INSERT Формат: Два варианта использования: 1) напрямую 2) через запрос

Автоматическая генерация PRIMARY KEY create table MY_TABLE ( S_ID integer generated by default as identity (start with 1) primary key ); -- удаление таблицы drop table MY_TABLE;

Операции UPDATE и DELETE Формат: Синтаксис присваивания: Пример: Удаление:

Часть 3: DСL DCL (data control language) – язык контроля данных Основной представитель группы контроля данных SQL это оператор GRANT Общий синтаксис: GRANT { INSERT|SELECT|DELETE} ON EMP TO {USER} (дает права на операции выборку, вставку и удаление с таблицей EMP пользователю USER)

Часть 4: TСL TCL (transaction control language) – группа операций для управления транзакциями – COMMIT – фиксация транзакции – ROLLBACK – откат транзакции – SAVEPOINT – создание точки сохранения