sql查询同一字段的多条数据_SQL数据查询相关内容详解

b817e178dae039628438ff212bb5fc09.png

1、精确(条件)查询

select into 列名 from 表名 where 条件 order by 排序的列名 [asc升序或者 desc降序]

1.查询空值行

select Name from Teacher where Salary is null
d5c3386b1840ea4cc3aa6fd9fdf74b69.png

2.查询返回限制行数(关键字:top percent)

显示Name列的前三行 top 为关键字

select top 3 Name from Teacher 
d279a1718246e447e348af5c66a1f88f.png

3.显示Name列的60% ,percent 为关键字

select top 60 percent Name from Teacher
018d1bc8dfe50d5541aa8fa3b2061339.png

f0ad20cbcd800ec274f89a66533e2f66.png

2、模糊(条件)查询

1.使用like类型查询

说明:like运算符只用于字符串,所以仅与char和varchar数据类型联合使用

select * from Teacher where Name like 'a%'
ba8a63dff3b1b59306b3f3e5ef9d5445.png

2.between范围查询

select * from Teacherwhere Age between 21 and 23 
1fb134b33c9a914583f4aa9d84f7eee5.png

3.in类型 在列举值内进行查询

select * from Teacher where Age in(18,20,22)
6fc781c9de269e4a8ab94b49cceaf6ba.png

4、group by 分组查询

select Name as 姓名,AVG(Age) as 平均年龄 from Teacher group by Name 
4adb80d4649e5b49869335fc50926192.png

5.使用having 子句进行筛选

 select Name as 姓名,AVG(Age) as 平均年龄 from Teacher group by Name having count(Age)>1
36356e995c732b3f00e62444a716edab.png

having条件查询 和 where条件查询的区别:

where只能在没有分组时使用;

分组后只能使用having来限制条件。

05043d786ea3ec0de883c6ca285f28fc.png

3、多表连接查询

内连接查询

1.在where子句中指定连接条件

语法:

 select 表1字段,表2字段,... from 表1,表2 where 表1字段=表2字段

例如:

select Teacher.Name,Teacher.Age,TCourse.KPS from Teacher,TCourse where Teacher.Name=TCourse.Name
4135c19e2f97bb8323f82353642617f1.png

2.在from子句中使用 inner join...on

语法:

 select 表1字段,表2字段,... from 表1 inner join 表2 on 表1字段=表2字段

例如:

select Teacher.Name,TCourse.Course from Teacher inner join TCourse on (Teacher.Name=TCourse.Name)
c155b85913a1e50ddd4185881e90fc15.png

外连接查询

1.左外连接查询 left (outer) join ...on

语法:

select 字段1,字段2,... from 表1 left join 表2 on 条件(表1字段=表2字段)

说明:在此条件约束下,以表1所需查询字段为主,用表2所需字段内容填充,如果没有,则填充null或者默认值。

例如:

select Teacher.Name,TCourse.Ranks from Teacher left join TCourse on Teacher.Name =TCourse.Name
77317b99441d455b1e668f49e814cb9b.png

2.右外连接查询 right (outer) join ...on

语法:

select 字段1,字段2,字段3,... from 表1 riht join 表2 on 条件(表1字段=表2字段)

说明:在此条件约束下,以表2所需查询字段为主,用表1所需字段内容填充,如果没有,则填充null或者默认值。

例子:

select Teacher.Name,TCourse.Ranks from Teacher right join TCourse on Teacher.Name =TCourse.Name
09758c13819c5f47c788792cec8442bd.png

3.全外连接查询 full (outer) join ...on

语法:

 select 字段1,字段2,字段3,... from 表1 full join 表2 on 条件(表1字段=表2字段)

说明:在此条件约束下,表1所需查询字段和表2所需查询字段的集合,空缺字段 则填充null或者默认值。

例如:

select Teacher.Name ,TCourse.Ranks from Teacher full join TCourse on Teacher.Name =TCourse.Name
01c33df00bf8d9eac7d247d6e7e7ab2b.png
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值