[数据库]sql使用总结

sql语句的分类

DML:数据操作语言:用于检索或者修改数据;
        DDL:数据定义语言:用于定义数据的结构,如创建、修改或者删除数据库的对象;
        DCL:数据控制语言:用于定义数据库用户的权限; 
sql的基本语句

 
基本操作:


sql的高级查询语句 : 
union(联合多个表的内容,查询列数必须相同) except(求差集)  intersect(求交集) | lleft join right join(这两个会搜出不满足on条件的相应表中的所有数据)  join就不会
| group by


1几个高级查询运算词    查询必须包含相同的列数   all 允许重复   all不允许重复

A: UNION 运算符
把两个表中的所有数据,组合在一起,两个表中都有id,name字段   
B算符 except

EXCEPT 返回两个结果集的差(即从左查询中返回右查询没有找到的所有非重复值)。

select [id],[name] from [MYDB].[dbo].[user]  except SELECT [id],[name] from [MYDB].[dbo].[coustom] 

 C  运算符  intersect

INTERSECT 返回 两个结果集的交集(即两个查询都返回的所有非重复值)。

select [id]  from [MYDB].[dbo].[user]  INTERSECT  SELECT [id]   from [MYDB].[dbo].[coustom]  


Aleft join:左链接
外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    select A.*, B.c, B.d, B.f from table_AAA A LEFT OUT JOIN 
table_BBB B ON a.a = b.c
Bright join: 右连接
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
left right join 会把其他的数据一块select出来,而inner join 只把约束的数据找出来
例子:
表名字:stu_no


表名字:stu_score


需要以下格式显示
no
name
class
code
101
xiaoming
yuwen
88
...







语句如下:   selectA.no  as no,   A.name as name,   B.ckass as class,   B.code as code  from stu_no A  join stu_score B  on A.name = B.name
                                如果join没有修饰符,那么结果只显示满足on条件的条目,结果如下图

语句如下:  select A.no   as no,    A.name as name,   B.ckass as class,   B.code as code  from stu_no right  join stu_score  on A.name = B.name
                               right join修饰符,会显示B表的其他内容  ,如下图

语句如下:   select A.no   as no,    A.name as name,   B.ckass as class,   B.code as code  from stu_no A left  join stu_score  on A.name = B.name
                               right join修饰符,会显示B表的其他内容  ,如下图

一般group by 和

聚合函数

配合使用


  • where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
  • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

错误的用法:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值