Язык sql назначение особенности

Язык SQL – назначение, особенности, преимущества, существующие стандарты.

К достоинствам языка SQL относится наличие международных стандартов.

Начиная с 1986 года комитеты ISO (International Organization for Standardization) и ANSI (American National Standards Institute) приступили к созданию ряда стандартов языка SQL, которые впоследствии были приняты и получили следующие названия:

В стандарте SQL92 было определено три уровня соответствия:

Новый стандарт SQL99, при разработке именовавшийся как SQL3, стандартизировал объектные расширения языка SQL и некоторые процедурные расширения языка SQL. В стандарте SQL99 определено обязательное функциональное ядро и набор уровней расширенного соответствия.

Каждый уровень описывает набор возможностей языка SQL, которые должны поддерживать реализации СУБД, претендующие на данный уровень соответствия.

При этом объявлено, что стандарт SQL99 является открытым для всех последующих уровней расширенного соответствия, которые могут появиться в дальнейшем.

Структурированный язык запросов SQL реализуется в следующих формах:

Основные инструкции SQL.

В составе SQL могут быть выделены следующие группы инструкций:

— язык управления транзакциями.

Инструкции DDL предназначены для создания, изменения и удаления объектов базы данных. Их описание приведено в табл. 1.

Таблица 1. Инструкции языка определения данных (DDL)

Инструкция Назначение
CREATE Создание новых объектов (таблиц, полей, индексов и т. д.)
DROP Удаление объектов
ALTER Изменение объектов

CREATE TABLE Фирмы

АдресФирмы TEXT (40),

ALTER TABLE Фирмы ADD COLUMN Директор TEXT.(30);

Таблица 2. Инструкции языка манипулирования данными (DML)

Инструкция Назначение
SELECT Выполнение запроса к базе данных с целью отбора записей, удовлетворяющих заданным критериям
INSERT Добавление записей в таблицы базы данных
UPDATE Изменение значений отдельных записей и полей
DELETE Удаление записей из базы данных

Перечень основных предложений языка SQL приведен в табл. 3.

Инструкция Назначение
FROM Указывает имя таблицы, из которой должны быть отобраны данные
WHERE Специфицирует условия, которым должны удовлетворять выбираемые данные
GROUP BY Определяет, что выбираемые записи должны быть сгруппированы
HAVING Задает условие, которому должна удовлетворять каждая группа отобранных записей
ORDER BY Специфицирует порядок сортировки записей

Запросы в SQL.

Оператор SELECT позволяет формировать запрос к базе данных.

SELECT * FROM Фирмы;

SELECT Int([УстФонд]/500)*500 AS Диапазон,

Count(КодФирмы) AS ЧислоФирм

GROUP BY Int([УстФонд]/500)*500;

x BETWEEN y AND z эквивалентно выражению

Фраза GROUP BY оператора SELECT применяется для определения группы строк, над которыми выполняются функции агрегирования.

К функциям агрегирования относятся следующие функции языка SQL:

Фраза HAVING оператора SELECT определяет предикат аналогично фразе WHERE, но применяемый к строкам, полученным в результате выполнения функций агрегирования.

Фраза ORDER BY применяется для упорядочивания результирующего набора, которое выполняется в соответствии со значениями столбцов, указанных в списке после фразы ORDER BY.

При упорядочивании можно указать опцию ASC (по возрастанию) или DESC (по убыванию).

Транзакции в БД

Инструкции языка управления транзакциями приведены в табл. 4.

Таблица 4. Инструкции языка управления транзакциями

Инструкция Назначение
COMMIT Фиксация в базе данных всех изменений, сделанных текущей транзакцией
SAVEPOINT Установка точки сохранения (начала транзакции)
ROLLBACK Откат изменений, сделанных с момента начала транзакции

Следующая схема демонстрирует принцип использования транзакций.

Для установки этого режима используется оператор SET AUTOCOMMIT ON;

Дата добавления: 2018-11-26 ; просмотров: 676 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Назначение языка SQL

ЯЗЫК SQL: МАНИПУЛИРОВАНИЕ ДАННЫМИ

В ЭТОЙ ЛЕКЦИИ.

· Назначение языка Structure Query Language (SQL) и его особая роль при работе с базами данных.

