SQL笔记(二)

1.SQL中的子句

作为限定条件的where

和like关键字类似的starting with

select A from  table  where  A  like  ('Ca%')

select A from table  where  A  starting  with  ('Ca')

按顺序排列:ORDER  BY   后跟排序字段

默认为ASC升序,降序为DESC。联合使用时第一字段为优先排序。

GROUP  BY的使用(跟在WHERE后面)

如表:ID    雇员   花费    备注

查询雇员的总花费及用途数

select ID, SUM(花费),COUNT(雇员)  from  table  group  by  雇员

当要求分组结果返回多个数值时不能再在SELECT子句中使用除分组列以外的列,将会出错。

HAVING子句(一般写在末尾和GROUP  BY同时使用)

汇总函数AVG()不能使用在WHERE中

select TEAM,AVG(SALARY) FROM table GROUP BY TEAM  HAVING AVG(SALARY) <38000;返回平均工资少于38000的组

HAVING子句可多个条件,也可以对select中没出现过的字段汇总,IN操作符也可以在HAVING中使用

WHERE和HAVING一般不同时使用,因为WHERE已经先过滤掉了数据。

2.表的联合

等值联合

不使用WHERE的联合是笛卡尔联合,对每一行进行交叉联合,所以需要找到相同的标识符进行联合,如:

select  T1.A,T2.B  from  T1,T2  where  T1.ID=T2.ID;

如果是多个表的联合。就需要多个表间相同标识的联合,通常根据给定的条件返回行数最少的表作为驱动表,也就是基表,如上面的T1。

不等值联合

如sekct T1.A,T2.B  from  T1,T2  where  T1.ID>T2.ID;  这种联合不常用

内部联合和外部联合

内部联合:没有用where,而是from 表1 JOIN 表2  ON  表2.B=54

外部右联合:from 表1 RIGHT OUTER JOIN 表2  ON  表2.B=54 ,返回右边表集里的全部记录,如果表2.B<>54,则左边补空值。

外部左联合:如果基表数小于联合表,结果和内部联合一样。

也可以使用+表示外部联合,如from T1,T2 where T1.ID=T2.ID(+)  则T2行将全部显示

表的自我联合 

用于检查数据是否一致或者重复,如编号不能重复,若重复,检查:

select  T1.编号,T1.描述,T2.编号,T2.描述 from  T T1,T T2 where T1.编号=T2.编号  and  T1.描述<>T2.描述。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值