104.64K
Category: databasedatabase

Язык SQL

1.

Язык SQL

2.

Основные определения
• 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 – первичный ключ
English     Русский Rules