MySql查询语句小汇总一(DQL语句)

 

 

DQL语句:

数据查询语言,用来查询记录(数据);主要是对表记录的查询。(重点

 

一:基本查询

 

1,查看所有列:select * from 表名;

       (其中“*”表示所有列)

      

      

2,查询指定字段信息:

       Select 列1,列2…from 表名;

       (只查询name列和age列的信息)

      

      

3,数量类型的列可以做加、减、乘、除计算:

       将stu表中的age列字段数值加3:select name,age+3 from stu;

      

      

4,表中的字符串课做连续运算:

       求stu表中age字段记录数:

      

      

5,给列起别名:select 列名 as 别名 from 表名:

       将name列命名为“姓名”:select name as 姓名,age from stu;

       (其中as可以省略)

      

 

 

二:条件控制

 

  1. 条件查询:

查询语句可以通过where字句来控制记录:

例:查询年龄大于25岁的人的信息:

Select * froms stu where age>25;

 

2,模糊查询:当我们想查询姓张的人数时,只需要查这个姓氏就可以,就可以使用模糊查询(模糊查询使用运算符:like,其中“_”表示匹配任意一个字符;“%”表示匹配多个字符)

       例1:查询姓张的,并且名字是两个字的人的信息:

       Select * from stu where name like ’张_’;

      

       例2:查询表中名字带有“某”字的人的信息:

       Select * from stu where name like ‘%某%’;

      

 

3,排序查询:排序查询需要用到关键字:order by ,然后末尾加关键字asc表示升序排序,desc表示降序排序(默认情况下是升序排序)

       将表中信息按年龄升序排序:

       Select * from stu order by age desc;

      

      

4,使用多列作为排序条件:

       将表中信息按年龄升序排序,若年龄相同,则按照id降序排序:

       Select * from stu order by age asc,id desc;

      

      

 

5,聚合函数:聚合函数用来做某列的纵向运算

       5.1,count函数:

              计算表中所有列不为空的行数select count(*) from stu;

             

             

              计算age列不为空的行数:

              Select count(age) from stu;

             

             

       5.2,max(min)函数:查询最大年龄

              Select max(age) from stu;

             

             

       5.3,sum函数:计算左右人的年龄总和

              Select sum(age) from stu;

             

                           

       5.4,avg函数:计算所有人的平均年龄

              Select avg(age) from stu;

             

             

 

 

 

 

 

6,分组查询:分组查询是把记录使用某一列进行分许,然后查询组信息

       例1:查看所有性别的记录数

       Select sex,count(*) from stu group by sex;

      

      

       例2:根据性别分组,查询该性别中的最大年龄的人的姓名,年龄等信息:

       Select sex,max(age) from stu group by age;

      

 

       例3:组条件:

       以class(学科)分组,查询每组的记录数,条件为记录数大于等于3

       Select class,count(*) from stu group by class having count(*)>=3;

      

 

 

一些案例题:

1,查询出部门编号为30的所有员工

      select * from emp where deptno=30;

2,查询所有销售员的姓名、编号和部门编号

      select ename,empno,deptno from emp where job='销售员';

3,查询奖金高于工资的员工

      select ename from emp where comm > sal;

4,查询奖金高于工资60%的员工

      select ename from emp where comm > sal*0.6;

5,查询部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料

      select * from emp where (deptno = 10 and job='经理') or (deptno=20 and job='销售员');

6,查询部门编号为10中所有经理,部门编号为20中所有销售员,还有既不是经理又不是销售员但其工资大于或等于20000的所有员工资料

      select * from emp where (deptno = 10 and job='经理') or (deptno=20 and job='销售员')or (job not in ('经理','销售员') and         sal>20000);

7,查询无奖金或奖金低于1000的员工

     select * from emp where comm is null or comm<1000;

8,查询名字由三个字组成的员工

     select * from emp where ename like '___';

9,查询2000年入职的员工

      select * from emp where hiredate like '2000-%';

10,查询所有员工详细信息,用编号升序排序

       select * from emp order by empno asc;

11,查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序

      select * from emp order by sal desc,hiredate asc;

12,查询每个部门的平均工资

      select deptno,avg(*) 平均工资 from emp group by deptno;

13,查询每个部门的雇员数量

      select deptno,count(*) 数量 from emp group by deptno;

14,查询每种工作的最高工资、最低工资、人数

       select job,max(*) 最高工资,min(*) 最低工资,count(*) 人数 from emp group by job;

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是王小贱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值