数据操纵语句DML(一)

        数据操作语句(DML),包含了 SELECT、UPDATE、INSERT、DELETE 等语句。下面来详细讲解SELECT的查询操作。

一、选定列

1、查询了所有列,*表示所有列
      select * from 表名  

2、选择特定列
       select 列名,列名... from 表名

3、给列取别名(AS,也可以不用)
       select 列名 as 别名,列名 as 别名...  from 表名


二、选定表中的元组

1、消除取值相同的行(distinct)
     查询的列名中去掉所以重复项。
select distinct 列名 from 表名

2、确定范围(between ... and ..)
     查询20到30的数据。
select * from 表名 where 列名 between 20 and 30   

3、确定集合(IN)
 select * from 表名 where 列名 IN('计算机','信息管理','口语'

4、字符串匹配(LIKE)
_  :下划线匹配一个字符;
% :匹配n个字符;
[  ] :匹配【】中的任意一个字符;
[^ ]:不匹配【】中的任意一个字符;
     select * from 表名 where 列名 like '[张李]%'    //查询列名中以张或李开头的数据
  
5、空值查询
IS NULL:为空;
IS NOT NULL:不为空;
select * from 表名 where 列名 is null   //查询列名为空的所以数据

6、多重查询(and)

三、对查询结果进行排序

order by 列名 ASC/DESC :对列名中的数据升序或降序排列
Select * from SC where order by Sno desc    //对表SC中的Sno列进行降序排列 

四、聚合函数

count(*)  :统计查询元组的个数;
count(distinct 列名):统计本列的个数,distinct去掉重复列;
sum(列名):计算列的和;
avg( 列名 ) :计算列的平均值;
max( 列名 ):计算列的最大值;
min( 列名 ) :计算列的最小值;
1、统计SC表中Sno学好为'123'的学生考试总成绩(Grade)
select sum(Grade) from SC where Sno = '123'

2、查询SC表中Cno课程中c001课程的最高成绩Grade
select max(grade) 最高分,min(grade) 最低分 from SC where Cno='c001'

注意:1、计算返回值得类型是计算列中的类型;
          2、聚合函数不能出现在where中;

五、分组统计(GROUP BY)

GROUP BY 分组依据列 HAVING 条件
分组依据列进行分组,having 表示分组后进行条件判断。

1、统计SC表中每门课Cno的选课人数Sno
select Cno 课程号,count(Sno) 选课人数 from SC group by Cno

2、选择SC表中选课门数Cno超过3门的学生学号Sno和选课门数
select Sno,count(*) 选课门数 from SC group by Sno having count(*)>3

注意:1、查询选择的列中只能有聚合函数和分组依据列;
          2、当有多个分组依据列是,以最小组为单位进行统计;
          3、group by 后只能用having,不能用where;
          4、可以在分组前使用where,在进行分组,有利于提高效率;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值