· История возникновения и развития языка SQL.

· Запись операторов языка SQL.

· Выборка информации из баз данных с помощью оператора SELECT.

· построение операторов SQL, характеризующихся следующими особенностями:

· применение конструкции WHERE для выборки строк, удовлетворяющих различным условиям;

· сортировка результатов выполнения запроса с помощью конструкции ORDER BY;

· использование агрегирующих функций языка SQL;

· группирование выбранных данных с помощью конструкции GROUP BY;

· применение соединений таблиц;

· применение операций с множествами (UNION, INTERSECT, EXCEPT).

· Внесение изменений в базу данных с помощью операторов INSERT, UPDATE и DELETE.

Одним из языков, появившихся в результате разработки реляционной модели данных, является SQL, который в настоящее время получил очень широкое распространение и фактически превратился в стандартный язык реляционных баз данных. Стандарт на язык SQL был выпущен Национальным институтом стандартизации США (ANSI) в 1986 году, а в 1987 году Международная организация по стандартизации (ISO) приняла этот стандарт в качестве международного. В настоящее время язык SQL поддерживается сотнями СУБД различных типов, разработанных для самых разнообразных вычислительных платформ, начиная от персональных компьютеров и заканчивая мэйнфреймами.

В этой лекции используется определение языка SQL, данное в стандарте ISO.

Введение в язык SQL

В этой части рассмотрим назначение языка SQL, познакомимся с его историей и проанализируем причины, по которым он приобрел в настоящее время столь большое значение для приложений баз данных.

Назначение языка SQL

Любой язык, предназначенный для работы с базами данных, должен предоставлять пользователю следующие возможности:

· создавать базы данных и таблицы с полным описанием их структуры;

· выполнять основные операции манипулирования данными, такие как вставка, модификация и удаление данных из таблиц;

· выполнять простые и сложные запросы.

Кроме того, язык работы с базами данных должен решать все указанные выше задачи при минимальных усилиях со стороны пользователя, а структура и синтаксис его команд должны быть достаточно просты и доступны для изучения.

И, наконец, язык должен быть универсальным, т.е. отвечать некоторому признанному стандарту, что позволит использовать один и тот же синтаксис и структуру команд при переходе от одной СУБД, к другой. Современный стандарт языка SQL удовлетворяет практически всем этим требованиям.

SQL является примером языка преобразования данных, или же языка, предназначенного для работы с таблицами с целью преобразования входных данных к требуемому выходному виду. Язык SQL, который определен стандартом ISO, имеет два основных компонента:

· язык Data Definition Language (DDL), предназначенный для определения структур базы данных и управления доступом к данным;

· язык Data Manipulation Language (DML), предназначенный для выборки и обновления данных.

Достоинства языка SQL3, формальное определение которого принято в 1999 году:

· Язык SQL относительно прост в изучении.

· Это непроцедурный язык, поэтому в нем необходимо указывать, какая информация должна быть получена, а не как ее можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным.

· Как и большинство современных языков, SQL поддерживает свободный формат записи операторов. Это означает, что при вводе отдельные элементы операторов не связаны с фиксированными позициями на экране.

CREATE TABLE [Продажи] ([ID продаж] (S), [Наименование объекта] VARCHAR(15), [Стоимость] DECIMAL(7,2));

INSERT INTO [Объект] VALUES (‘SG16’, ‘Brown’, 8300);

SELECT [ID продаж], [Наименование объекта], [Стоимость];

WHERE [Стоимость] > 10000;

· Язык SQL может использоваться широким кругом пользователей, включая администраторов баз данных (АБД), руководящий персонал компании, прикладных программистов и множество других конечных пользователей разных категорий.

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

История языка SQL

История реляционной модели данных, и косвенно языка SQL, началась в 1970 году с публикации основополагающей статьи Е. Ф. Кодда, который в то время работал в исследовательской лаборатории корпорации IBM в Сан-Хосе. В 1974 году Д. Чемберлен, работавший в той же лаборатории, публикует определение языка, получившего название «Structured English Query Language», или SEQUEL. В 1976 году была выпущена переработанная версия этого языка, SEQUEL/2; впоследствии его название пришлось изменить на SQL по юридическим соображениям — аббревиатура SEQUEL уже использовалась филологами. Но до настоящего времени многие по-прежнему произносят аббревиатуру SQL как «сиквэл», хотя официально ее рекомендуется читать как «эс-кю-эл».

