1. 程式人生 > >mysql 常用函式

mysql 常用函式

字串函式

這裡寫圖片描述
這裡寫圖片描述

mysql> select concat('a','b','c'),concat('a',null);
+---------------------+------------------+
| concat('a','b','c') | concat('a',null) |
+---------------------+------------------+
| abc                 | NULL             |
+---------------------+------------------+
1 row in set (0.00 sec)
mysql> select insert('beijing2008you',12,3,'me');
+------------------------------------+
| insert('beijing2008you',12,3,'me') |
+------------------------------------+
| beijing2008me                      |
+------------------------------------+
1 row in set (0.01 sec)
mysql> select lower('BEIJING'),upper('beijing');
+------------------+------------------+
| lower('BEIJING') | upper('beijing') | +------------------+------------------+ | beijing | BEIJING | +------------------+------------------+ 1 row in set (0.00 sec)
mysql> select left('beijing2008',7),left('beijing2008',null),right('beijing2008',4);
+-----------------------+--------------------------+------------------------+
| left('beijing2008',7) | left('beijing2008',null) | right('beijing2008',4) | +-----------------------+--------------------------+------------------------+ | beijing | NULL | 2008 | +-----------------------+--------------------------+------------------------+ 1 row in set (0.00 sec)
mysql> select lpad('2008',20,'beijing'),rpad('beijing',20,'2008');
+---------------------------+---------------------------+
| lpad('2008',20,'beijing') | rpad('beijing',20,'2008') |
+---------------------------+---------------------------+
| beijingbeijingbe2008      | beijing2008200820082      |
+---------------------------+---------------------------+
1 row in set (0.00 sec)
mysql> select ltrim(' |beijing'),rtrim('beijing|  ');
+--------------------+---------------------+
| ltrim(' |beijing') | rtrim('beijing|  ') |
+--------------------+---------------------+
| |beijing           | beijing|            |
+--------------------+---------------------+
1 row in set (0.00 sec)
mysql> select repeat('mysql ',3);
+--------------------+
| repeat('mysql ',3) |
+--------------------+
| mysql mysql mysql  |
+--------------------+
1 row in set (0.00 sec)
mysql> select replace('beijing_2010','_2010','2008');
+----------------------------------------+
| replace('beijing_2010','_2010','2008') |
+----------------------------------------+
| beijing2008                            |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> select strcmp('a','b'),strcmp('b','b'),strcmp('c','b');
+-----------------+-----------------+-----------------+
| strcmp('a','b') | strcmp('b','b') | strcmp('c','b') |
+-----------------+-----------------+-----------------+
|              -1 |               0 |               1 |
+-----------------+-----------------+-----------------+
1 row in set (0.00 sec)
mysql> select trim(' $ beijing $ ');
+-----------------------+
| trim(' $ beijing $ ') |
+-----------------------+
| $ beijing $           |
+-----------------------+
1 row in set (0.00 sec)
mysql> select substring('beijing2008',8,4),substring('beijing2008',1,7);
+------------------------------+------------------------------+
| substring('beijing2008',8,4) | substring('beijing2008',1,7) |
+------------------------------+------------------------------+
| 2008                         | beijing                      |
+------------------------------+------------------------------+
1 row in set (0.00 sec)

數值函式

這裡寫圖片描述

mysql> select abs(-0.8),abs(0.8);
+-----------+----------+
| abs(-0.8) | abs(0.8) |
+-----------+----------+
|       0.8 |      0.8 |
+-----------+----------+
1 row in set (0.01 sec)

mysql> select ceil(-0.8),ceil(0.8);
+------------+-----------+
| ceil(-0.8) | ceil(0.8) |
+------------+-----------+
|          0 |         1 |
+------------+-----------+
1 row in set (0.02 sec)

mysql> select floor(-0.8),floor(0.8);
+-------------+------------+
| floor(-0.8) | floor(0.8) |
+-------------+------------+
|          -1 |          0 |
+-------------+------------+
1 row in set (0.00 sec)

mysql> select mod(15,10),mod(1,11),mod(null,10);
+------------+-----------+--------------+
| mod(15,10) | mod(1,11) | mod(null,10) |
+------------+-----------+--------------+
|          5 |         1 |         NULL |
+------------+-----------+--------------+
1 row in set (0.01 sec)

mysql> select rand(),rand();
+---------------------+---------------------+
| rand()              | rand()              |
+---------------------+---------------------+
| 0.14735915059909147 | 0.09535266654133114 |
+---------------------+---------------------+
1 row in set (0.00 sec)

mysql> select ceil(100*rand()),ceil(100*rand());
+------------------+------------------+
| ceil(100*rand()) | ceil(100*rand()) |
+------------------+------------------+
|                4 |               89 |
+------------------+------------------+
1 row in set (0.01 sec)

mysql> select round(1.1),round(1.1,2),round(1,2);
+------------+--------------+------------+
| round(1.1) | round(1.1,2) | round(1,2) |
+------------+--------------+------------+
|          1 |         1.10 |          1 |
+------------+--------------+------------+
1 row in set (0.01 sec)

mysql> select round(1.235,2),truncate(1.235,2);
+----------------+-------------------+
| round(1.235,2) | truncate(1.235,2) |
+----------------+-------------------+
|           1.24 |              1.23 |
+----------------+-------------------+
1 row in set (0.00 sec)

日期和時間函式

這裡寫圖片描述

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2016-09-21 |
+------------+
1 row in set (0.00 sec)

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 10:22:39  |
+-----------+
1 row in set (0.00 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2016-09-21 10:22:48 |
+---------------------+
1 row in set (0.00 sec)

mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
|            1474424612 |
+-----------------------+
1 row in set (0.00 sec)

mysql> select from_unixtime(1474424612);
+---------------------------+
| from_unixtime(1474424612) |
+---------------------------+
| 2016-09-21 10:23:32       |
+---------------------------+
1 row in set (0.00 sec)

mysql> select from_unixtime(1);
+---------------------+
| from_unixtime(1)    |
+---------------------+
| 1970-01-01 08:00:01 |
+---------------------+
1 row in set (0.00 sec)

mysql> select week(now()),year(now());
+-------------+-------------+
| week(now()) | year(now()) |
+-------------+-------------+
|          38 |        2016 |
+-------------+-------------+
1 row in set (0.00 sec)

mysql> select hour(now()),minute(now());
+-------------+---------------+
| hour(now()) | minute(now()) |
+-------------+---------------+
|          10 |            27 |
+-------------+---------------+
1 row in set (0.00 sec)

mysql> select monthname(now());
+------------------+
| monthname(now()) |
+------------------+
| September        |
+------------------+
1 row in set (0.02 sec)

mysql日期和時間格式
這裡寫圖片描述
這裡寫圖片描述

mysql> select date_format(now(),'%M,%D,%Y');
+-------------------------------+
| date_format(now(),'%M,%D,%Y') |
+-------------------------------+
| September,21st,2016           |
+-------------------------------+
1 row in set (0.01 sec)

mysql日期間隔型別
這裡寫圖片描述

mysql> select now() current, date_add(now(),interval 31 day) after31days;
+---------------------+---------------------+
| current             | after31days         |
+---------------------+---------------------+
| 2016-09-21 11:08:33 | 2016-10-22 11:08:33 |
+---------------------+---------------------+
1 row in set (0.00 sec)

mysql> select now() current, date_add(now(),interval -31 day) before31days,date_add(now(),interval '-1_-2' year_month) before_oneyear_twomonth;
+---------------------+---------------------+-------------------------+
| current             | before31days        | before_oneyear_twomonth |
+---------------------+---------------------+-------------------------+
| 2016-09-21 11:10:34 | 2016-08-21 11:10:34 | 2015-07-21 11:10:34     |
+---------------------+---------------------+-------------------------+
1 row in set (0.00 sec)
mysql> select datediff('2015-07-06',now());
+------------------------------+
| datediff('2015-07-06',now()) |
+------------------------------+
|                         -443 |
+------------------------------+
1 row in set (0.00 sec)

流程函式

這裡寫圖片描述

測試資料

mysql> create table salary(userid int,salary decimal(9,2));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into salary values (1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,null);
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from salary;
+--------+---------+
| userid | salary  |
+--------+---------+
|      1 | 1000.00 |
|      2 | 2000.00 |
|      3 | 3000.00 |
|      4 | 4000.00 |
|      5 | 5000.00 |
|      1 |    NULL |
+--------+---------+
6 rows in set (0.00 sec)
mysql> select userid, if(salary>2000,'high','low') from salary;
+--------+------------------------------+
| userid | if(salary>2000,'high','low') |
+--------+------------------------------+
|      1 | low                          |
|      2 | low                          |
|      3 | high                         |
|      4 | high                         |
|      5 | high                         |
|      1 | low                          |
+--------+------------------------------+
6 rows in set (0.00 sec)

mysql> select userid,ifnull(salary,0) from salary;
+--------+------------------+
| userid | ifnull(salary,0) |
+--------+------------------+
|      1 |          1000.00 |
|      2 |          2000.00 |
|      3 |          3000.00 |
|      4 |          4000.00 |
|      5 |          5000.00 |
|      1 |             0.00 |
+--------+------------------+
6 rows in set (0.00 sec)
mysql> select userid, case when salary<=2000 then 'low' else 'high' end from salary;
+--------+---------------------------------------------------+
| userid | case when salary<=2000 then 'low' else 'high' end |
+--------+---------------------------------------------------+
|      1 | low                                               |
|      2 | low                                               |
|      3 | high                                              |
|      4 | high                                              |
|      5 | high                                              |
|      1 | high                                              |
+--------+---------------------------------------------------+
6 rows in set (0.00 sec)

mysql> select userid,case salary when 1000 then 'low' when 2000 then 'mid' else 'high' end from salary;
+--------+-----------------------------------------------------------------------+
| userid | case salary when 1000 then 'low' when 2000 then 'mid' else 'high' end |
+--------+-----------------------------------------------------------------------+
|      1 | low                                                                   |
|      2 | mid                                                                   |
|      3 | high                                                                  |
|      4 | high                                                                  |
|      5 | high                                                                  |
|      1 | high                                                                  |
+--------+-----------------------------------------------------------------------+
6 rows in set (0.00 sec)

其他函式

這裡寫圖片描述

mysql> select database();
+------------+
| database() |
+------------+
| test       |
+------------+
1 row in set (0.00 sec)

mysql> select version();
+------------+
| version()  |
+------------+
| 5.6.31-log |
+------------+
1 row in set (0.00 sec)

mysql> select user();
+----------------+
| user()         |
+----------------+
| [email protected] |
+----------------+
1 row in set (0.00 sec)

mysql> select inet_aton('192.168.0.7');
+--------------------------+
| inet_aton('192.168.0.7') |
+--------------------------+
|               3232235527 |
+--------------------------+
1 row in set (0.00 sec)

mysql> select inet_ntoa(3232235527);
+-----------------------+
| inet_ntoa(3232235527) |
+-----------------------+
| 192.168.0.7           |
+-----------------------+
1 row in set (0.00 sec)

使用inet_aton檢視192.168.1.3和192.168.1.20之間有多少個ip地址

mysql> create table ipaddr (ip varchar(15));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into ipaddr values ('192.168.1.1'),('192.168.1.3'),('192.168.1.6'),('192.168.1.10'),('192.168.1.20'),('192.168.1.30');
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select * from ipaddr;
+--------------+
| ip           |
+--------------+
| 192.168.1.1  |
| 192.168.1.3  |
| 192.168.1.6  |
| 192.168.1.10 |
| 192.168.1.20 |
| 192.168.1.30 |
+--------------+
6 rows in set (0.00 sec)


mysql> select * from ipaddr where inet_aton(ip)>=inet_aton('192.168.1.3') and inet_aton(ip)<=inet_aton('192.168.1.20');
+--------------+
| ip           |
+--------------+
| 192.168.1.3  |
| 192.168.1.6  |
| 192.168.1.10 |
| 192.168.1.20 |
+--------------+
4 rows in set (0.00 sec)

password使用者系統使用者,md5用於應用

mysql> select password('123456');
+-------------------------------------------+
| password('123456')                        |
+-------------------------------------------+
| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-------------------------------------------+
1 row in set (0.00 sec)

mysql> select md5('123456');
+----------------------------------+
| md5('123456')                    |
+----------------------------------+
| e10adc3949ba59abbe56e057f20f883e |
+----------------------------------+
1 row in set (0.00 sec)

相關推薦

MySQL - 常用函式

SELECT truncate(1314.1314*100, -3); # 131000 SELECT truncate(1314.1314, 0); # 1314 SELECT FORMAT(423423234.65534453,2); # 423,423,234

7 mysql常用函式

1  檢視資料庫版本       2  檢視當前資料庫         3  檢視當前登入使用者名稱           4&nbs

一步一步學MySQL---18 MySQL常用函式(2)

18.2 數值函式 MySQL所支援的常用數值函式有: 函式 功能 ABS(x) 返回數值x的絕對值 CEIL(x) 返回大於x的最小整數值

一步一步學MySQL---18 MySQL常用函式(1)

18.1 字串函式 MySQL所支援的字串函式有: 函式 功能 CANCAT(str1,str2,…strn) 連線字串str1、str2、……、strn為一個完整字串

一步一步學MySQL---18 MySQL常用函式(4)

18.4.1 系統資訊函式 MySQL支援的常用系統資訊函式有: 函式 作用 VERSION() 返回資料庫的版本號 DATABASE() 返回當

一步一步學MySQL---18 MySQL常用函式(3)

18.3 日期和時間函式 MySQL所支援的日期和時間函式有: 函式 功能 CURDATE() 獲取當前日期 CURTIME() 獲取當前時間

mysql/常用函式

常用函式 1。oracle/decode()函式 & mysql /case when .. then ..else..end函式 (1)oracle處理返回結果:如處理ischeck值,值為2時,設定該值為0,否則為ischeck本身。       select

mysql常用函式以及坑點記錄(持續更新)

函式 字串轉int:         CONVERT(ID,SIGNED) 字串拼接:         #拼接字串(某一欄位為NULl,返回NUll)     &

MySQL常用函式總結及用法

1、字串函式ascii(str)   返回字串str的第一個字元的ascii值(str是空串時返回0)  mysql> select ascii('2');    -> 50  mysql> select ascii(2);&nbs

MySQL-常用函式

#一:字串擷取處理 #注:mysql中處理字串時,預設第一個字元下標為1SELECT LEFT('123456789',2) #left(str, length) 說明:left(被擷取欄位,擷取長度) SELECT RIGHT('123456789',2) #right(str, len

MySQL常用函式

一、數學函式 ABS(x)                    返回x的絕對值 BIN(x)          返回x的二進位制(OCT返回八進位制,HEX返回十六進位制) CEILING(x)                返回大於x的最小整數值 EXP(x)      

mysql常用函式總結

一、數學函式 ABS(x) 返回x的絕對值 BIN(x) 返回x的二進位制(OCT返回八進位制,HEX返回十六進位制) CEILING(x) 返回大於x的最小整數值 EXP(x) 返回值e(自然對數的底)的x次方 FLOOR(x) 返

資料庫(DB)、關係型資料庫、Mysql(3種類型)、mysql常用函式(3種)

一、資料庫的發展史    (1)手工管理:藏書閣,圖書館。             優點:分類管理,直觀性強             缺點:資訊流動慢,不方便    (2)檔案管理:計算機檔案系統,圖書管理系統             優點:分類管理,層次分明        

mysql常用函式-使用總結

1.產生隨機數 產生0-1時間的隨機數 rand() 產生0到100間的隨機數 rand() * 100 產生0到100間的隨機整數數 floor(rand() * 100) 產生50到100間的

Mysql 常用函式總結(加密解密函式

MD5(str) md5加密 SELECT MD5('hello') 5d41402abc4b2a76b9719d911017c592 sha(str) sha加密 SELECT SH

MySQL-----常用函式整理

/*日期函式*/ select year(now()); #返回年份 select month(localtime);#返回月份 select sysdate(); #返回當前時間 select(localtime);#返回當前時間,注:now()、localtime()、localtime、sysd

mysql常用函式----日期和時間處理函式

對於每個型別擁有的值範圍以及並且指定日期何時間值的有效格式的描述見7.3.6 日期和時間型別。 這裡是一個使用日期函式的例子。下面的查詢選擇了所有記錄,其date_col的值是在最後30天以內: mysql> SELECT something FROM table

mysql 常用函式

字串函式 mysql> select concat('a','b','c'),concat('a',null); +---------------------+------------------+ | concat('a','b','c')

MySql基礎知識-----MySQL常用函式

MySQL中的常用函式分別為:(1)字串函式(2)數值函式(3)日期和時間函式(4)系統資訊函式1. 使用字串函式MySQL所支援字串函式如下表所示:函式功能concat(str1,str2...strn)連線字串str1,str2.....strn為一個完整的字串inser

Mysql常用函式(帶案例)

SELECT `student_name`, IFNULL( `audit_description`, '還未稽核' ) AS 'shenhe' FROM `student_data` -- 4.NULLIF(expr