- •Лекция: Введение в MySql Содержание
- •Концепции баз данных Системы управления файлами
- •Иерархические базы данных
- •Сетевые базы данных
- •Реляционные базы данных
- •Объектно-ориентированные базы данных
- •Объектно-реляционные базы данных
- •2. Лекция: Подготовка к работе с MySql Содержание
- •Инсталляция вручную
- •Компиляция программы
- •Предоставление привилегий
- •Лекция: Создание базы данных, основы работы с таблицами
- •Создание базы данных в Windows
- •Создание базы данных в Linux
- •Команда create database
- •Работа с таблицами
- •Использование базы данных
- •Создание таблицы
- •Синтаксис команды create table
- •Удаление таблиц
- •Синтаксис команды drop table
- •Лекция: Типы данных столбцов
- •Числовые типы данных
- •Типы данных даты и времени
- •Типы данных datetime, date и timestamp
- •Тип данных time
- •Тип данных year
- •Лекция: Работа с таблицами. Внесение, извлечение, поиск и удаление данных
- •Запись данных в таблицы
- •Задания
- •Возможные решения
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Задания
- •Возможные решения
- •Предложение having
- •Задание
- •Возможное решение
- •Удаление записей из таблицы
- •Лекция: Логические операторы
- •Задания
- •Возможные решения
- •8. Лекция: Математические функции
- •9. Лекция: Работа с датой и временем
- •Особенности типа данных Date
- •Операции с датами
- •10. Лекция: Работа со строками
- •Строковые функции
- •Ascii(строка) ord(строка)
- •Concat(строка1, строка2, ...)
- •Concat_ws(разделитель, строка1, строка2, ...)
- •Conv(n, основание_начальное, основание_конечное)
- •Elt(n, строка1, строка2, строкаЗ, ...)
- •Field(строка, строка1, строка2, строка3, ...)
- •Find_in_set(строка, список_строк)
- •Substring_index(строка, разделитель, количество)
- •Trim([[both | leading | trailing] [удаляемая_строка] from] строка)
- •Uncompress(строка_для_распаковки)
- •Unhex(строка)
- •Upper(строка) ucase(строка)
- •11. Лекция: Дополнительные функции MySql
- •Битовые функции
- •Побитовое или ( | )
- •Побитовое и ( & )
- •Функции шифрования
- •Aes_encrypt(строка, строка_ключа) aes_decrypt(зашифрованная_строка, строка_ключа)
- •Decode(зашифрованная_строка, строка_пароля)
- •Encode(строка, строка_пароля)
- •Des_decrypt(зашифрованная_строка [, строка_ключа])
- •Информационные функции benchmark(количество, выражение)
- •Charset(строка)
- •Coercibility(строка)
- •Collation(строка)
- •Прочие функции
- •Get_lock(строка, таймаут)
- •Inet_aton(выражение)
- •Inet_ntoa(выражение)
- •Is_free_lock(строка)
- •Master_pos_wait(имя_журнала, позиция_в_журнале [, таймаут])
- •Release_lock(строка)
Операторы больше и меньше
Давайте получим имена и фамилии всех сотрудников, которые старше 32 лет.
SELECT f_name, l_name from employee_data where age > 32;
Результат запроса приведен на рис. 5.7.
Рис. 5.7. Выборка столбцов с условием "больше" для поля "возраст"
Попробуем найти сотрудников, которые получают зарплату больше 120000.
SELECT f_name, l_name from employee_data where salary > 120000;
Результат запроса приведен на рис. 5.8.
Рис. 5.8. Выборка столбцов с условием "больше" для поля "зарплата"
Теперь перечислим всех сотрудников, которые имеют стаж работы в компании менее 3 лет.
SELECT f_name, l_name from employee_data where yos < 3;
Результат запроса приведен на рис. 5.9.
Рис. 5.9. Выборка столбцов с условием "меньше" для поля "стаж"
Операторы <= и >=
Используемые в основном с целочисленными данными операторы меньше или равно (<=) и больше или равно (>=) обеспечивают дополнительные возможности.
select f_name, l_name, age, salary
from employee_data where age >= 32;
Результат запроса приведен на рис. 5.10.
Рис. 5.10. Выборка столбцов с условием "больше или равно" для поля "возраст"
Выборка содержит имена, возраст и зарплаты сотрудников, которым больше 32 лет.
select f_name, l_name from employee_data where yos <= 2;
Результат запроса приведен на рис. 5.11.
Рис. 5.11. Выборка столбцов с условием "меньше или равно" для поля "стаж"
Запрос выводит имена сотрудников, которые работают в компании не более 2 лет.
Задания
1. Напишите оператор SELECT для извлечения идентификационного номера сотрудников, которые старше 30 лет.
2. Напишите оператор SELECT для извлечения имен и фамилий всех Web-разработчиков.
3. Что выведет следующий оператор SELECT:
SELECT * from employee_data where salary <=100000;
4. Как вывести зарплаты и надбавки сотрудников, которые получают в качестве надбавок более 16000?
5. Перечислите имена всех сотрудников (фамилия, а затем имя), которые занимают должность бухгалтера.
Возможные решения
1. select emp_id from employee_data where age > 30;
2. select f_name, l_name from employee_data where title='Web-разработчик';
3. Следующий оператор выводит всю информацию о сотрудниках, которые получают зарплату не больше 100000.
SELECT * from employee_data where salary <=100000;
4. select salary, perks from employee_data where perks > 16000;
5. select l_name, f_name from employee_data where title = 'бухгалтер';
Поиск текстовых данных по шаблону В данной части мы рассмотрим поиск текстовых данных по шаблону с помощью предложения where и оператора LIKE. Оператор сравнения на равенство (=) помогает выбрать одинаковые строки. Таким образом, чтобы перечислить имена сотрудников, которых зовут Иван, можно воспользоваться следующим оператором SELECT. select f_name, l_name from employee_data where f_name = "Иван"; Результат запроса приведен на рис. 5.12.
Рис. 5.12. Результат поиска сотрудников, которых зовут Иван Как быть, если надо вывести данные о сотрудниках, имя которых начинается с буквы В? Язык SQL позволяет выполнить поиск строковых данных по шаблону. Для этого в предложении where используется оператор LIKEследующим образом. select f_name, l_name from employee_data where f_name LIKE "В%"; Результат запроса приведен на рис. 5.13.
Рис. 5.13. Результат поиска сотрудников, имя которых начинается с буквы В Можно видеть, что здесь в условии вместо знака равенства используется LIKE и знак процента в шаблоне. Знак % действует как символ-заместитель (аналогично использованию * в системах DOS и Linux). Он заменяет собой любую последовательность символов. Таким образом "В%" обозначает все строки, которые начинаются с буквы В. Аналогично "%В" выбирает строки, которые заканчиваются символом В, а "%В%" строки, которые содержат букву В. Давайте выведем, например, всех сотрудников, которые имеют в названии должности строку "про". select f_name, l_name, title from employee_data where title like '%про%'; Результат запроса приведен на рис. 5.14.
Рис. 5.14. Результат поиска сотрудников, в названии должности которых содержится строка "про" Перечислим всех сотрудников, имена которых заканчиваются буквой 'а'. Это очень просто сделать. mysql> select f_name, l_name from employee_data where f_name like '%a'; Результат запроса приведен на рис. 5.15.
Рис. 5.15. Результат поиска сотрудников, имена которых заканчиваются буквой 'а' Задания 1. Перечислить всех сотрудников, фамилии которых начинаются с буквы P. 2. Вывести имена всех сотрудников в отделе продаж. 3. Что выведет следующий оператор SELECT f_name, l_name, salary from employee_data where f_name like '%к%'; 4. Перечислить фамилии и должности всех программистов Возможные решения 1. select l_name, f_name from employee_data where l_name like 'P%'; 2. select f_name, l_name from employee_data where title like '%продавец%'; 3. Этот оператор выводит имена, фамилии и заплаты всех сотрудников, у которых имя содержит букву 'к'. SELECT f_name, l_name, salary from employee_data where f_name like '%к%'; 4. SELECT l_name, title from employee_data where title like '%программист%'; |
|
|
|