Mysql常用运算符与函数汇总
我们先把数据表建好 use test; create table `employee`( emp_no int unsigned,emp_name varchar(30),emp_sex varchar(3),emp_age tinyint unsigned,sal double,history datetime ); insert into employee values(1,'张三','男',18,5000,'2012-04-23'),(2,'李四',27,4500,'2013-05-23'),(3,'王五',23,4700,'2012-04-21'),(4,'子龙',19,3800,'2011-03-04'),(5,'李白',15,6200,'2015-09-09'),(6,'刘备',28,2500,'2016-02-11'),(7,'吕布',21,6000,'2010-10-18'),(8,'尚香','女',16,'2011-09-26'),(9,'小乔',null,'2013-07-05'),(10,'大乔','2017-09-01'); 常用的运算符: select * from employee where sal = 3800; select * from employee where sal = null; --这里查询不到为null的数据 2: 等于( <=> ) select * from employee where sal <=> 3800; select * from employee where sal <=> null; --这里可以查询到为null的数据 3: is判断(null) select * from employee where sal is null; select * from employee where sal is not null; 4: null值判断还可以使用isnull(); select * from employee where isnull(sal); select * from employee where !isnull(sal); 5: 在区间(between)内 between min and max ps:这里是一个闭区间
6: 不在区间内 7: and 和 or select * from employee where sal not between 4500 and 5000 or sal is null; select * from employee where sal = 4500 and emp_sex = '女'; 8: 小于(<),大于(>),小于等于(<=),大于等于(>=) *************************************************************************************************************** 数学函数 select rand() from dual; --dual是一个伪表 select 1+1 from dual; select rand(); --可以简写 2: least(value1,value2,...) 返回最小值 select least(54,76,4,65,87,56,654,45,1,76); select least(54,76) as min_value; --列名可以起一个别名 3: greatest(value1,...) 返回最大值
4: round(M,D); 返回M的四舍五入的值,D表示要保留几们小数,默认值是0 select round(1.69); select round(1.69,1); 5: abs() 绝对值 select 5-10; select abs(5-10); *************************************************************************************************************** 汇总函数 1: avg(); select * from employee where sal >= 6000; select avg(sal) from employee where sal >= 6000; 2: count() select count(*) from employee; select count(emp_name) from employee; select count(sal) from employee; --打印9 这里会忽略null值 select count(*) from employee where sal >= 4000; select count(*) from employee where sal <= 4000 or sal is null; 3: sum()
4: min()
5: max()
*************************************************************************************************************** 日期函数 1: 获取当前的日期时间 select now(),sysdate(),current_timestamp(); select now(6),sysdate(6),current_timestamp(6); ps: now(),current_timestamp();没有区别,表示sql开始执行时的时间 sysdate()表示这个函数开始时间 2: 获取当前日期 3: 获取当前时间 4: 日期的加运算date_add select history,date_add(history,interval '1 12:10' day_minute) from employee; --date_add(history,interval '1 12:10' day_minute) select history,interval '1-1' year_month) from employee; --date_add(history,interval '1-1' year_month) select history,interval '1' second) from employee; --date_add(history,interval '1' second) 5: 日期的减运算data_sub
6: 计算日期差
7: 获取日期的指定部分(把日期转换为指定的格式) date_format() select history,date_format(history,'%Y年%m月%d号') from employee; select history,'%d号') from employee; select history,'%Y年%m月%d号 %H时%i分%s秒') from employee; 8: 计算出一个日期是星期几
9: 中文日期字符串转换日期str_to_date() insert into employee values(11,'张飞',22,3000,'2017年02月01号'); --报错 insert into employee values(11,str_to_date('2017年02月01号','%Y年%m月%d号 %H时%i分%s秒')); insert into employee values(12,'二哥',str_to_date('2017年02月01号 23时02分02秒','%Y年%m月%d号 %H时%i分%s秒')); 字符串函数 1: left(str,len) 返回字符串str的左端len个字符
2: length()
3: lower(str) 返回小写的字符串str
4: substring() 取子字符串,第二个参数是截取的起始位置,第三个参数是要截取的长度
5: concat() 字符串拼接
6: replace(替换
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |