- •Лабораторные работы 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
Изменение записей update
Команда UPDATE выполняет изменение данных в таблицах. Она имеет очень простой формат.
UPDATE имя_таблицы SET имя_столбца_1 = значение_1, имя_столбца_2 = значение_2,
имя_столбца_3 = значение_3, ...[WHERE условия];
Как и все другие команды SQL можно вводить ее на одной строке или на нескольких строках.
Рассмотрим несколько примеров.
Предположим, директор увеличил свою зарплату на 20000 и надбавки на 5000. Его предыдущая зарплата была 200000, а надбавки были 50000.
UPDATE employee_data SET salary=220000, perks=55000 WHERE title='директор';
Данные обновлены
В действительности предыдущую зарплату знать не требуется. Можно воспользоваться арифметическими операторами. Следующий оператор сделает то же самое, при этом исходные данные знать заранее не требуется.
UPDATE employee_data SET salary = salary + 20000, perks = perks + 5000
WHERE title='директор';
В качестве другого примера можно попробовать изменить название должности "разработчик Web" на "программист Web".
mysql> update employee_data SET title = 'программист Web'
WHERE title = 'разработчик Web';
Важно также перед выполнением изменений внимательно изучить часть оператора с условием, так как легко можно изменить не те данные.
Оператор UPDATE без условий изменит все данные столбца во всех строках. Надо быть очень осторожным при внесении изменений.
3.1. Математические функции MySql
Сведем математические функции в таблицу.
Функция |
назначение |
Пример |
Результат |
ABS(число) |
функция возвращает модуль числа |
ABS(-3.057) |
3.057 |
ASIN(число) |
функция возвращает арксинус числа |
ASIN(0.2) |
0.2013 |
ACOS(число) |
функция возвращает арккосинус числа |
ACOS(0) |
1.5707 |
ATAN(число) |
функция возвращает арктангенс числа |
ATAN(1) |
0.7853 |
ATAN2(число1, число2) |
функция возвращает угол в радианах точки с заданными координатами |
ATAN2(3,7) |
0.40489 |
CEILING(число) CEIL(число) |
функция округляет число до ближайшего большего целого числа. |
CEIL(1.3) |
2 |
PI() |
возвращает
значение числа
|
PI() |
3.141593 |
SIN(число) |
функция возвращает синус числа в радианах |
SIN(1) |
0.8414 |
COS(число) |
Возвращает косинус числа |
COS(PI())) |
-1.0000 |
TAN(число) |
возвращает тангенс числа |
TAN(PI()+1) |
1.5574 |
COT(число) |
COT(число) |
COT(12) |
-1.5726 |
CRC32(выражение) |
Вычисляет проверочное значение в циклическом избыточном коде и возвращает 32-разрядное целое. Результат равен NULL, если передается аргумент NULL. Ожидается, что аргумент будет строкой, и будет рассматриваться в качестве таковой в противном случае. |
CRC32(MySQL) |
3259397556 |
DEGREES(число) |
возвращает аргумент, преобразованный из радианов в градусы |
DEGREES(PI()) |
180.00 |
ЕХР(число) |
функция возводит число e (основание натурального логарифма) в заданную степень.
|
EXP(2) |
7.389 |
FLOOR(число) |
функция округляет число до ближайшего меньшего целого числа |
FLOOR(1.6) |
1 |
GREATEST(...) |
функция возвращает наибольшее значение из списка. Она может работать как с числами, так и со строками |
GREATEST(1,4,6) |
6 |
LEAST(...) |
Функция возвращает наименьшее значение из списка. |
LEAST(1,4,6) |
1 |
LN(число) |
функция возвращает натуральный логарифм числа |
LN(2) |
0.6931 |
LOG(число) |
При вызове с одним параметром функция LOG возвращает натуральный логарифм числа, а при вызове с двумя параметрами - возвращает логарифм числа2 по основанию число1 LOG(число1, число2) эквивалентна LOG(число2) / LOG(число1). |
LOG(2,65536) |
16.000 |
LOG2(число) |
возвращает логарифм числа по основанию 2. Функция LOG2() удобна для того, чтобы определить, сколько бит потребуется для сохранения числа. Вместо нее можно использовать LOG(число) /LOG(2) |
LOG2(65536) |
16.00 |
LOG10(число) |
Возвращает логарифм числа по основанию 10 |
LOG10(100) |
2 |
MOD(число1, число2) число1 % число2 число1 MOD число2 |
функция возвращает остаток от деления первого числа на второе подобно оператору %. |
MOD(235,10) |
5 |
POW(число1, число2) POWER(число1, число2) |
Возвращает значение число1, возведенное в степень число2 |
POW2,3) |
8.00 |
RADIANS(число) |
возвращает аргумент, преобразованный из градусов в радианы |
RADIANS(90) |
1.5707 |
RAND([число]) |
Возвращает случайное число двойной точности в диапазоне от 0 до 1. Если указан целочисленный аргумент, он служит начальным числом для генератора случайных чисел (генерируя повторяющуюся последовательность). Если аргумент отсутствует, используется значение системных часов. Функцию можно использовать для извлечения строк в случайном порядке. mysql> SELECT * FROM имя_таблицы ORDER BY RAND(); ORDER BY RAND() в комбинации с LIMIT удобно для выбора случайного примера из набора строк: mysql> SELECT * FROM tablel, table2 WHERE a=b AND c<d -> ORDER BY RAND() LIMIT 1000; RAND() в конструкции WHERE вычисляется заново при каждом выполнении WHERE. |
RAND()
|
0.1587… |
ROUND(число [, точность]) |
функция округляет число с плавающей запятой до целого числа или, если указан второй аргумент, до заданного количества цифр после запятой. Если точность отрицательная, обнуляется целая часть числа. Следует отметить, что поведение ROUND(), когда аргумент точно на середине отрезка между двумя целыми, зависит от реализации библиотеки С. Различные реализации округляют до ближайшего четного, либо всегда в большую сторону, либо всегда в меньшую сторону, либо в сторону ближайшего нуля. Если вам нужно иметь предсказуемое поведение в этом случае, применяйте вместо этой функции TRUNCATE() ИЛИ FLOOR() |
ROUND(-1.45) |
-1 |
SIGN(число) |
возвращает знак аргумента как -1, 0 или 1, в зависимости от того, число отрицательное, нуль или положительное |
SIGN(-24) |
-1 |
SQRT(число) |
функция возвращает квадратный корень числа |
SQRT(16) |
4 |
TRUNCATE(число1, число2) |
возвращает число1 с дробной частью, усеченной до число2 десятичных разрядов. Если число2 равно 0, результат не имеет точки и дробной части. Если число2 отрицательное, целая часть числа длиной число2 обнуляется. Все числа округляются в сторону нуля. Десятичные числа обычно хранятся в компьютерах в виде двоичных значений двойной точности, поэтому иногда результат может вызвать удивление: TRUNCATE(10.28*100,0)=1027 Это происходит потому, что 10.28 на самом деле сохраняется как 10.27999999999999 |
TRUNCATE(1.323)
|
1.3 |
Примеры:
mysql> SELECT CEILING(1.3);
mysql> SELECT ATAN(2);
Тип столбца Null
Тип столбца NULL является специальным значением. Чтобы вставить значение NULL, удалите просто имя столбца из оператора INSERT. Столбцы содержат NULL по умолчанию, если только не определены как NOT NULL. Значение null может использоваться для целочисленных, а также текстовых или двоичных данных.
NULL нельзя сравнивать с помощью арифметических операторов. Сравнение для NULL можно делать с помощью IS NULL или IS NOT NULL.
select e_id, children from employee_per where children IS NOT NULL;
Сотрудники, имеющие детей
Приведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.