В 1976 году на базе языка SEQUEL/2 корпорация IBM выпустила прототип СУБД, имевший название «System R». Назначение этой пробной версии состояло в проверке осуществимости реализации реляционной модели. Помимо прочих положительных аспектов, важнейшим из результатов выполнения этого проекта можно считать разработку собственно языка SQL, Однако корни этого языка уходят в язык SQUARE (Specifying Queries as Rational Expressions), который являлся предшественником проекта System R. Язык SQUARE был разработан как исследовательский инструмент для реализации реляционной алгебры посредством фраз, составленных на английском языке.

В конце 1970-х годов, компанией, которая ныне превратилась в корпорацию Oracle, была выпущена СУБД Oracle. Пожалуй, это самая первая из коммерческих реализаций реляционной СУБД, построенной на использовании языка SQL.

Чуть позже появилась СУБД INGRES, использовавшая язык запросов QUEL.

Этот язык был более структурированным, чем SQL, но семантика его менее близка к обычному английскому языку. Позднее, когда SQL был принят как стандартный язык реляционных баз данных, СУБД INGRES была полностью переведена на его использование. В 1981 году корпорация IBM выпустила свою первую коммерческую реляционную СУБД под названием SQL/DS (для среды DOS/VSE). В 1982 году вышла в свет версия этой системы для среды VM/CMS, а в 1983 году — для среды MVS, но уже под названием DB2.

В 1982 году Национальный институт стандартизации США (ANSI) начал работу над языком Relation Database Language (RDL), руководствуясь концептуальными документами, полученными от корпорации IBM. В 1983 году к этой работе подключилась Международная организация по стандартизации (ISO). Совместные усилия обеих организаций увенчались выпуском стандарта языка SQL. От названия RDL в 1984 году отказались, а черновой проект языка был переработан с целью приближения к уже существующим реализациям языка SQL.

Исходный вариант стандарта, который был выпущен ISO в 1987 году, вызвал волну критических замечаний. В частности, Дейт, известный исследователь в этой области, указывал, что в стандарте опущены важнейшие функции, включая средства обеспечения ссылочной целостности, и некоторые реляционные операторы.

Кроме того, он отметил чрезмерную избыточность языка — один и тот же запрос можно было записать в нескольких различных вариантах. Большая часть критических замечаний была признана справедливой, и необходимые коррективы были внесены в стандарт еще до его публикации. Однако было решено, что важнее выпустить стандарт как можно быстрее, чтобы он смог исполнять роль общей основы, на которой и сам язык, и его реализации могли бы развиваться далее, чем дожидаться, пока будут определены и согласованы все функции, которые разные специалисты считают обязательными для подобного языка.

В 1989 году ISO опубликовала дополнение к стандарту, в котором определялись функции поддержки целостности данных. В 1992 году была выпущена первая, существенно пересмотренная версия стандарта ISO, которую иногда называют SQL2 или SQL-92. Хотя некоторые из функций были определены в этом стандарте впервые, многие из них уже были полностью или частично реализованы в одной или нескольких коммерческих реализациях языка SQL.

А следующая версия стандарта, которую принято называть SQL3, была выпущена только в 1999 году. Эта версия содержит дополнительные средства поддержки объектно-ориентированных функций управления данными.

Функции, которые добавляются к стандарту языка разработчиками коммерческих реализаций, принято называть расширениями. Например, в стандарте языка SQL определено шесть различных типов данных, которые могут храниться в базах данных. Во многих реализациях этот список дополняется разнообразными расширениями. Каждая из реализаций языка называется диалектом. Не существует двух совершенно идентичных диалектов, как в настоящее время не существует и ни одного диалекта, полностью соответствующего стандарту ISO.

Более того, поскольку разработчики баз данных вводят в системы все новые функциональные средства, они постоянно расширяют свои диалекты языка SQL, в результате чего отдельные диалекты все больше и больше отличаются друг от друга. Однако основное ядро языка SQL остается более или менее стандартизованным во всех реализациях.

