- •Разработка баз данных средствами 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
Тип данных null
Реляционная БД позволяет объединить многочисленные данные в одну таблицу и при помощи SQL-запросов проводить над ней различные манипуляции, получая результат в виде чисел и строк, а также новых таблиц. При создании таблицы неизбежны случаи, когда информации недостаточно и для части данных нельзя определить, какое значение они примут. Такие данные обозначаются специальным типом – NULL.
Например, в форме регистрации пользователь обязятельно должен указать фамилию, имя, отчество. Кроме того, по желанию он может указать своей e-mail и URL домашней страницы.
Посетитель обязан указать свои фамилию, имя и отчество, но может не указывать e-mail и адрес домашней страницы, даже несмотря на то, что они у него имеются в наличие. Таким образом, если для полей email и url нет информации, это не значит, что ее нет в природе, просто на данный момент она неизвестна. Такие поля принимают значение NULL – отсутствие информации, т.е. неопределенное значение.
Выбор типа данных
При выборе типа данных следует помнить, что обработка числовых данных происходит быстрее стрококвых. Так как типы данных ENUM и SET имеют внутреннее числовое представление, им следует отдавать предпочтение перед другими видами строковых данных, если есть такая возможность.
Не следует забывать, что БД хранятся на жестком диске, и чем меньше места они занимают, тем быстрее происходит поиск и извлечение. Поэтому, там, где есть возможность, предпочтение следует отдавать типам данных, занимающих меньше места.
Задание
Замечание: Все таблицы, поля и т. д. называем латинскими буквами. При создании БД обращаем особое внимание на КОДИРОВКИ!!! Необходимо указать – cp1251 и Russian. Они выставляются ТОЛЬКО при регистрации хоста, а также создании и регистрации БД.
1 Вариант.
Создать базу данных BASA_<фамилия студента>, в которой хранится таблица АВТОР (Фамилия, имя, отчество, пол, возраст, телефон). Примечание: не забудьте про первичный ключ!!!
В таблицу АВТОР добавить сведения об ИНН автора и заменить поле ВОЗРАСТ на поле ДАТА_РОЖДЕНИЯ.
Заполните таблицу данными – 5-6 записей.
2 Вариант.
Создать базу данных BASA_<фамилия студента>, в которой хранится таблица РЕЙС (№ рейса, конечный пункт, дата вылета, продолжительность маршрута, количество мест в самолете, стоимость билета). Примечание: не забудьте про первичный ключ!!!
В таблицу РЕЙС необходимо добавить бортовый номер и увеличить длину поля КОНЕЧНЫЙ ПУНКТ.
Заполните таблицу данными – 5-6 записей.
3 Вариант.
Создать базу данных BASA_<фамилия студента>, в которой хранится таблица БЛЮДО (Название, время приготовления, калорийность, стоимость, вес, фамилия повара). Примечание: не забудьте про первичный ключ!!!
В таблицу БЛЮДО необходимо добавить сведения о содержании жиров в блюде (в %) и заменить тип поля ВРЕМЯ_ПРИГОТОВЛЕНИЯ на вещественный.
Заполните таблицу данными – 5-6 записей.
2. Работа с таблицами. Ввод, извлечение, поиск и удаление данных Запись данных в таблицы
Оператор INSERT заполняет таблицу данными. Вот общая форма INSERT.
INSERT into table_name (column1, column2, ...)
values (value1, value2...);
где table_name является именем таблицу, в которую надо внести данные; column1, column2 и т.д. являются именами столбцов, а value1, value2 и т.д. являются значениями для соответствующих столбцов.
Пример. Следующий оператор вносит запись в таблицу employee_data.
INSERT INTO employee_data
(f_name, l_name, title, age, yos, salary, perks, email)
values
("Михаил", "Петров", "директор", 28, 4, 200000,
50000, "misha@yandex.ru");
Несколько важных моментов:
Значениями для столбцов f_name, l_name, title и email являются текстовые строки, и они записываются в кавычках.
Значениями для age, yos, salary и perks являются числа (целые), и они не имеют кавычек.
Можно видеть, что данные заданы для всех столбцов кроме except emp_id. Значение для этого столбца задает система MySQL, которая находит в столбце наибольшее значение, увеличивает его на единицу, и вставляет новое значение.