Чтение онлайн

на главную

Жанры

Информационные системы

Петров Владимир Николаевич

Шрифт:

• QBE (Query By Example – запрос по образцу);

• QUEL (Query Language – язык запросов).

Сейчас наибольшее распространение получил язык SQL, который является единственным языком реляционных баз данных, принятым в качестве стандарта ANSI.

Примечание.

Хотя SQL и называется языком запросов, помимо средств построения запросов он включает в себя и все необходимые средства управления базами данных.

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

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

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

данных SQL был разработан в середине 70-х годов в рамках исследовательского проекта экспериментальной реляционной СУБД System R компании IBM. Данный проект включал в себя разработку реляционной системы управления базами данных и языка SEQUEL (Structured English Query Language – английский язык структурированных запросов). Исходное название только частично отражало суть этого языка. Несмотря на то, что язык был ориентирован главным образом на удобную и понятную англоязычным пользователям формулировку запросов к реляционной базе данных, он уже являлся полноценным языком реляционной базы данных, содержащим, помимо операторов формулирования запросов и манипулирования базой данных, средства для:

• определения схемы базы данных и манипулирования ею;

• определения ограничений целостности и триггеров;

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

• определения структур физического уровня, поддерживающих эффективное выполнение запросов;

• авторизации доступа к отношениям и их полям;

• поддержания точек сохранения и откатов транзакций.

В конце 70-х годов модифицированный вариант языка SEQUEL, получивший название SQL, был выпущен корпорацией Oracle в качестве языка коммерческой системы управления базами данных. В 1983 г. компания IBM выпустила SQL в качестве языка управления СУБД DB2.

Американский национальный институт стандартов (ANSI) принял язык SQL в качестве стандарта в 1986 г. С тех пор этот стандарт пересматривался два раза – в 1989 г. были внесены некоторые незначительные изменения, а в 1992 г. стандарт SQL был довольно существенно расширен, и в настоящее время известен под названием ANSI SQL-92, или SQL/92.

Примечание.

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

Типы команд SQL

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

• команды языка DDL (Data Definition Language – язык определения данных) используются для создания и изменения структуры объектов базы данных (например, для создания и удаления таблиц);

• команды языка DML (Data Manipulation Language – язык манипулирования данными) служат для манипулирования информацией, содержащейся в объектах базы данных;

• команды языка DCL (Data Control Language – язык управления данными) предназначены для управления доступом к информации, хранящейся в базе данных;

• команды языка DQL (Data Query Language – язык запросов к данным), используемые наиболее

часто, предназначены для формирования запросов к базе данных (запрос – это обращение к базе данных для получения соответствующей информации);

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

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

Примечание.

Язык запросов к данным (DQL) будет рассматриваться в главе 11 на примере использования в приложениях Delphi.

Типы данных SQL/92

Типы данных, используемые в стандартном языке SQL, можно подразделить на следующие группы:

• строковые типы;

• числовые типы;

• типы для представления даты и времени.

Рассмотрим эти типы данных.

Строковые типы

В SQL/92 определены два строковых типа:

• символьные строки фиксированной длины;

• символьные строки переменной длины.

Символьные строки фиксированной длины

Данные, хранящиеся в виде символьных строк фиксированной длины, всегда занимают один и тот же объем памяти, определяемый при объявлении поля, независимо от реального размера строки, занесенной в поле. Объявление строки фиксированной длины согласно ANSI SQL-92 имеет вид:

CHARACTER (n)

Здесь п – длина строки, определяющая размер поля, к которому это объявление относится.

При использовании строк фиксированной длины пустые места обычно заполняются пробелами. Например, если размер поля задан равным 10, а в него введена строка, состоящая из 3 символов, то оставшиеся 7 символов заполняются пробелами.

Примечание.

Не следует использовать тип CHARACTER для полей, предназначенных для хранения длинных строк, длина которых может сильно варьироваться – это приведет к неоправданному расходу доступной внешней памяти (дискового пространства).

Символьные строки переменной длины

Длина строк переменной длины не является постоянной для всех данных, а зависит от реального размера строки, хранящейся в поле таблицы базы данных. Объявление строки переменной длины имеет вид:

VARCHAR (п)

Здесь п – число, определяющее максимально возможную длину строки.

В отличие от типа CHARACTER, тип VARCHAR обеспечивает более экономное расходование дискового пространства. Независимо от того, какой размер строки указан в объявлении, поле будет занимать столько места, сколько необходимо для хранения занесенной в него информации. Например, если объявлено поле VARCHAR(IO), и в него занесена строка длиной 3 символа, то для хранения этой строки будет использовано только три байта, а не 10, как в случае строки фиксированной длины.

Числовые типы

Числовые типы подразделяются на:

• целочисленные типы;

• вещественные типы с фиксированной точкой;

• вещественные типы с плавающей точкой;

• двоичные строки фиксированной и переменной длины.

Целочисленные типы

Стандартом ANSI SQL-92 устанавливаются два целочисленных типа:

• INTEGER – целое число со знаком размером 4 байта, может представлять числа в диапазоне от -2 147 483 648 до 2 147 483 647;

• SMALLINT – короткое целое число со знаком размером 2 байта, может представлять целые числа в диапазоне от -32 768 до 32 767.

Поделиться:
Популярные книги

Последний Паладин. Том 3

Саваровский Роман
3. Путь Паладина
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 3

Последний попаданец 5

Зубов Константин
5. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 5

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

6 Секретов мисс Недотроги

Суббота Светлана
2. Мисс Недотрога
Любовные романы:
любовно-фантастические романы
эро литература
7.34
рейтинг книги
6 Секретов мисс Недотроги

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Курсант: Назад в СССР 13

Дамиров Рафаэль
13. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 13

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Купидон с топором

Юнина Наталья
Любовные романы:
современные любовные романы
7.67
рейтинг книги
Купидон с топором

Виконт. Книга 3. Знамена Легиона

Юллем Евгений
3. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Виконт. Книга 3. Знамена Легиона

Попаданка в деле, или Ваш любимый доктор - 2

Марей Соня
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Титан империи 2

Артемов Александр Александрович
2. Титан Империи
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Титан империи 2

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5