Международный стандарт 1992 г . (SQL2) Появились новые команды, которые: Alter table, Drop table — позволяли манипулировать таблицами. Users, Tables, Views, Columns, Domains, Table_privileges, Table_constraints

Языки манипулирования данными (ЯМД)

До появления реляционных БД существовали языки манипулирования данными, которые были ориентированны на операции с данными, представленными в виде логических записей файла (списки).
Это требовало от пользователей детального знания об организации хранения данных на магнитных носителях.
Кроме этого процедуры поиска и выборки данных выполнялись очень медленно.
С появлением реляционных БД стали развиваться и языки управления БД.

Первый язык предложил Кодд назывался Alpha. Он был основан на реляционном исчислении.

Затем появились другие реляционные языки.
Делятся на два класса:
Алгебраические языки - запросы выполняются с помощью спец. операций (JOIN - соединить, INTERSECT - пересечь, SUBTRACT - вычесть и т.д.).
Языки исчисления предикатов – эти языки представляют набор правил, с помощью которых записываются новые выражения для определения новых таблиц из заданной совокупности уже существующих таблиц.

В основном разработку ЯМД вели:
IBM разработали языки ISBL, SQL, QBE
Университеты США разработали PIQUE, QUEL

QBE (Query-By-Example - запрос по образцу)
SQL (Structured Query Language - структурированный язык запросов)

ANSI (Американским Национальным Институтом Стандартов)
ISO (МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ).

Победил язык SQL. Он стал стандартом для систем управления БД.
Большинство коммерческих СУБД расширяют стандарт SQL, расширяя стандарты операторов.
Мы будем изучать стандарт с небольшим расширением SQL.

Стандарты языка SQL.

Международный стандарт 1989 г . (SQL1)
Носил общий характер. В нем не были выделены разделы команд.

Международный стандарт 1992 г . (SQL2)
Появились новые команды, которые:
Alter table, Drop table - позволяли манипулировать таблицами.
Users, Tables, Views, Columns, Domains, Table_privileges, Table_constraints - Команды манипулирования структурами таблиц и схемой БД.
Create domain имя char(25) . . . - Команды управления доменами
Date, Time, Datetime, . . . Появились новые типы данных
Управление транзакциями и сессиями
Подключение к БД
Развитие динамического SQL

Стандарт 1999г. (SQL3)
Механизм триггеров
Абстрактные типы данных
Расширение модели транзакций (контрольные точки, многозвенные транзакций)

Стандарт 2003г. SQL:2003
Использование подпрограмм и типов SQL в языке программирования Java
XML-документы в среде SQL

Язык SQL может быть использован двумя способами:
Операторы языка SQL встраиваются в язык программирования (вложенный);
Выполнение команды SQL в интерактивном режиме (интерактивный).

Все команды SQL сгруппированы на подразделы:

DDL (Data Definition Language)
Создает объекты БД.

Оператор
Смысл

CREATE TABLE
Создать таблицу

DROP TABLE
Удалить таблицу

ALTER TABLE
Изменить таблицу

CREATE VIEW
Создать представление

ALTER VIEW
Изменить представление

DROP VIEW
Удалить представление

CREATE INDEX
Создать индекс

DROP INDEX
Удалить индекс


DML (Data Manipulation Language)
Команды SQL, которые определяют какие значения представлены в таблице в любой момент времени.

Оператор
Смысл

DELETE
Удалить строки

INSERT
Вставить строку

UPDATE
Обновить строку


DQL (Data Query Language)
Язык запросов. Заменяет все операторы реляционной алгебра. Позволяет сформировать результирующую таблицу в соответствии с запросом.

Оператор
Смысл

SELECT
Выбрать строки


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

Оператор
Смысл

COMMIT
Завершить транзакцию

ROLLBACK
Откатить транзакцию

SAVEPOINT
Сохранить промежуточную точку выполнения транзакции


Средства администрирования данными.
Управления правами доступа.

Оператор
Смысл

ALTER DATABASE
Изменить БД

ALTER DBAREA
Изменить область хранения БД

ALTER PASSWORD
Изменить пароль

CREATE DATABASE
Создать БД

CREATE DBAREA
Создать область хранения

DROP DATABASE
Удалить БД

DROP DBAREA
Удалить область хранения БД

GRANT
Предоставить права

REVOKE
Лишить прав


Программный SQL.
Входит во вложенную форму SQL (до этого были команды интерактивные).

Оператор
Смысл

DECLARE
Определяет курсор для запроса

OPEN
Открыть курсор

FETCH
Считать строку из множества строк, определенных курсором

CLOSE
Закрыть курсор

PREPARE
Подготовить оператор SQL к динамическому выполнению

EXECUTE
Выполнить оператор SQL , ранее подготовленный к динамическому выполнению


Типы данных, используемых в БД MySQL

Целые числа
префикс_INT [UNSIGNED]
UNSIGNED задает поле для хранения беззнаковых чисел (больших или равных 0).

TINYINT - Может хранить числа от -128 до 127
SMALLINT - Диапазон от -32 768 до 32 767
MEDIUMINT - Диапазон от -8 388 608 до 8 388 607
INT - Диапазон от -2 147 483 648 до 2 147 483 647
BIGINT - Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Дробные числа
Имя_Типа[(length, decimals)] [UNSIGNED]
В () необязательный параметр.
length - количество знакомест (ширина поля), в которых будет размещено дробное число при его передаче;
decimals - количество знаков после десятичной точки, которые будут учитываться;
UNSIGNED - задает беззнаковые числа.

FLOAT - число с плавающей точкой небольшой точности.
DOUBLE - число с плавающей точкой двойной точности.
REAL - синоним для DOUBLE.
DECIMAL - дробное число, хранящееся в виде строки.
NUMERIC - синоним для DECIMAL.
Строки
При поиске по текстовым полям обычно не учитывается регистр. Т.е. строки "Вася" и "ВАСЯ" считаются одинаковыми.

length - от 1 до 255.

VARCHAR (length) [BINARY]

BINARY - строка при запросе SELECT будет сравниваться с учетом регистра.

VARCHAR - может хранить не более 255 символов.
TINYTEXT - может хранить не более 255 символов.
TEXT - может хранить не более 65 535 символов.
MEDIUMTEXT - может хранить не более 16 777 215 символов.
LONGTEXT - может хранить не более 4 294 967 295 символов.

Бинарные данные
Никогда не учитывается регистр.
Различают несколько типов:
TINYBLOB - может хранить не более 255 символов.
BLOB - может хранить не более 65 535 символов.
MEDIUMBLOB - может хранить не более 16 777 215 символов.
LONGBLOB - может хранить не более 4 294 967 295 символов.
BLOD - данные не перекодируются автоматически.

Дата и время
DATE - дата в формате ГГГГ-ММ-ДД
TIME - время в формате ЧЧ:ММ:СС
DATETIME - дата и время в формате
ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP - дата и время в формате ГГГГММДДЧЧММСС.

Константы
Целочисленная
4 -95 +364 0

Десятичная
4,0 -95.7 +364.05 0.007

С плавающей точкой
4ЕЗ -95.7Е46 +364Е-5 0.7Е1
хЕу представляет значение х*10y

Строковая
'123 Main St.'

Дата, время
Записывается по формату, указанному выше.


Идентификаторы MySQL
Идентификаторами являются имена таблиц, столбцов и других элементов БД.
Максимальные длины и допустимые символы для идентификаторов
Идентификатор
Максимальная длина (в байтах)

База данных , кроме \ , / и *.
64

Таблица файлов, кроме \, /, '.'
64

Столбец
64

Индекс
64

Псевдоним
255

Правила задания идентификаторов:
Имя может включать алфавитно-цифровые символы из текущего набора символов, а также символы '_' и '$'.
Имя может начинаться с любого допустимого символа.
В именах нельзя применять символ точки, поскольку точка служит для расширения формата, когда можно обращаться к столбцам.

Не рекомендуется использовать имена вроде 1е, потому что выражение, подобное 1е+1, неоднозначно. Оно может интерпретироваться как выражение 1е + 1 либо как число 1е+1, в зависимости от контекста.
Заголовок 1 Заголовок 615

Приложенные файлы

  • doc 7066460
    Размер файла: 85 kB Загрузок: 0

Добавить комментарий