- •Лекция: Введение в 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(строка)
Лекция: Работа с таблицами. Внесение, извлечение, поиск и удаление данных
Запись данных в таблицы
Заполнение таблицы employee_data данными с помощью файла employee.dat
В системе Windows
В системе Linux
Запрос данных из таблицы MySQL
Задания
Возможные решения
Выборка данных с помощью условий
Операторы сравнения = и !=
Операторы больше и меньше
Операторы <= и >=
Задания
Возможные решения
Поиск текстовых данных по шаблону
Задания
Возможные решения
Предложение HAVING
Задание
Возможное решение
Удаление записей из таблицы
Запись данных в таблицы
Оператор INSERT заполняет таблицу данными. Вот общая форма INSERT.
INSERT into table_name (column1, column2, ...)
values (value1, value2...);
где table_name является именем таблицы, в которую надо внести данные; column1, column2 и т.д. являются именами столбцов, аvalue1, value2 и т.д. являются значениями для соответствующих столбцов.
Следующий оператор вносит первуюзапись в таблицу employee_data, которую мы рассматривали влекции 3.
INSERT INTO employee_data
(f_name, l_name, title, age, yos, salary, perks, email)
values
("Михаил", "Петров", "директор", 28, 4, 200000,
50000, "misha@yandex.ru");
Как и другие операторы MySQL, эту команду можно вводить на одной строке или разместить ее на нескольких строках.
Несколько важных моментов:
Значениями для столбцов f_name, l_name, title и email являются текстовые строки, и они записываются в кавычках.
Значениями для age, yos, salary и perks являются числа (целые), и они не имеют кавычек.
Можно видеть, что данные заданы для всех столбцов кроме emp_id. Значение для этого столбца задает система MySQL, которая находит в столбце наибольшее значение, увеличивает его на единицу, и вставляет новое значение.
Если приведенная выше команда правильно введена в приглашении клиента mysql, то программа выведет сообщение об успешном выполнении, как показано на рис. 5.1.
Рис. 5.1. Ввод данных в таблицу.
Создание дополнительных записей требует использования отдельных операторов INSERT. Чтобы облегчить эту работу можно поместить все операторы INSERT в файл здесь. Это должен быть обычный текстовый файл с оператором INSERT в каждой строке.
Заполнение таблицы employee_data данными с помощью файла employee.dat
В системе Windows
1) Поместите файл в каталог c:\mysql\bin.
2) Проверьте, что MySQL работает.
3) Выполните команду
mysql employees <employee.dat
В системе Linux
1) Перейдите в каталог с файлом данных.
2) Выполните команду
mysql employees <employee.dat -u username -p
3) Введите свой пароль.
Пусть таблица содержит теперь 21 запись (20 из
файла employee.dat и одну, вставленную оператором INSERT в начале лекции). |
|
|
|
Запрос данных из таблицы MySQL
Таблица employee_data содержит теперь достаточно данных, чтобы можно было начать с ней работать. Запрос данных выполняется с помощью команды MySQL SELECT. Оператор SELECT имеет следующий формат:
SELECT имена_столбцов from имя_таблицы [WHERE ...условия];
Часть оператора с условиями является необязательной (мы рассмотрим ее позже). По сути, требуется знать имена столбцов и имя таблицы, из которой извлекаются данные.
Например, чтобы извлечь имена и фамилии всех сотрудников, выполните следующую команду.
SELECT f_name, l_name from employee_data;
Оператор приказывает MySQL вывести все данные из столбцов f_name иl_name. Результат работы оператора представлен на рис. 5.2.
Рис. 5.2. Вывод данных из таблицы
При ближайшем рассмотрении можно заметить, что данные представлены в том порядке, в котором они были введены. Более того, последняя строка указывает число строк в таблице - 21.
Чтобы вывести всю таблицу, можно либо ввести имена всех столбцов, либо воспользоваться упрощенной формой оператора SELECT.
SELECT * from employee_data;
Символ * в этом выражении означает 'ВСЕ столбцы'. Поэтому этот оператор выводит все строки всех столбцов.
Рассмотрим ещё один пример.
SELECT f_name, l_name, age from employee_data;
Выборка столбцов f_name, l_name и age представлена на рис. 5.3.
Рис. 5.3. Выборка столбцов f_name, l_name и age