Хотя исходные концепции языка SQL были разработаны корпорацией IBM, его важность очень скоро подтолкнула и других разработчиков к созданию собственных реализаций. В настоящее время на рынке доступны буквально сотни продуктов, построенных на использовании языка SQL, причем постоянно приходится слышать о выпуске все новых и новых версий,

Источник

Язык SQL – назначение, особенности, преимущества, существующие стандарты.

К достоинствам языка SQL относится наличие международных стандартов.

Начиная с 1986 года комитеты ISO (International Organization for Standardization) и ANSI (American National Standards Institute) приступили к созданию ряда стандартов языка SQL, которые впоследствии были приняты и получили следующие названия:

В стандарте SQL92 было определено три уровня соответствия:

Новый стандарт SQL99, при разработке именовавшийся как SQL3, стандартизировал объектные расширения языка SQL и некоторые процедурные расширения языка SQL. В стандарте SQL99 определено обязательное функциональное ядро и набор уровней расширенного соответствия.

Каждый уровень описывает набор возможностей языка SQL, которые должны поддерживать реализации СУБД, претендующие на данный уровень соответствия.

При этом объявлено, что стандарт SQL99 является открытым для всех последующих уровней расширенного соответствия, которые могут появиться в дальнейшем.

Структурированный язык запросов SQL реализуется в следующих формах:

Основные инструкции SQL.

В составе SQL могут быть выделены следующие группы инструкций:

— язык управления транзакциями.

Инструкции DDL предназначены для создания, изменения и удаления объектов базы данных. Их описание приведено в табл. 1.

Таблица 1. Инструкции языка определения данных (DDL)

Инструкция Назначение
CREATE Создание новых объектов (таблиц, полей, индексов и т. д.)
DROP Удаление объектов
ALTER Изменение объектов

CREATE TABLE Фирмы

АдресФирмы TEXT (40),

ALTER TABLE Фирмы ADD COLUMN Директор TEXT.(30);

Таблица 2. Инструкции языка манипулирования данными (DML)

Инструкция Назначение
SELECT Выполнение запроса к базе данных с целью отбора записей, удовлетворяющих заданным критериям
INSERT Добавление записей в таблицы базы данных
UPDATE Изменение значений отдельных записей и полей
DELETE Удаление записей из базы данных

Перечень основных предложений языка SQL приведен в табл. 3.

Инструкция Назначение
FROM Указывает имя таблицы, из которой должны быть отобраны данные
WHERE Специфицирует условия, которым должны удовлетворять выбираемые данные
GROUP BY Определяет, что выбираемые записи должны быть сгруппированы
HAVING Задает условие, которому должна удовлетворять каждая группа отобранных записей
ORDER BY Специфицирует порядок сортировки записей

Запросы в SQL.

Оператор SELECT позволяет формировать запрос к базе данных.

SELECT * FROM Фирмы;

SELECT Int([УстФонд]/500)*500 AS Диапазон,

Count(КодФирмы) AS ЧислоФирм

GROUP BY Int([УстФонд]/500)*500;

Кроме стандартных операторов сравнения, таких как =, <>, >, =, =y);

Фраза GROUP BY оператора SELECT применяется для определения группы строк, над которыми выполняются функции агрегирования.

К функциям агрегирования относятся следующие функции языка SQL:

Фраза HAVING оператора SELECT определяет предикат аналогично фразе WHERE, но применяемый к строкам, полученным в результате выполнения функций агрегирования.

Фраза ORDER BY применяется для упорядочивания результирующего набора, которое выполняется в соответствии со значениями столбцов, указанных в списке после фразы ORDER BY.

При упорядочивании можно указать опцию ASC (по возрастанию) или DESC (по убыванию).

Транзакции в БД

Инструкции языка управления транзакциями приведены в табл. 4.

Таблица 4. Инструкции языка управления транзакциями

Инструкция Назначение
COMMIT Фиксация в базе данных всех изменений, сделанных текущей транзакцией
SAVEPOINT Установка точки сохранения (начала транзакции)
ROLLBACK Откат изменений, сделанных с момента начала транзакции

Следующая схема демонстрирует принцип использования транзакций.

Для установки этого режима используется оператор SET AUTOCOMMIT ON;

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector