Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гос.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
675.06 Кб
Скачать
  1. Общая характеристика sql. Стандарты sql. Реализации sql в современных субд. Sql-серверы. Создание доменов, таблиц, индексов.

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

Кортеж – строка таблицы (отношения).

В SQL определены два подмножества языка:

  1. SQL-DDL (Data Definition Language) - язык определения структур и ограничений целостности баз данных. Сюда относятся команды создания и удаления баз данных; создания, изменения и удаления таблиц; управления пользователями и т.д.

  2. SQL-DML (Data Manipulation Language) - язык манипулирования данными: добавление, изменение, удаление и извлечение данных, управления транзакциями

В 1986 создан стандарт SQL-86. Со временем к стандарту накопилось несколько замечаний и пожеланий, особенно с точки зрения обеспечения целостности и корректности данных, в результате чего в 1989 году данный стандарт был расширен, получив название SQL-89. В частности, в него была добавлена концепция первичного и внешнего ключей. Эти 2 стандарта неофициально называют SQL1.

Стандарты:

SQL-86, SQL-89 (SQL1)

SQL92 (SQL2)

SQL:1999 (SQL3) - Добавлена поддержка регулярных выражений, рекурсивных запросов, триггеров;

SQL:2003 - Введены расширения для работы с XML-данными, генераторы последовательностей ;

SQL:2006 - расширена функциональность работы с XML-данными;

SQL:2008 - Улучшены возможностии устранены некоторые неоднозначности предыдущего стандарта;

Под реализацией языка SQL понимается программный продукт SQL соответствующего производителя. Для расширения функциональных возможностей многие разработчики, придерживающиеся принятых стандартов, добавляют к стандартному языку SQL различные расширения. Поскольку SQL не является «привычным» языком программирования (то есть не предоставляет средств для построения циклов, ветвлений и т. д.), вводимые разными производителями расширения касались в первую очередь процедурных расширений. Это хранимые процедуры (stored procedures) и процедурные языки-«надстройки». Практически в каждой СУБД применяется свой процедурный язык. Популярные реализации: MS SQL-server (расширение Transact-SQL), MySQL, Postgre-SQL, SQLite, Oracle.

Создание доменов:

Домен (область допустимых значений столбца) определяет пользовательский тип данных и позволяет дополнительно указать значение по умолчанию и ограничения на значения.

CREATE DOMAIN имя_домена тип_домена или

CREATE DOMAIN имя_домена AS тип_домена например

CREATE DOMAIN sotrudnik_name VARCHAR(45)

Создание таблиц:

CREATE TABLE My_table(

field1 INT,

field2 VARCHAR(50),

field3 DATE NOT NULL,

PRIMARY KEY (my_field1, my_field2)

);

- Создание таблицы и имя таблицы

- поле1 и тип поля

- поле2 и тип поля

- поле3 и тип поля

- задание ключа

Создание индексов:

Индекс (англ. index) — объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска.

Табличный индекс можно создать либо с помощью оператора creat index (создание индекса), либо указав ограничение целостности в виде уникального (unique) или главного (primary) ключа в операторе создания таблицы create table. Однако, второй способ имеет следующие ограничения:

  1. Не позволяет создавать индексы по неуникальным полям;

  2. Не позволяет воспользоваться опциями, предусмотренными в команде create index, уточняющими способ использования индекса;

  3. Эти индексы можно удалить только вместе с ключами оператором alter table.

Если эти ограничения являются обременительными для приложения, с которым работает пользователь, то индексы следует создавать оператором creat index. В противном случае нужно использовать уникальный или главный ключ, поскольку это самый простой способ связывания индекса с таблицей.

Синтаксис:

CREATE INDEX index_name

ON table_name (column_name)