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

на главную - закладки

Жанры

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

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

Шрифт:

• 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.

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

Толян и его команда

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

Эволюционер из трущоб. Том 3

Панарин Антон
3. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
6.00
рейтинг книги
Эволюционер из трущоб. Том 3

Боярышня Дуняша 2

Меллер Юлия Викторовна
2. Боярышня
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Боярышня Дуняша 2

Черный Маг Императора 9

Герда Александр
9. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 9

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Идеальный мир для Лекаря

Сапфир Олег
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря

Тайны затерянных звезд. Том 1

Лекс Эл
1. Тайны затерянных звезд
Фантастика:
боевая фантастика
космическая фантастика
фэнтези
5.00
рейтинг книги
Тайны затерянных звезд. Том 1

Кодекс Крови. Книга VIII

Борзых М.
8. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VIII

Имперец. Земли Итреи

Игнатов Михаил Павлович
11. Путь
Фантастика:
героическая фантастика
боевая фантастика
5.25
рейтинг книги
Имперец. Земли Итреи

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

ИФТФ им. Галушкевича. Трилогия

Кьяза
Фантастика:
фэнтези
юмористическая фантастика
5.00
рейтинг книги
ИФТФ им. Галушкевича. Трилогия

Сын Тишайшего 2

Яманов Александр
2. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Сын Тишайшего 2