- •Язык реляционных баз данных sql
- •Реляционная алгебра Кодда
- •Замкнутость реляционной алгебры
- •Отношения, совместимые по типу
- •Оператор переименования атрибутов
- •Теоретико-множественные операторы Объединение
- •Пересечение
- •Вычитание
- •Декартово произведение
- •Специальные реляционные операторы Выборка (ограничение, селекция)
- •Проекция
- •Соединение
- •Общая операция соединения
- •Тэта-соединение
- •Экви-соединение
- •Естественное соединение
- •Деление
- •Примеры использования реляционных операторов
Язык реляционных баз данных sql
SQL (англ. Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается реляционной алгебре Кодда и реляционном исчислении.
SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования.
Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:
создание в базе данных новой таблицы;
добавление в таблицу новых записей;
изменение записей;
удаление записей;
выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
изменение структур таблиц.
Со временем, SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.
При всех своих изменениях, SQL остаётся единственным механизмом связи между прикладным программным обеспечением и базой данных. В то же время, современные СУБД, а, также, информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов.
Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:
запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
запросы на получение данных;
запросы на добавление новых данных (записей)
запросы на удаление данных;
обращения к СУБД.
Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на:
запросы, оперирующие самими таблицами (создание и изменение таблиц);
запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.
Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием
типа хранимых в каждом поле значений;
связей между таблицами (задание первичных и вторичных ключей);
информации, необходимой для построения индексов.
Запросы первого типа, в свою очередь, делятся на запросы, предназначенные для создания в базе данных новых таблиц, и на запросы, предназначенные для изменения уже существующих таблиц.
Для создания объектов базы данных и таблиц, в частности, используется оператор CREATE. Для создания таблицы используется следующая форма данного оператора:
CREATE TABLE <table name> (
<table element>,
<table element>,
...
);
Как видно из описания, в определение таблицы входит определение ее элементов. Элементом таблицы может быть либо столбец таблицы, либо ограничение таблицы.
Определение столбца таблицы состоит из следующих элементов:
<column name> <data type> [<default clause>] [<column constraint>...]
Обязательной частью определения столбца является имя столбца и его тип данных. Определение столбца может содержать два необязательных раздела: раздел значения столбца по умолчанию и раздел ограничений целостности столбца. В разделе значения по умолчанию указывается значение, которое должно быть помещено с строку, заносимую в данную таблицу, если значение данного столбца явно не указано. Значение по умолчанию может быть указано в виде литеральной константы с типом, соответствующим типу столбца. Если значение столбца по умолчанию не специфицировано, и в разделе ограничений целостности столбца указано NOT NULL, то попытка занести в таблицу строку с неспецифицированным значением данного столбца приведет к ошибке.
Среди ограничений столбца выделяются следующие:
PRIMARY KEY – ограничение первичного ключа. Указывает, что данный столбец является первичным ключом таблицы
NOT NULL – указывает на то, что значение в данном столбце всегда должно быть определено
FOREIGN KEY REFERENCES имя таблицы (список столбцов) – указывает на то, что данный столбец является внешним ключом
UNIQUE – указывает на то, что значение данного столбца каждой строки уникально среди всех строк таблицы.
Ограничения таблицы аналогичны ограничениям столбцов с той лишь разницей, что ограничения таблицы можно задавать на группы столбцов. К ограничениям таблицы относят:
PRIMARY KEY (список столбцов)
FOREIGN KEY (список столбцов в текущей таблице) REFERENCES имя ссылочной таблицы (список столбцов в ссылочной таблице)
UNIQUE (список столбцов)
Пример определения таблицы:
CREATE TABLE Student (
Code INTEGER PRIMARY KEY,
Name CHAR (30) NOT NULL ,
Address CHAR (50),
Mark DECIMAL
);
После того, как таблица была создана, в нее можно внести изменения по средствам оператора ALTER TABLE. В частности данной командой можно добавить ограничения в созданную таблицу. Для этого используется следующая форма данной команды: ALTER TABLE ADD CONSTRAINT определение ограничения.
Удаление объектов базы данных производится при помощи оператора DROP. Для удаления таблицы используется следующая его форма: DROP TABLE имя таблицы.
Запросы второго типа оперируют со строками, и их можно разделить на запросы следующего вида:
вставка новой строки;
изменение значений полей строки или набора строк;
удаление строки или набора строк.
Самый главный вид запроса — это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:
просмотреть полученный набор;
изменить все записи набора;
удалить все записи набора.
Таким образом, использование SQL сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.