Языки манипулирования данными (ямд)
Вид материала | Документы |
- План Общие сведения о субд. Место бд при различной архитектуре вычислительной, 281.05kb.
- Тесты (12 баллов) Какие восточнославянские языки называются «языки-братья», 128.8kb.
- Курс лекций "Базы данных и субд" Логинова С. А. Лекция 13. Язык sql. Команды dml. Команды, 133.93kb.
- И в содержании возможны ошибки. Лекция, 148.86kb.
- Нормативный срок освоения программы 4 года; Общая трудоемкость освоения ооп 9112 часов, 832.28kb.
- Тематическое планирование по русскому языку (9 класс), 445.28kb.
- Viii. Управление данными план, 131.4kb.
- Тема Раса, этнос, языки: их соотношение. Контактные языки как специфический результат, 1593.74kb.
- Балкарская ономастика в парадигме современной лингвистики 10. 02. 02 языки народов, 713.27kb.
- Программа учебной дисциплины «Языковая политика СССР и рф» (факультатив для бакалавриата), 71.42kb.
Языки манипулирования данными (ЯМД)
До появления реляционных БД существовали языки манипулирования данными, которые были ориентированны на операции с данными, представленными в виде логических записей файла (списки).
Это требовало от пользователей детального знания об организации хранения данных на магнитных носителях.
Кроме этого процедуры поиска и выборки данных выполнялись очень медленно.
С появлением реляционных БД стали развиваться и языки управления БД.
Первый язык предложил Кодд назывался 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, в зависимости от контекста.