
- •Разработка баз данных средствами 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
Задание 1
1. Вывести имена и фамилии всех сотрудников, которые получают зарплату не более 90000 и не являются программистами, старшими программистами или программистами мультимедиа.
2. Что делает следующий оператор?
SELECT l_name, f_name from employee_data
where title NOT LIKE '%продавец%'
AND age < 30;
3. Вывести все идентификационные номера и имена сотрудников в возрасте от 32 до 40 лет.
4. Выберите имена всех сотрудников в возрасте 32 лет, которые не являются программистами.
Задание 2
1. Найдите всех сотрудников, которые занимают должность "старший программист" и "программист мультимедиа".
2. Выведите список имен сотрудников, зарплата которых составляет от 70000 до 90000.
3. Что делает следующий оператор?
SELECT f_name, l_name, title from
employee_data where title NOT IN
('программист', 'старший программист',
'программист мультимедиа');
4. Вот более сложный оператор, который объединяет BETWEEN и IN. Что он делает?
SELECT f_name, l_name, title, age
from employee_data where
title NOT IN
('программист', 'старший программист',
'программист мультимедиа') AND age
NOT BETWEEN 28 and 32;
Задание 3
1. Вывести список сотрудников в порядке, определяемом зарплатой, которую они получают.
2. Выведите список сотрудников в убывающем порядке их стажа работы в компании.
3. Что делает следующий оператор?
SELECT emp_id, l_name, title, age
from employee_data ORDER BY
title DESC, age ASC;
4. Вывести список сотрудников (фамилию и имя), которые занимают должность "программист" или "разработчик Web" и отсортировать их фамилии по алфавиту.
Задание 4
1. Найдите имена 5 самых молодых сотрудников компании.
2. Извлеките 5 записей, начиная с 10 строки.
3. Выведите имена и зарплату сотрудников, которые получают самую большую зарплату.
4. Что делает следующий оператор?
SELECT emp_id, age, perks
from employee_data ORDER BY
perks DESC LIMIT 10;
Задание 5
1. Сколько уникальных вариантов зарплаты имеется в компании BigFoot? Представьте их в убывающем порядке.
2. Сколько различных имен имеется в базе данных?
Задание 6
1. Измените фамилию Чащина на Петрова. Внесите соответствующие изменения в базу данных.
2. Название должности "программист мультимедиа" необходимо изменить на "специалист по мультимедиа".
3. Увеличьте зарплату всем сотрудниками (кроме директора) на 10000.
4. КОМАНДЫ ОБРАБОТКИ ДАННЫХ
Поиск минимального и максимального значений
В MySQL имеются встроенные функции для вычисления минимального и максимального значений.
SQL имеет 5 агрегатных функций.
MIN(): минимальное значение
MAX(): максимальное значение
SUM(): сумма значений
AVG(): среднее значение
COUNT(): подсчитывает число записей
Рассмотрим поиск минимального и максимального значений столбца.
Минимальное значение
select MIN(salary) from employee_data;
Максимальное значение
select MAX(salary) from employee_data;
Суммирование значений столбца с помощью функции SUM
Агрегатная функция SUM() вычисляет общую сумму значений в столбце. Для этого необходимо задать имя столбца, которое должно быть помещено внутри скобок.
Давайте посмотрим, сколько компания BigFoot тратит на зарплату своих сотрудников.
select SUM(salary) from employee_data;
Аналогично можно вывести общую сумму надбавок, выдаваемых сотрудникам.
select SUM(perks) from employee_data;
Можно найти также общую сумму зарплаты и надбавок.
select sum(salary) + sum(perks) from employee_data;
Здесь показаны также дополнительные возможности команды SELECT. Значения можно складывать, вычитать, умножать или делить. В действительности можно записывать полноценные арифметические выражения.