Similar presentations:
Язык SQL
1.
Язык SQL2.
Основные определения• Structured Query Language — «язык
структурированных запросов
• SQL является- информационно-логический
язык, предназначенный для описания
хранимых данных, для извлечения
хранимых данных и для модификации
данных.
3.
ВведениеБольшинство современных СУБД построено
на реляционной модели данных. Для
получения информации из отношений
(таблиц) базы данных в качестве языка
манипулирования данными в теоретическом
плане используется язык SQL
4.
SQL – структурированный язык запросов,предназначенный для работы с БД реляционного
типа. SQL является интерактивным языком запросов,
который обеспечивает пользователю быстрый доступ
к данным. SQL является также языком
программирования баз данных. Программисты могут
вставить SQL-запросы в свои программы, чтобы
получить доступ к базам данных SQL – язык
распределения базы данных, служит для
распределения данных взаимодействующих систем,
для распределенной обработки баз данных
5.
Функции языка SQL• Организация данных – создание и изменение структуры
баз данных
• Чтение данных
• Обработка данных – удаление, добавление и
корректировка данных
• Управление доступа к данным – предоставление
привилегий (ограничение возможностей) пользователю
для чтения и изменения данных
• Совместное использование данных- координация
общего пользования данных многими пользователями
• Целостность данных – защита данных от разрушения
при сбое системы или других обстоятельствах
6.
Стандарты SQLРазработка SQL началась в 1982 году
Американским институтом национальных
стандартов ANSI (American National Standards
Institute). В 1986 SQL был официально
утвержден как стандарт ANSI, а в 1987 году –
в качестве стандарта ISO (International
Standards Organization) – международной
организации по стандартизации.
7.
• Первый официальный стандарт языка SQL былпринят ANSI (Американский Национальный
Институт Стандартов) в 1986
году и ISO (Международной организацией по
стандартизации) в 1987 году (так называемый SQL86) и несколько уточнён в 1989 году. Дальнейшее
развитие языка
• поставщиками СУБД потребовало принятия в 1992
году нового расширенного стандарта (ANSI SQL92 или просто SQL2). Следующим стандартом
стал SQL:1999 (SQL3). В настоящее время действует
стандарт, принятый в 2003 году (SQL:2003) с
небольшими модификациями, внесёнными позже.
8.
История версий стандарта SQL•1986. SQL-86,SQL-87. Первый вариант стандарта, принятый институтом ANSI и
одобренный ISO в 1987 году.
•1989. SQL-89,FIPS 127-1. Немного доработанный вариант предыдущего
стандарта.
•1992. SQL-92. SQL2, FIPS 127-2. Значительные изменения (ISO 9075);
уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS 127-2.
•1999. SQL:1999. SQL3. Добавлена поддержка регулярных
выражений, рекурсивных запросов, поддержка триггеров, базовые
процедурные расширения, нескалярные типы данных и некоторые объектноориентированные возможности.
•2003. SQL:2003. Введены расширения для работы с XML-данными, оконные
функции (применяемые для работы с OLAP-базами данных), генераторы
последовательностей и основанные на них типы данных.
•2006. SQL:2006. Функциональность работы с XML-данными значительно
расширена. Появилась возможность совместно использовать в запросах SQL
и XQuery.
•2008. SQL:2008. Улучшены возможности оконных функций, устранены
некоторые неоднозначности стандарта SQL:2003
9.
Соответствие стандартуВпервые понятие «уровня соответствия» было предложено в стандарте SQL92. ANSI определяли четыре уровня соответствия реализации этому
стандарту, где каждый последующий уровень соответствия заведомо
подразумевал соответствие предыдущему уровню :
•Entry (базовый)
•Transitional (переходный) — проверку на соответствие этому уровню
проводил только NIST
•Intermediate (промежуточный)
•Full (полный)
Положение изменилось с введением стандарта SQL:1999. в котором стандарт
приобрёл модульную структуру — основная часть стандарта была вынесена в
раздел «SQL/Foundation», все остальные были выведены в отдельные модули.
Соответственно, остался только один уровень совместимости — что означает
поддержку этой основной части. Поддержка остальных возможностей
оставлена на усмотрение производителей СУБД. Аналогичное положение
имело место и с последующими версиями стандарта.
10.
Достоинства SQL• Независимость от конкретной СУБД
• Наличие стандартов
• Декларативность
11.
Недостатки SQLНесоответствие реляционной модели данных
Неопределённые значения (nulls)
Явное указание порядка колонок слева направо
Колонки без имени и дублирующиеся имена
колонок
Отсутствие поддержки свойства «=»
Использование указателей
Высокая избыточность
Сложность
Отступления от стандартов
Сложность работы с иерархическими структурами
12.
Расширения SQL• InterBase/Firebird – краткое название языка –PSQL. Procedural SQL
• IBM DB2 – краткое название языка – SQL PL. SQL Procedural Language
(расширяет SQL/PSM); также в DB2 хранимые процедуры могут
писаться на обычных языках программирования: Си, Java и т. д.
• MS SQL Server/
• Sybase ASE – краткое название языка – Transact-SQL. Transact- SQL
• MySQL – краткое название языка – SQL/PSM. SQL/Persistent Stored
Module
• Oracle – краткое название языка – PL/SQL. Procedural Language/SQL
(основан на языке Ada)
• PostgreSQL – краткое название языка – PL/pgSQL. Procedural
Language/PostgreSQL Structured Query Language (очень похож на Oracle
PL/SQL)
13.
SQL в компьютерной сетиСервер базы данных выполняет SQL – запрос
и возвращает пользователю только ту
информацию из базы данных, которая
соответствует этому SQL - запросу
14.
Элементы языка SQLКлючевые слова
Имена
Константы
Типы данных
Встроенные функции
выражения
15.
Ключевые слова. Имена. Константы• Ключевые слова – это фиксированный набор
английских слов, которые определяют тип
запроса и необходимую информацию для
выполнения этого запроса
• Имена используются для обозначения
(присвоения имени) таблиц, столбцов в
таблице, а также владельцев таблиц (баз
данных)
• Константы служат для явного указания
величин – чисел, строк, дату и время – в
командах SQL
16.
Типы данных. Выражения• Типы данных служат для представления
информации в базах данных. В SQL определен
набор типов данных (char, varchar , integer,
smallint…)
• Выражения в SQL представляют собой имена,
константы, встроенные функции, связанные
между собой знаками арифметических
операций. В сложных выражениях для
изменения порядка вычислений применяются
круглые скобки.
17.
ТИП ДАННЫХТип данных определяет, какое значение
может содержать столбец: целочисленные
данные, символьные данные, денежные
данные, данные даты и времени, двоичные
строки и т. д.
18.
• Каждый столбец в таблице базы данныхдолжен иметь имя и тип данных.
• Разработчик SQL должен решить, какой тип
данных будет храниться внутри каждого
столбца при создании таблицы. Тип данных
является ориентиром для SQL, чтобы понять,
какой тип данных ожидается внутри каждого
столбца, а также определяет, как SQL будет
взаимодействовать с сохраненными данными.
19.
Типы данных SQLТип данных
Объявления
Символьный
CHAR | VARCHAR
Битовый
BIT | BIT VARYING
Точные числа
NUMERIC | DECIMAL | INTEGER |
SMALLINT
Округленные числа
FLOAT | REAL | DOUBLE
PRECISION
Дата/время
DATE | TIME | TIMESTAMP
Интервал
INTERVAL
20.
Отличие Varchar от charТипы данных CHAR и VARCHAR очень схожи
между собой, но различаются по способам их
хранения и извлечения. В столбце
типа CHAR длина поля постоянна и задается
при создании таблицы. ... Величины в
столбцах VARCHAR представляют собой
строки переменной длины.
21.
Операторы SQLОператоры SQL делятся на:
• операторы определения данных (Data
Definition Language, DDL)
• операторы манипуляции данными (Data
Manipulation Language, DML)
• операторы определения доступа к данным
(Data Control Language, DCL)
• операторы управления транзакциями
(Transaction Control Language, TCL)
22.
Операторы DDL• Create - СОЗДАТЬ
• Alter - ИЗМЕНИТЬ
• Drop - УДАЛИТЬ
23.
Объекты БДDataBase – база данных БД
Table - таблица
Trigger - триггер
Procedure - процедура
Generator - генератор
Exception – исключение
VIEW - просмотр
24.
Создание таблицCREATE TABLE имя_таблицы ( имя_столбца
тип_данных [NULL | NOT NULL]
[CONSTRAINTS],имя_столбца
тип_данных[NULL|NOT NULL] [CONSTRAINTS] ,
..... );
Ограничения
• На пустое значение
• На значение по умолчанию
• На определенные ранее параметры
25.
• NOT NULL Constraint — столбец не может иметь значение NULL.• DEFAULT Constraint — задает значение по умолчанию для столбца,
если оно не указано.
• UNIQUE Constraint — все значения в столбце должны быть разными.
• PRIMARY Key — уникальная идентификация каждой строки/записи в
таблице базы данных.
• FOREIGN Key — уникально идентифицирует строку/запись в любой
другой таблице базы данных.
• CHECK Constraint — ограничение CHECK обеспечивает, чтобы все
значения в столбце удовлетворяли определенным условиям.
• INDEX — используется для быстрого создания данных базы данных.
• Ограничения могут указываться при создании таблицы с помощью
оператора CREATE TABLE или вы можете использовать оператор ALTER
TABLE для создания ограничений уже после создания таблицы.
26.
Изменение таблиц• ALTER TABLE имя таблицы
ADD | DROP имя_столбца тип_данных [NULL |
NOT >NULL] [CONSTRAINTS] , ADD I DROP
имя_столбца тип_данных [NULL|NOT >NULL]
[CONSTRAINTS] ,
• Изменения не только структуры, но и
целостности
27.
Удаление ОбъектовDROP ТИП_ОБЪЕКТА имя_объекта;
ТИП_ОБЪЕКТА:
• Table - таблица
• Trigger - триггер
• Procedure - процедура
• Generator - генератор
• Exception – исключение
• VIEW – вьюшка
• INDEX – индекс
• Foreign key – внешний ключ
• Primary key – первичный ключ