数据库之常用查询、伪表
-- 升序 SELECT * FROM emp ORDER BY sal ASC; -- 降序 SELECT * FROM emp ORDER BY sal DESC; -- 输出comm字段为null的记录 SELECT * FROM emp WHERE comm IS NULL; -- 输出comm字段不为null的记录 SELECT * FROM emp WHERE comm IS NOT NULL; -- 统计emp表中 总数、薪水总和、薪水平均值、薪水最高值、薪水最低值 SELECT COUNT(*),SUM(sal),AVG(sal),MAX(sal),MIN(sal) FROM emp ; -- 通过伪表连接字符串 输出 aaxx SELECT CONCAT('aa','xx') FROM DUAL; -- 从字符串hello的第3个字符开始用m替换2个字符 输出hemo SELECT INSERT ('hello',3,2,'m') FROM DUAL; -- 从字符串hello的(从1起算)第3个字符开始提取2个字符 输出ll SELECT SUBSTRING('hello',3,2);
-- 当前年月日 当前时分秒 当前年月日时分秒 SELECT CURDATE(),CURTIME(), NOW(); -- 算两参数相隔天数 SELECT DATEDIFF(CURDATE(), '2013-08-09') ; -- now()开始100天之后的年月日时分秒 SELECT ADDDATE(NOW(),100) ;
-- 算所有员工的工龄:FLOOR() 取整,DATEDIFF()相隔天数,/365按年算 SELECT *,FLOOR(DATEDIFF(CURDATE(),hiredate)/365)工龄 FROM emp; -- 限定行数5 SELECT* FROM emp LIMIT 5; -- 限定(0起算)第1页的5条记录 limit [下标],[行数] SELECT* FROM emp LIMIT 0,5; -- 查询薪水比A少的员工 SELECT * FROM emp WHERE sal < (SELECT sal FROM emp WHERE ename='A') -- IN(x,x,x) SELECT * FROM emp WHERE deptno IN (10,20,30); SELECT * FROM emp WHERE deptno NOT IN (10,20);
常用字符串函数
时间函数
数学函数