Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал для лекции.docx
Скачиваний:
5
Добавлен:
24.11.2019
Размер:
118.65 Кб
Скачать

Язык реляционных баз данных sql

SQL (англ. Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается реляционной алгебре Кодда и реляционном исчислении.

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

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

  • создание в базе данных новой таблицы;

  • добавление в таблицу новых записей;

  • изменение записей;

  • удаление записей;

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

  • изменение структур таблиц.

Со временем, SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.

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

Каждое предложение SQL — это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

  • запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

  • запросы на получение данных;

  • запросы на добавление новых данных (записей)

  • запросы на удаление данных;

  • обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на:

  1. запросы, оперирующие самими таблицами (создание и изменение таблиц);

  2. запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием

  • типа хранимых в каждом поле значений;

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

  • информации, необходимой для построения индексов.

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

Для создания объектов базы данных и таблиц, в частности, используется оператор 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 сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.