- •Лабораторные работы 1,2.
- •1. 1. Основные характеристики субд MySql.
- •1.2. Установка MySql
- •Проверка исходных требований
- •Выбор версии
- •1.4.Основные команды создания баз данных, основы работы с таблицами
- •Создание базы данных в Windows
- •Удаление баз данных.
- •1. 5. Типы данных столбцов
- •Требования к памяти для символьных типов приведены в таблице.
- •2.1. Запись данных в таблицы
- •В системе Windows
- •2.2. Запрос данных из таблицы MySql select
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Поиск текстовых данных по шаблону с помощью предложения where и оператора like.
- •2.3. Логические операторы
- •Операторы in и between
- •2.4 Команды обработки данных: поиск максимального, минимального и среднего значений, нахождение суммы и количества записей Поиск минимального и максимального значений
- •Именование столбцов as
- •Подсчет числа записей
- •Предложения group by и having
- •Удаление записей из таблицы
- •Упорядочивание данных order by
- •Ограничение количества извлекаемых данных
- •Ключевое слово distinct
- •Вложенные запросы
- •Изменение записей update
- •3.1. Математические функции MySql
- •3.2.Работа с датой и временем
- •3.3. Работа со строками
- •Insert(строка, позиция, длина, новая_строка)
- •Instr(строка, подстрока)
- •Функции сравнения строк
- •3.4. Дополнительные функции MySql
- •Битовые функции
- •Прочие функции
- •3.3.4.9 Использование нескольких таблиц
- •3.3.4.6 Работа с значениями null
- •3.3.4.9 Использование нескольких таблиц
- •Делаем дамп (бэкап) базы данных, используя утилиту mysqldump
Операторы in и between
Чтобы найти сотрудников, которые являются разработчиками Web или системными администраторами, можно использовать оператор SELECT следующего вида:
SELECT f_name, l_name, title from employee_data where
title = 'разработчик Web' OR title = 'системный адм.';
Список сотрудников, которые являются разработчиками Web или системными администраторами
В SQL имеется более простой способ сделать это с помощью оператора IN (в множестве). Его использование не представляет никаких трудностей.
SELECT f_name, l_name, title from employee_data where
title IN ('разработчик Web', 'системный адм.');
Результат будет аналогичен предыдущему.
Использование NOT перед IN позволяет вывести данные, которые не входят в множество, определяемое условием IN.
Пример: Следующий оператор выводит список сотрудников, которые не занимают должность программиста или системного администратора.
SELECT f_name, l_name, title from employee_data
where title NOT IN ('программист', 'системный адм.');
Оператор BETWEEN используется для определения целочисленных границ. Поэтому вместо age >= 32 AND age <= 40 можно использовать age BETWEEN 32 AND 40.
select f_name, l_name, age from employee_data where age BETWEEN 32 AND 40;
Список сотрудников, возраст которых лежит в промежутке от 32-х до 40 лет
NOT также можно использовать вместе с BETWEEN, как в следующем операторе.
Пример: Выведем сотрудников, зарплата которых меньше 90000 или больше 150000.
select f_name, l_name, salary from employee_data where salary NOT BETWEEN
90000 AND 150000;
2.4 Команды обработки данных: поиск максимального, минимального и среднего значений, нахождение суммы и количества записей Поиск минимального и максимального значений
В MySQL имеются встроенные функции для вычисления минимального, максимального и среднего значений, нахождение суммы и количества записей.
SQL имеет 5 агрегатных функций.
MIN(): минимальное значение
MAX(): максимальное значение
SUM(): сумма значений
AVG(): среднее значений
COUNT(): подсчитывает число записей
Рассмотрим поиск минимального и максимального значений столбца.
Поиск минимальной зарплаты
select MIN(salary) from employee_data;
Поиск максимальной зарплаты
select MAX(salary) from employee_data;
Именование столбцов as
MySQL позволяет задавать имена для выводимых столбцов. Поэтому вместо f_name или l_name и т.д. можно использовать более понятные и наглядные термины. Это делается с помощью оператора AS.
select avg(salary) AS 'Средняя зарплата' from employee_data;
Вывод средней зарплаты с использованием псевдо-имен столбцов
Такие псевдо-имена могут сделать вывод более понятным для пользователей. Важно только помнить, что при задании псевдо-имен с пробелами необходимо заключать такие имена в кавычки. Вот еще один пример:
Вывод процента зарплаты, которую сотрудники получают в качестве надбавок с использованием псевдо-имен
select (SUM(perks)/SUM(salary) * 100) AS 'Процент надбавок' from employee_data;
Подсчет числа записей
Агрегатная функция COUNT() подсчитывает и выводит общее число записей. Например, чтобы подсчитать общее число записей в таблице, выполните следующую команду.
Общее количество записей select COUNT(*) from employee_data;
Как мы уже знаем, знак * означает "все данные". Теперь подсчитаем общее число сотрудников, которые занимают должность "программист".
select COUNT(*) from employee_data where title = 'программист';
Общее количество сотрудников-программистов
