Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб-1-2-теория.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Изменение записей 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()

возвращает значение числа . По умолчанию отображается пять знаков после десятичной запятой, но внутренне MySQL использует полное представление действительного числа двойной точности

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;

Сотрудники, имеющие детей

Приведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]