94.99K
Категория: Базы данныхБазы данных

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. TransactSQL
• 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.

Операторы SQL
Операторы SQL делятся на:
• операторы определения данных (Data
Definition Language, DDL)
• операторы манипуляции данными (Data
Manipulation Language, DML)
• операторы определения доступа к данным
(Data Control Language, DCL)
• операторы управления транзакциями
(Transaction Control Language, TCL)

21.

Операторы языка SQL
Вид
Название
Назначение
DDL
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE INDEX
DROP INDEX
CREATE VIEW
DROP VIEW
GRAND
REVOKE
создание таблицы
удаление таблицы
изменение структуры таблицы
создание индекса
удаление индекса
создание представления
удаление представления
назначение привилегий
удаление привилегий
DML
SELECT
UPDATE
INSERT
DELETE
выборка записей
изменение записей
вставка новых записей
удаление записей
English     Русский Правила