Similar presentations:
Операторы и функции
1. Операторы и функции
MySQL2. Арифметические операции
ПримерНазвание
-a
Отрицание
a+b
Сложение
a-b
Вычитание
a*b
Умножение
a/b
Деление
3. Битовые операции
ПримерНазвание
a&b
Побитовое 'И'
a|b
Побитовое 'ИЛИ'
~a
Отрицание
a << b
Сдвиг влево
a >> b
Сдвиг вправо
BIT_COUNT(N)
Подсчет
4. Операторы сравнения
ОператорНазвание
a=b
Равно
a < > b, a != b
Не равно
a<b
Меньше
a>b
Больше
a <= b
Меньше или равно
a >= b
Больше или равно
a <=> b
NULL безопасное сравнение
5. Операторы сравнения
ОператорНазвание
a IS NULL, ISNULL( a )
Определение на NULL
a BETWEEN b AND c
Вхождение в диапазон
a IN( b, c, d )
Вхождение в список
COALESCE( a, b, c )
INTERVAL( a, b, c, d )
Поиск первого не NULL
значения списка
Отношение к интервалу
6. Логические операторы
ОператорНазвание
NOT
Логическое «НЕ»
AND
Логическое «И»
OR
Логическое «ИЛИ»
7. Функции условий
IFNULL( a, b )SELECT IFNULL( 1, 0 );
SELECT IFNULL( NULL, 10 );
SELECT IFNULL( NULL, ‘yes’ );
NULLIF( a, b )
SELECT NULLIF( 1, 1 );
SELECT NULLIF(1,2);
// вернет 1
// вернет 10
// вернет 'yes‘
// вернет NULL
// вернет 1
IF( a, b, c )
SELECT IF( 1>2,2,3 `);
SELECT IF(1<2,'yes','no');
// вернет 3
// вернет ‘yes’
8. Оператор поливариантного выбора
CASE valWHEN [compare] THEN result
[WHEN [compare] THEN result ...]
[ELSE result]
END
CASE WHEN [condition]
THEN result [WHEN [condition]
THEN result ...]
[ELSE result]
END
9. Пример
SELECT CASE 1WHEN 1 THEN "one"
WHEN 2 THEN "two"
ELSE "more"
END;
SELECT CASE WHEN 1>0
THEN "true"
ELSE "false"
END;
10. Поиск по образцу
a LIKE masc;Маски
% – любое число символов
_ – один символ
Примеры
SELECT 'Hello my friend!' LIKE '%friend';
SELECT 'Hello my friend!' LIKE 'Hello%fr_end!';
SELECT 'Hello my friend!' LIKE 'Hello_friend';
11. Регулярные выражения
a REGEXP masca RLIKE masc
SELECT 'Monty!' REGEXP ‘M%y%';
SELECT 'Monty!' REGEXP '.*';
SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
SELECT "bri*" REGEXP "^[a-d]r*[A-j]\*";
12. Сравнение строк
STRCMP( a, b );SELECT STRCMP('text', 'text2'); //-1
SELECT STRCMP('text2', 'text'); //1
SELECT STRCMP('text', 'text');
//0
13. Реливантный поиск
MATCH( col1, col2, ... ) AGAINST (expr );SELECT
* FROM articles
WHERE MATCH (title,body)
AGAINST ('database');
SELECT
id,MATCH (title,body) AGAINST ('Tutorial')
FROM articles;
14. Операторы полнотекстового поиска
Тип ОписаниеПример
+
-
Слово присутствует в строке
Слово отсутствует в строке
+apple +juice
+apple -mac
<, >
+apple +(>pie <juice)
()
Изменение приоритета
реливантности
Подвыражение
~
*
“”
Негативный вклад слова
Усечение (ставится в конце)
Буквальный поиск
+apple ~juice
apple*
“apple juice”
+apple +(>pie <juice)
15. Функции работы с датой
ФункцияDAYOFWEEK(date),
WEEKDAY(date)
DAYOFMONTH(date),
DAYOFYEAR(date)
MONTH(date), YEAR(date)
MONTHNAME(date),
DAYNAME(date)
QUARTER(date)
Описание
Возвращает номер дня недели
(вс, пн)
Возвращает день месяца, день
года
Возвращает месяц, год для
даты
Название месяца, дня недели
Возвращает четверть года
16. Функции работы с датой
ФункцияWEEK(date), WEEK(date,first)
YEARWEEK(date),
YEARWEEK(date,first)
HOUR(time), MINUTE(time),
SECOND(time)
PERIOD_ADD(P,N)
PERIOD_DIFF(P1,P2)
Описание
Возвращает номер недели
Возвращает год и неделю
Возвращает часы, минуты,
секунды
Добавляет N месяцев к
периоду P
Возвращает число месяцев
между двумя периодами
17. Функции работы с датой
ФункцияОписание
Функция формируют дату по
DATE_FORMAT(date,format)
маске
Функция формируют время по
TIME_FORMAT(time,format)
маске
CURDATE(),
Возвращает текущую дату
CURRENT_DATE()
(YYYY-MM-DD)
CURTIME(),
Возвращает текущее время
CURRENT_TIME()
(HH:MM:SS)
18. Функции работы с датой
ФункцияОписание
Возвращает UNIX
TIMESTAMP
Возвращает дату по UNIX
FROM_UNIXTIME(uts,format)
TIMESTAMP
Получает время по
SEC_TO_TIME(seconds)
количеству секунд
Получает количество секунд
TIME_TO_SEC(time)
по дате
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP(date)
19. COUNT
COUNT(expr)SELECT `group_num`, COUNT(*)
FROM `student`
GROUP BY `group_num`;
20. AVG
AVG(expr)SELECT `group_num`, AVG(`test_score`) AS `avg`
FROM `student` GROUP BY `group_num`
HAVING `avg` > 50;
21. MAX, MIN
MIN(expr)MAX(expr)
SELECT
▪ `group_num`,
▪ MIN(`test_score`) AS `min`,
▪ MAX(`test_score`) AS `max`
FROM `student`
GROUP BY `group_num`;
22. SUM
SUM(expr)SELECT
▪ SUM(`id_photo`) AS `sum`
FROM `album`