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

SQL(Structured Query Language – структурированный язык запросов) предназначен для обработки реляционных баз данных [14]. В различных СУБД используются два типа языка SQL:

1) интер активный SQL - ис пользуе тс я для выпол нения дейс твий не-посредственно над базами данных в о перативном режиме. Как правило, интер активному SQL сопутствует некоторая программа-сервер SQL. Наиболее популярны в настоящее время Oracle SQL-Server, MS-SQL Server, InterBase и некоторые другие;

2) встроенный SQL - состоит из команд SQL, включенных непосред-ственно в программы, которые написаны на другом языке программирова-ния. Например, в таких системах программирования, как Delphi, C++ Builder, VBasic, VC++ имеется встроенный SQL. В различных СУБД, например в MS Access, также имеются возможности использовать команды встроенного SQL.

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

– операторы определения объектов базы данных – операторы DDL (Data Definition Language). Примерами таких операторов будут:

CREATE SCHEMA– создать схему базы данных;

DROP SCHEMA– удалить схему базы данных;

CR EA TE TA BL E– создать таблицу ;

ALTER TABLE– изменить таблицу;

DROP TABLE– удалить таблицу ;

CREATE VIEW– создать представление;

DROP VIEW– удалить пр едставление.

– операторы манипулирования данными – операторы DML (Data Manipulation Language), например,

SELECT– выбрать строки из таблицы;

INSERT– добавить строки в таблицу;

UPDATE– изменить строки в таблице;

DELETE– удалить строки из таблицы;

COMMIT– зафиксировать изменения;

ROLLBACK– отменить внесенные изменения. – операторы защиты и управления доступом, та к и е как:

CREATE ASSERTION– создать ограничение;

DROP ASSERTION– отменить ограничение;

GRANT– предос тавить привилегии;

REVOKE– отменить привилегии.

Язык SQL оперирует иными терминами, чем это принято в реляционной теории. Так, вместо «отношений» используется термин «таблицы», вместо «кортежей» – «строки», вместо «атрибутов» – «колонки» или «столбцы». SQL так ж е имеет специальные термины, среди которых ис-пользуются та к ие слова, как «запрос», «предложение», «предика т».

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

FROMПроходческие_комбайны;

WHEREСтрана_изготовитель = «Украина».

«FROM» является ключевым словом предложения FROM, а «Про-ходческие_комбайны» – аргументом предложения. Аналог ично «Стра-на_из г о то в и тел ь = «Украина» – аргумент предложения WHERE. Таким об-разом, приведенные выше операторы являются ключевыми словами и могут ис пользоватьс я для построения пр едложений.

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

• предложен ия определения данных: определение баз данных, а так ж е определение и уничтожение таблиц и индексов;

• запросы на выбор данных : предложе ние SELECT;

• предложен ия модификации данных: добавление, удаление и изменение;

• предложения управления да нным и: предос тавле ние и отмена привилег ий на доступ к данным, управление транзакциям и и другие.

Кроме того , он предоставляет возможность выполнять в этих пред-ложениях:

• арифметические вычисления (включая разнообразные функ-циональные преобразования), обработку текстовых строк и выполнение операций сравнения значений арифме тических выражений и текстов ;

• упорядочение строк и (или) столбцов при выводе содержимого таблиц на печать или экран дисплея;

• создание предс тавлений (виртуальных таблиц), позволяющих пользователям иметь свой взгляд на данные без увеличения их объема в базе данных;

• запоминание выводимого по запросу содержимого таблицы, нескольких таблицил и представления в другой таблице (реляцио нная опе-рация прис ваивания);

• агрегирование данных: группирование данных и пр имене ние к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов и других.