SELECT * FROM 表名;2).查询指定列
SELECT 列名1[,列名2,列名2,...] FROM 表名;3).重复的记录只出现一次
SELECT DISTINCT * | 列名1[,列名2,列名2,...] FROM 表名;4).列运算
Ⅰ.数据相同的列可以做加、减、乘、除运算
SELECT sale*1.5 FROM emp;SELECT sale+comm FROM emp;Ⅱ.字符串类型可以做连续运算
SELECT CONCAT('$',sal) FROM emp;Ⅲ.转换NULL值
有时需要把NULL值转换成其他值,例如comm+1000时,如果comm列存在NULL值,那么NULL+1000还是NULL,而我们希望把NULL当成0来运算.SELECT IFNULL(comm,0)+1000 FROM emp;Ⅳ.给列起别名(as在使用时可以省略)
SELECT IFNULL(comm,0)+1000 AS 奖金 FROM emp;2、条件控制
1).条件查询
与UPDATE与DELETE语句一样,SELECT语句也可以使用WHERE子句来控制记录。SELECT empno,ename,sal,comm FROM emp WHERE sal>1000 AND comm IS NOT NULL;SELECT empno,ename,sal,comm FROM emp WHERE sal BETWEEN 20000 AND 30000;SELECT empno,ename,sal,comm FROM emp WHERE job IN ('经理','董事长');2).模糊查询
当你想查询姓张,并且姓名一共两个字的员工时,这时就可以使用模糊查询,模糊查询使用运算符LIKE。Ⅰ._匹配一个任意的字符,注意只匹配一个字符而不是多个。
SELECT * FROM emp WHERE ename LIKE '张_';Ⅱ.%匹配0~N个任意字符,当查询姓张,并且不管名字长度时可以使用。
SELECT * FROM emp WHERE ename LIKE '张%';Ⅲ.当查询名字包含张字的员工时,可以使用以下语句
SELECT * FROM emp WHERE ename LIKE '%张%';Ⅳ.当模糊语句只有一个%时,此条件等同于不存在,但是姓名为NULL的查询不出来。
SELECT * FROM emp WHERE ename LIKE '%';3、排序
使用ORDER BY进行排序。1).升序:使用关键词ASC,并且可以省略,它是默认的
SELECT * FROM emp ORDER BY sal ASC;2).降序:使用关键词DESC,不能省略
SELECT * FROM emp ORDER BY comm DESC;3).使用多列作为排序条件,按照书写顺序,在前的先排序,前面相同时,再按照后一条件进行排序,以此类推。
SELECT * FROM emp ORDER BY sal ASC,comm DESC;4、聚合函数
聚合函数用来做某列的纵向运算。1).COUNT:计算指定列不为NULL的记录的行数。
SELECT COUNT(*) FROM emp;2).MAX:找出指定列最大的值
SELECT MAX(sale) FROM emp;3).MIN:找出指定列最小的值
SELECT MIN(sale) FROM emp;4).SUM:计算指定列的值的总和
SELECT SUM(sale) FROM emp;5).AVG:计算指定列的值的平均值
SELECT AVG(sale) FROM emp;5、分组查询
分组查询是把记录使用某一列进行分组,然后查询组信息。例如:查询所有部门的记录数。SELECT job,COUNT(*) FROM emp GROUP BY job; 查询每种工作的最高工资。SELECT job,MAX(sale) FROM emp GROUP BY job;*组条件HAVING的加入:WHERE无法使用聚合函数,而如果没有HAVING就无法进行相关的测试了。
例如:查询所有部门人数大于100的部门SELECT job,COUNT(*) FROM emp GROUP BY job HAVING COUNT(*) > 100;6、LIMIT子句
LIMIT用于限制查询结果的起始行,以及总行数。例如:查询起始行为第五行,一共查询三行记录。SELECT * FROM emp LIMIT 4,3;
新闻热点
疑难解答