MySQL数据库--运算符与函数
运算符与函数的具体分类如下:
1、字符函数;
2、数值运算符与函数;
3、比较运算符与函数;
4、日期时间函数;
5、信息函数;
6、聚合函数;
一、字符函数:
1、CONCAT():字符连接;
SELECT CONCAT('imooc','MySQL');
SELECT CONCAT('imooc','-','MySQL');
如果想要将一张数据表中的某两个字段连接在一起输出,则可以使用如下的命令:
SELECT CONCAT(first_name,last_name) AS fullname FROM test;(假设test数据表中有两个字段的名称为first_name与last_name)。
2、CONCAT_WS():使用指定的分隔符进行字符连接;
SELECT CONCAT_WS('|','A','B','C');
3、FORMAT():数字格式化;
SELECT FORMAT(12560.75,2);(结果保留两位小数位输出12560.75)。
SELECT FORMAT(12560.75,1);(结果保留1位小数位输出12560.8)。
3、LOWER():转换成小写字母;
SELECT LOWER('MySQL');
3、LOWER():转换成大写字母;
SELECT UPPER('mysql');
4、LEFT():获取左侧字符;
SELECT LEFT('MySQL',2);(输出左侧两个字符:My)。
将LOWER()和LEFT()函数嵌套使用:SELECT LOWER(LEFT('MySQL',2))。
5、RIGHT():获取右侧字符;
SELECT RIGHT('MySQL',3);(输出右侧三个字符:SQL)。
6、LENGTH():获取字符串长度;
SELECT LENGTH('MySQL');
空格也包含在字符串长度中:SELECT LENGTH('My SQL');
7、LTRIM():删除前导空格;
SELECT LTRIM(' MySQL ');
要证明LTRIM()函数是否生效,可以使用将LENGTH()函数和LTRIM()函数嵌套使用的方法:SELECT LENGTH(LTRIM(' MySQL '));
8、RTRIM():删除后续空格;
SELECT LENGTH(RTRIM(' MySQL '));
9、TRIM():删除前导和后续空格:
SELECT LENGTH(TRIM(' MySQL '));
如果想要删除指定的前导字符,比如'?',可以使用如下命令:
SELECT TRIM(LEADING '?' FROM '??MySQL???');
如果想要删除指定的后续字符,比如'?',可以使用如下命令:
SELECT TRIM(TRAILING '?' FROM '??MySQL???');
把指定的前导和后续字符全部删除,比如'?',可以使用如下命令:
SELECT TRIM(BOTH '?' FROM '??MySQL???');
10、REPLACE():字符串替换;
SELECT REPLACE('??My??SQL???','?',' ');
11、SUBSTRING():字符串截取;
SELECT SUBSTRING('MySQL',1,2);(输出My)
SELECT SUBSTRING('MySQL',3);(输出SQL)
SELECT SUBSTRING('MySQL',-1);(输出L)
SELECT SUBSTRING('MySQL',-3,-1);(写成这样会报错)
12、[NOT]LIKE:模式匹配;
SELECT 'MySQL' LIKE 'M%';(输出1)
假设有一张数据表test中有一个字段first_name的值为tom%,则可使用如下两条命令查找到它:
SELECT * FROM test WHERE first_name LIKE '%o%';
SELECT * FROM test WHERE first_name LIKE '%1%%' ESCAPE '1';
注意:%(百分号):代表任意个字符;
1、CEIL():进一取整;
SELECT CEIL(3.01);(输出4);
2、FLOOR():舍一取整;
SELECT FLOOR(3.99);(输出3);
3、DIV:整数除法;
SELECT 3 DIV 4;
4、MOD:取余数(取模);
SELECT 5 MOD 3;
SELECT 5.3 MOD 3;
5、POWER():幂运算;
SELECT POWER(3,3);
6、ROUND():四舍五入;
SELECT ROUND(3.652,2);
7、TRUNCATE():数字截取;
SELECT TRUNCATE(125.89,2);输出125.89;
SELECT TRUNCATE(125.89,1);输出125.8;
SELECT TRUNCATE(125.89,0);输出125;
1、[NOT]BETWEEN...AND...:[不]在范围之内;
SELECT 15 BETWEEN 1 AND 32;
SELECT 35 BETWEEN 1 AND 22;
SELECT 35 NOT BETWEEN 1 AND 22;
2、[NOT]IN():[不]在列出值范围内;
SELECT 10 IN(5,10,15,20);
SELECT 13 IN(5,10,15,20);
3、IS [NOT] NULL:[不]为空;
SELECT NULL IS NULL;
SELECT '' IS NULL;
SELECT 0 IS NULL;
假设有一张数据表test,其中有一个字段first_name的值为NULL,则可使用下面的命令查询它:
SELECT * FROM test WHERE first_name IS NULL;
或者查找字段frist_name的非空值,可以使用如下命令:
SELECT * FROM test WHERE first_name IS NOT NULL;
四、日期和时间函数
1、NOW():当前日期和时间;
SELECT NOW();
2、CURDATE():当前日期;
SELECT CURDATE();
3、CURTIME():当前时间;
SELECT CURTIME();
4、DATE_ADD():日期变化;
SELECT DATE_ADD('2014-3-12',INTERVAL 365 DAY);以天为单位,在2014-3-12的基础上增加365天;
SELECT DATE_ADD('2014-3-12',INTERVAL -365 DAY);以天为单位,在2014-3-12的基础上减去365天;
SELECT DATE_ADD('2014-3-12',INTERVAL 1 YEAR);以年为单位,在2014-3-12的基础上增加1年;
SELECT DATE_ADD('2014-3-12',INTERVAL 3 WEEK);以周为单位,在2014-3-12的基础上增加3周;
5、DATEDIFF():日期差值;
SELECT DATEDIFF('2013-3-12','2014-3-12');
6、DATE_FORMAT():日期格式化;
SELECT DATE_FORMAT('2014-3-2','%m/%d/%Y');
五、信息函数
1、CONNECTION_ID():连接ID;
SELECT CONNECTION_ID();
2、DATABASE():当前数据库;
SELECT DATABASE();
3、LAST_INSERT_ID():最后插入记录的ID;
SELECT LAST_INSERT_ID();
4、USER():当前用户;
SELECT USER();
5、VERSION():版本信息;
SELECT VERSION();
六、聚合函数
1、AVG():平均值;
SELECT AVG(id) FROM test;(计算test数据表的id字段的平均值);
SELECT AVG(id) AS avg_id FROM test;(将id字段求平均值,同时起一个别名输出);
SELECT ROUND(AVG(id),2) AS avg_id FROM test;(对取得平均值四舍五入);
2、COUNT():计数;
SELECT COUNT(id) AS counts FROM test;(求一共有多少个id);
3、MAX():最大值;
SELECT MAX(id) AS max FROM test;
4、MIN():最小值;
SELECT MIN(id) AS min FROM test;
5、SUM():求和;
SELECT SUM(id) AS sum FROM test;
七、加密函数
1、MD5():摘要函数;
SELECT MD5('admin');
2、PASSWORD():密码函数;
SELECT PASSWORD('admin');
修改MySQL数据库的密码,可以使用如下的命令:
SET PASSWORD=PASSWORD('root');
运算符与函数的具体分类如下:
1、字符函数;
2、数值运算符与函数;
3、比较运算符与函数;
4、日期时间函数;
5、信息函数;
6、聚合函数;
7、加密函数。
一、字符函数:
1、CONCAT():字符连接;
SELECT CONCAT('imooc','MySQL');
SELECT CONCAT('imooc','-','MySQL');
如果想要将一张数据表中的某两个字段连接在一起输出,则可以使用如下的命令:
SELECT CONCAT(first_name,last_name) AS fullname FROM test;(假设test数据表中有两个字段的名称为first_name与last_name)。
2、CONCAT_WS():使用指定的分隔符进行字符连接;
SELECT CONCAT_WS('|','A','B','C');
3、FORMAT():数字格式化;
SELECT FORMAT(12560.75,2);(结果保留两位小数位输出12560.75)。
SELECT FORMAT(12560.75,1);(结果保留1位小数位输出12560.8)。
3、LOWER():转换成小写字母;
SELECT LOWER('MySQL');
3、LOWER():转换成大写字母;
SELECT UPPER('mysql');
4、LEFT():获取左侧字符;
SELECT LEFT('MySQL',2);(输出左侧两个字符:My)。
将LOWER()和LEFT()函数嵌套使用:SELECT LOWER(LEFT('MySQL',2))。
5、RIGHT():获取右侧字符;
SELECT RIGHT('MySQL',3);(输出右侧三个字符:SQL)。
6、LENGTH():获取字符串长度;
SELECT LENGTH('MySQL');
空格也包含在字符串长度中:SELECT LENGTH('My SQL');
7、LTRIM():删除前导空格;
SELECT LTRIM(' MySQL ');
要证明LTRIM()函数是否生效,可以使用将LENGTH()函数和LTRIM()函数嵌套使用的方法:SELECT LENGTH(LTRIM(' MySQL '));
8、RTRIM():删除后续空格;
SELECT LENGTH(RTRIM(' MySQL '));
9、TRIM():删除前导和后续空格:
SELECT LENGTH(TRIM(' MySQL '));
如果想要删除指定的前导字符,比如'?',可以使用如下命令:
SELECT TRIM(LEADING '?' FROM '??MySQL???');
如果想要删除指定的后续字符,比如'?',可以使用如下命令:
SELECT TRIM(TRAILING '?' FROM '??MySQL???');
把指定的前导和后续字符全部删除,比如'?',可以使用如下命令:
SELECT TRIM(BOTH '?' FROM '??MySQL???');
10、REPLACE():字符串替换;
SELECT REPLACE('??My??SQL???','?',' ');
11、SUBSTRING():字符串截取;
SELECT SUBSTRING('MySQL',1,2);(输出My)
SELECT SUBSTRING('MySQL',3);(输出SQL)
SELECT SUBSTRING('MySQL',-1);(输出L)
SELECT SUBSTRING('MySQL',-3,-1);(写成这样会报错)
12、[NOT]LIKE:模式匹配;
SELECT 'MySQL' LIKE 'M%';(输出1)
假设有一张数据表test中有一个字段first_name的值为tom%,则可使用如下两条命令查找到它:
SELECT * FROM test WHERE first_name LIKE '%o%';
SELECT * FROM test WHERE first_name LIKE '%1%%' ESCAPE '1';
注意:%(百分号):代表任意个字符;
_(下划线):代表任意一个字符;
1、CEIL():进一取整;
SELECT CEIL(3.01);(输出4);
2、FLOOR():舍一取整;
SELECT FLOOR(3.99);(输出3);
3、DIV:整数除法;
SELECT 3 DIV 4;
4、MOD:取余数(取模);
SELECT 5 MOD 3;
SELECT 5.3 MOD 3;
5、POWER():幂运算;
SELECT POWER(3,3);
6、ROUND():四舍五入;
SELECT ROUND(3.652,2);
7、TRUNCATE():数字截取;
SELECT TRUNCATE(125.89,2);输出125.89;
SELECT TRUNCATE(125.89,1);输出125.8;
SELECT TRUNCATE(125.89,0);输出125;
SELECT TRUNCATE(125.89,-1);输出120;
1、[NOT]BETWEEN...AND...:[不]在范围之内;
SELECT 15 BETWEEN 1 AND 32;
SELECT 35 BETWEEN 1 AND 22;
SELECT 35 NOT BETWEEN 1 AND 22;
2、[NOT]IN():[不]在列出值范围内;
SELECT 10 IN(5,10,15,20);
SELECT 13 IN(5,10,15,20);
3、IS [NOT] NULL:[不]为空;
SELECT NULL IS NULL;
SELECT '' IS NULL;
SELECT 0 IS NULL;
假设有一张数据表test,其中有一个字段first_name的值为NULL,则可使用下面的命令查询它:
SELECT * FROM test WHERE first_name IS NULL;
或者查找字段frist_name的非空值,可以使用如下命令:
SELECT * FROM test WHERE first_name IS NOT NULL;
四、日期和时间函数
1、NOW():当前日期和时间;
SELECT NOW();
2、CURDATE():当前日期;
SELECT CURDATE();
3、CURTIME():当前时间;
SELECT CURTIME();
4、DATE_ADD():日期变化;
SELECT DATE_ADD('2014-3-12',INTERVAL 365 DAY);以天为单位,在2014-3-12的基础上增加365天;
SELECT DATE_ADD('2014-3-12',INTERVAL -365 DAY);以天为单位,在2014-3-12的基础上减去365天;
SELECT DATE_ADD('2014-3-12',INTERVAL 1 YEAR);以年为单位,在2014-3-12的基础上增加1年;
SELECT DATE_ADD('2014-3-12',INTERVAL 3 WEEK);以周为单位,在2014-3-12的基础上增加3周;
5、DATEDIFF():日期差值;
SELECT DATEDIFF('2013-3-12','2014-3-12');
6、DATE_FORMAT():日期格式化;
SELECT DATE_FORMAT('2014-3-2','%m/%d/%Y');
五、信息函数
1、CONNECTION_ID():连接ID;
SELECT CONNECTION_ID();
2、DATABASE():当前数据库;
SELECT DATABASE();
3、LAST_INSERT_ID():最后插入记录的ID;
SELECT LAST_INSERT_ID();
4、USER():当前用户;
SELECT USER();
5、VERSION():版本信息;
SELECT VERSION();
六、聚合函数
1、AVG():平均值;
SELECT AVG(id) FROM test;(计算test数据表的id字段的平均值);
SELECT AVG(id) AS avg_id FROM test;(将id字段求平均值,同时起一个别名输出);
SELECT ROUND(AVG(id),2) AS avg_id FROM test;(对取得平均值四舍五入);
2、COUNT():计数;
SELECT COUNT(id) AS counts FROM test;(求一共有多少个id);
3、MAX():最大值;
SELECT MAX(id) AS max FROM test;
4、MIN():最小值;
SELECT MIN(id) AS min FROM test;
5、SUM():求和;
SELECT SUM(id) AS sum FROM test;
七、加密函数
1、MD5():摘要函数;
SELECT MD5('admin');
2、PASSWORD():密码函数;
SELECT PASSWORD('admin');
修改MySQL数据库的密码,可以使用如下的命令:
SET PASSWORD=PASSWORD('root');