Сделай Сам Свою Работу на 5

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





История развития SQL

SQL (Structured Query Language) – Структурированный Язык Запросов - стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, и его прототип был
разработан в конце 70-х годов в компании IBM Research. Он был реализован в первом прототипе реляционной СУБД фирмы IBM System R. В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом «де-факто» для языков манипулирования данными в реляционных СУБД.

Первый международный стандарт языка SQL был принят в 1989 г. (далее мыбудем называть его SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO [5], и подавляющее большинство доступных на рынке СУБД поддерживают этот стандарт полностью. Однако развитие информационных технологий, связанных с базами данных,
и необходимость реализации переносимых приложений потребовали
в скором времени доработки и расширения первого стандарта SQL.

В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшим будем называть SQL/92 или SQL2. И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.



В 1999 году появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 соответствует серьезным качественным преобразованиям. В SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов данных, которые в большей степени соответствуют объектной ориентации. Наконец, добавлен раздел, который вводит стандарты на события и триггеры, не затрагивавшиеся ранее в стандартах, хотя давно уже широко использовавшиеся в коммерческих СУБД. В стандарте определены возможности четкой спецификации триггеров как совокупности события и действия. В качестве действия могут выступать не только последовательности операторов SQL, но и операторы управления ходом выполнения программы. В рамках управления транзакциями произошел возврат к старой модели транзакций,
допускающей точки сохранения (savepoints), и возможность указания в операторе отката ROLLBACK точек возврата, что позволит откатывать транзакцию не в начало, а в промежуточную ранее сохраненную точку. Такое решение повышает гибкость реализации сложных алгоритмов обработки информации.



SQL нельзя в полной мере отнести к традиционным языкам прог­раммирования, он не содержит традиционных операторов, управляющих ходом выполнения программы, операторов описания типов и многих других языковых конструкций, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык, например C++, PL, COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.

 

Структура SQL

В отличие от реляционной алгебры, где были представлены только операции запросов к БД, SQL является полным языком, в нем присутствуют не только операции запросов, но и операторы, соответствующие DDL - Data Definition Language - языку описания данных. Кроме того, язык
содержит операторы, предназначенные для управления базой данных.

Рис. 6.1. Общая структура языка SQL

Язык DDL. Создание, удаление и изменение структур
данных

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



 

Типы данных

Тип данных – это способ кодирования информации в двоичную форму и способ декодирования этой информации в форму, понятную человеку. Тип данных – не только форма информации, но множество операций по работе над этой информацией. Так, если тип данных – число, то базовыми операциями над этой информацией будут операции сложения, вычитания, умножения и деления, если тип данных – строка текста, то очевидно это будут операции соединения и разъединения строк, поиска текста в строке и т.п.

Можно выделить три основные группы типов данных:

- строковые (текстовые);

- числовые;

- дата/время.

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

CHARACTER(n) или CHAR(n) – символьные строки постоянной длины в n символов. При задании данного типа под каждое значение всег­да отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.

NUMERIC – вещественные числа двойной точности.

DECIMAL[(n,m)] – точные числа, здесь n – общее количество цифр
в числе, m – количество цифр слева от десятичной точки. Отличается от NUMERIC способом хранения информации: на каждую цифру отводится один байт. Арифметические операции над выражениями в этом случае производятся быстрее.

DEC[(n,m)] - то же, что и DECIMAL[(n,m)].

INTEGER или INT – целые числа.

FLOAT[(n)] – числа большой точности, хранимые в форме с плавающей точкой. Здесь n – число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.

VARCHAR(n) – строки символов переменной длины. NCHAR(N) – строки локализованных символов постоянной длины.

DATE – календарная дата.

ТIМЕSТАМР(точность) – дата и время.

Основные операторы DDL

Основные операторы языка DDL представлены в следующей таблице:

 

Оператор Назначение Действие
CREATE TABLE Создать таблицу Создает новую таблицу в БД
DROP TABLE Удалить таблицу Удаляет таблицу из БД
ALTER TABLE Изменить таблицу Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы
CREATE VIEW Создать представление Создает виртуальную таблицу, соответствующую некоторому SQL-запросу
ALTER VIEW Изменить представление Изменяет ранее созданное представление
DROP VIEW Удалить представление Удаляет ранее созданное представление
CREATE INDEX Создать индекс Создает индекс для некоторой таблицы для обеспечения быс­трого доступа по атрибутам, входящим в индекс
DROP INDEX Удалить индекс Удаляет ранее созданный индекс

 

Как видно из таблицы, операторы языка DDL используются для создания, модификации и удаления структур данных. Рассмотрим основные из них более подробно.

 

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

Как известно, таблица базы данных представляет собой основную структуру данных, используемую в реляционных базах данных. Для создания таблицы базы данных в любой СУБД[1] необходимо отправить в СУБД специальную команду на языке SQL. Для создания таблиц используется оператор[2] CREATE TABLE.

Упрощенный синтаксис оператора выглядит следующим образом[3]:

CREATE TABLE <имя таблицы> (<список полей>);

 

где <имя таблицы> – последовательность букв и цифр латинского или русского алфавита[4], обозначающая будущую таблицу;

<список полей> - наименования, через запятую столбцов таблицы с указанием типов данных, которые буду храниться в этих полях, а также других признаков, о которых мы будем говорит позднее.

 

ВНИМАНИЕ! Имена таблиц и полей всегда пишутся без пробелов. В случае необходимости смыслового разделения по словам в наименовании таблицы или поля необходимо вместо пробела использовать символ подчеркивания.

 

Более детальное представление синтаксиса оператора CREATE
TABLE выглядит следующим образом:

 

CREATE TABLE <имя таблицы>

(<Имя поля1> <Тип данных1> <Ключевые слова-признаки1>,

<Имя поля2> <Тип данных2> <Ключевые слова-признаки2>,

<Имя поля3> <Тип данных3> <Ключевые слова-признаки3>,

<Имя поляN> <Тип данныхN> <Ключевые слова-признакиN>);

 

Пример: создать таблицу «Продажи», состоящую из следующих полей: «ДатаОперации», «НомерПродажи», «НаименованиеКлиента», «НаименованиеТовара», «Количество», «Цена», «Сумма». Для этого необходимо выполнить следующий запрос:

CREATE TABLE Продажи

(

ДатаОперации DATETIME NOT NULL,

НомерПродажиINTEGER NOT NULL,

НаименованиеКлиентаVARCHAR(50),

НаименованиеТовара VARCHAR(30),

Количество NUMERIC,

Цена NUMERIC,

Сумма NUMERIC,

PRIMARY KEY (НомерПродажи)

);

В первых двух строках примера используются ключевые слова-признаки, позволяющие создать дополнительные свойства для полей таблицы. Так NOT NULL означает, что поле не может быть пустым (должно обязательно содержать какое-то значение). Более подробно о ключевых словах-признаках можно узнать в руководстве по языку SQL [8].
PRIMARY KEY– задает поля, входящие в первичный ключ таблицы.

Оператор CREATE INDEXиспользуется для создания индекса – специальной структуры данных, увеличивающей скорость поиска информации по заранее определенным полям.

 

CREATE INDEX<Наименование индекса> ON <Наименование таблицы> (<список полей для индексирования>);

 

Пример:

CREATE INDEXИндексДатаОперации ONПродажи (ДатаОперации);

В результате выполнения этого оператора СУБД создаст специальную структуру данных (индекс) для ускорения процесса поиска данных по выбранному полю (полям). Подробнее об индексах, ограничениях целостности будет рассказано в отдельном занятии.

Для удаления таблицы используется оператор DROP TABLE с указанием имени таблицы.

 

Пример: удалить таблицу «Продажи».

 

DROP TABLEПродажи

Язык DML. Добавление, редактирование и удаление
данных в таблицах базы данных

После создание таблицы базы данных оператором CREATE TABLE можно приступить к операциям ввода информации в базу данных. Добавлять, редактировать и удалять информацию из базы данных возможно
с помощью специальных операторов языка DML (Data Manipulation Language).

 

Оператор Назначение Действие
INSERT Вставить строку Ввод информации в базу данных
UPDATE Обновить строку (значение столбца) Изменение информации в базе данных
DELETE Удалить строку (строки) Удаление информации из базы данных

 

Рассмотрим каждый из этих операторов более подробно.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.