MySql之表记录操作(查询)

1、字段(列)控制

1).查询所有列

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;


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值