- •Разработка баз данных средствами MySql
- •Содержание
- •Введение
- •1. Основы работы в субд MySql
- •Системы управления базами данных
- •Основные характеристики MySql
- •Команда create database
- •Работа с таблицами
- •Синтаксис команды create table
- •Удаление таблиц
- •Синтаксис команды drop table
- •Типы данных
- •Числовые данные
- •Строковые данные
- •Календарные данные
- •Тип данных null
- •Выбор типа данных
- •1 Вариант.
- •2 Вариант.
- •3 Вариант.
- •2. Работа с таблицами. Ввод, извлечение, поиск и удаление данных Запись данных в таблицы
- •Заполните таблицу employee_data 5-10 записями. Запрос данных из таблицы MySql
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Поиск текстовых данных по шаблону
- •Предложение group by и having
- •Удаление записей из таблицы
- •Задание 1
- •Задание 2
- •Задание 3
- •3. Логические операции в MySql
- •Операторы in и between
- •Упорядочивание данных
- •Ограничение количества извлекаемых данных
- •Извлечение подмножеств
- •Ключевое слово distinct
- •Изменение записей
- •Задание 1
- •Задание 2
- •Задание 3
- •Вычисление среднего значения
- •Именование столбцов
- •Подсчет числа записей
- •Группировка данных
- •5. Математические функции в MySql. Строковые функции. Работа с датой Математические функции MySql
- •Строковые функции
- •Ascii(строка)
- •Concat(строка1, строка2, ...)
- •Особенности типа данных Date
- •Операции с датами
- •Определение диапазонов
- •Использование Date для сортировки данных
- •Выбор данных с помощью Date
- •Текущие даты
- •Тип столбца Null
- •Задание 1
- •Задание 2
- •Задание 3
- •6. Переменные и временные таблицы. Многотабличные запросы
- •7. Вложенные запросы в MySql
- •8. Хранимые процедуры и функции
- •9. Курсоры в MySql. Представления. Конструкции управления потоком данных
- •10. Анализ и моделирование предметной области
- •1. Выбор и текстовое описание предметной области
- •2. Разработка концептуальной er-модели предметной области
- •3. Определение функциональных требований
- •11. Проектирование базы данных
- •1. Создание логической реляционной модели базы данных
- •2. Нормализация логической реляционной модели базы данных
- •1Нф (Первая Нормальная Форма)
- •2Нф (Вторая Нормальная Форма)
- •3Нф (Третья Нормальная Форма)
- •12. Проектирование физической модели бд и ее реализация
- •1. Создание физической модели базы данных
- •2. Реализация физической модели базы данных в коде
- •13. Наполнение и тестирование бд
- •1. Наполнение базы данных
- •2. Тестирование базы данных
- •14. Создание приложения к бд в среде delphi 7, с использованием AnyDac framework 1.7.0
- •1. Начало работы
- •2. Связь с таблицами
- •3. Отображение таблицы на форме
- •4. Компонент adQuery
- •5. Экспорт данных в Excel
- •6. Работа с внешними ключами
- •Рекомендуемая литература
- •Разработка баз данных средствами MySql
- •460844, Г. Оренбург, ул. Советская, 19
Синтаксис команды create table
Общий формат инструкции CREATE TABLE таков:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] имя
[(спецификация, ...)]
[опция, ...]
[ [IGNORE | REPLACE] запрос]
Флаг TEMPORARY задает создание временной таблицы, существующей в течение текущего сеанса. По завершении сеанса таблица удаляется. Временным таблицам можно присваивать имена других таблиц, делая последние временно недоступными. Спецификатор IF NOT EXIST подавляет вывод сообщений об ошибках в случае, если таблица с указанным именем уже существует. Имени таблицы может предшествовать имя базы данных, отделенное точкой. Если это не сделано, таблица будет создана в базе данных, которая установлена по умолчанию.
Чтобы задать имя таблицы с пробелами, необходимо заключить его в апострофы, например 'courses list'. То же самое нужно будет делать во всех ссылках на таблицу, поскольку пробелы используются для разделения идентификаторов.
Разрешается создавать таблицы без столбцов, однако в большинстве случаев спецификация хотя бы одного столбца все же присутствует. Спецификации столбцов и индексов приводятся в круглых скобках и разделяются запятыми. Формат спецификации следующий:
имя тип
[NOT NULL | NULL]
[DEFAULT значение]
[AUTO_INCREMENT]
[KEY]
[ссылка]
Удаление таблиц
Для того чтобы удалить таблицу, убедимся вначале, что она существует. Это можно проверить с помощью команды SHOW TABLES.
Для удаления таблицы используется команда DROP TABLE.
Теперь команда SHOW TABLES; этой таблицы больше не покажет.
Синтаксис команды drop table
Инструкция DROP TABLE имеет следующий синтаксис:
DROP TABLE [IF EXISTS] таблица [RESTRICT | CASCADE]
Спецификация IF EXISTS подавляет вывод сообщения об ошибке, выдаваемого в случае, если заданная таблица не существует. Можно указывать несколько имен таблиц, разделяя их запятыми.
Флаги RESTRICT и CASCADE предназначены для выполнения сценариев, созданных в других СУБД.
Типы данных
MySQL поддерживает несколько типов данных.
Числовые данные – к ним относят целые числа, не содержащие дробной части (например, 124), а также вещественные числа, состоящие из последовательности цифр, разделенных точкой (например, 56.45).
Строковые данные – последовательность символов, заключенных в одинарные или двойные кавычки: ‘Hallo world’, ‘123’, “MySQL”. В качестве стандарта в SQL определяются одинарные кавычки, поэтому для совместимости с другими базами данных рекомендуется использовать именно их.
Календарные данные – специальный тип для обозначения даты и времени, может принимать различную форму, например строковую “2007-04-28” или числовую 20070428. Основной характеристикой этого типа дынных является их хранение в едином внутреннем формате, позволяющем осуществлять операции сложения и вычитания, независимо от внешнего представления.
NULL – специальный тип данных, обозначающий отсутствие информации.
Числовые данные
MySQL поддерживает все числовые типы данных языка SQL92 по стандартам ANSI/ISO. Они включают в себя типы точных числовых данных (NUMERIC, DECIMAL, INTEGER и SMALLINT) и типы приближенных числовых данных (FLOAT, DOUBLE). Ключевое слово INT является синонимом для INTEGER, а ключевое слово DEC - синонимом для DECIMAL.
Таблица 2. Наиболее часто используемые числовые типы полей MySql
Тип |
Байт |
От |
До |
TINYINT |
1 |
-128 |
127 |
SMALLINT |
2 |
-32768 |
32767 |
MEDIUMINT |
3 |
-8388608 |
8388607 |
INT |
4 |
-2147483648 |
2147483647 |
BIGINT |
8 |
-9223372036854775808 |
9223372036854775807 |
FLOAT |
4 |
±1.175494351∙10-39 |
±3.402823466∙1038 |
DOUBLE |
8 |
±2.2250738585072014∙10-308 |
±1.797693134862315∙10308 |