我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈 T-SQL高级查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈 T-SQL高级查询

之前我们简单的了解了增、删、改、查这几类T-SQL语法来操纵数据表,但是为了更方便快捷地完成大量任务,SQL Server 提供了一些内部函数,可以和SQL Server 的SELECT语句来联合使用,进行类型转换、日期处理、数学计算、实现系统功能。
浅谈 T-SQL高级查询
浅谈 T-SQL高级查询
字符串在信息处理时有特殊的地位,几乎所有信息都需要转化成字符串才能正确显示,尤其是不同数据拼接起来显示的使用更加广泛。
字符串之间使用“+”拼接

select '运维工程师' + '姓名'+'的基本工资是:'+ cast(基本工资 as varchar(10))+'元' 
from *表名*   #“基本工资 as varchar(10)”是将基本工资列的类型转换为字符串
where 职务='运维工程师'

浅谈 T-SQL高级查询
浅谈 T-SQL高级查询
例:
显示距离当前10天后的日期和时间:
select dateadd (DD,10,getdate())#“getdate()”取得当前系统日期,DD:单位为日
浅谈 T-SQL高级查询
显示所有人的姓名和年龄:
select 姓名,datediff (yy,出生日期,getdate()) as 年龄 from ***表名***
浅谈 T-SQL高级查询
显示表中所有90后的员工姓名和出生月份:

select 姓名,datename (year,出生日期) as 出生月份 # as 后可以配置别名(新生成的列名)
from *表名* 
where 出生日期 between '1990-01-01' and '1999-12-31' # and:和、到

浅谈 T-SQL高级查询
聚合函数:
用于对一组值执行计算,并返回单个值
如:求总和、平均值、最大或最小值等
SUN:求总和、AVG:求平均数、MAX和MIN:返回最大最小值
COUNT:返回非空值的计数

查询表中所有员工基本工资的综合:

select sum(基本工资) as 总工资 
from *表名* 

查询表中所有员工的平均工资:

select avg(基本工资) as 平均工资 
from *表名*

查询表中最高和最低的基本工资:

select max(基本工资) as 最高工资,min(基本工资) as 最低工资 
from *表名*

查询表中90后员工的人数:

select count(基本工资) as '90后人数'
from *表名*
where 出生日期>='1990-01-01'

分组查询:
将表中的数据通过 group by 子句分类组合,再根据需要得到的统计信息,只显示限定条件的组,需要使用 HAVING 子句
查询表中每个职务的平均工资:

select 职务,avg(基本工资) as 职务基本工资 
from *表名*
group by 职务

查询表中平均工资小于10000的职务:

select 职务,avg(基本工资) as 职务平均工资 
from *表名* 
group by 职务
having avg(基本工资)<10000

浅谈 T-SQL高级查询
函数的综合应用:
查询未满30岁的员工的生日和年龄,并且计算出距离30岁的天数,最后用字符串拼接显示结果:
查询正确的结果

select 姓名,出生日期,DATEDIFF(YY,出生日期,GETDATE()) 年龄,
  DATEDIFF(DD,GETDATE(),DATEADD(YY,30,出生日期)) 距离三十岁的天数
  from test
  where DATEDIFF(YY,出生日期,GETDATE())<=30
  order by 出生日期

将结果用字符串拼接:

select '员工'+姓名+'的生日是:'+CONVERT(varchar(10),出生日期,111)+
  ',现在年龄是'+CAST(DATEDIFF(YY,出生日期,GETDATE()) AS varchar(10))
  +'岁'+',距离三十岁还有'+
  CAST( DATEDIFF(DD,GETDATE(),DATEADD(YY,30,出生日期)) AS varchar(10))+'天'
  from employee
  where DATEDIFF(YY,出生日期,GETDATE())<=30
  order by 出生日期

浅谈 T-SQL高级查询
使用 T-SQL 实现多表查询:
浅谈 T-SQL高级查询
使用内联接在表A和表B中使用内联接查询学生姓名、学校和职业。(两种查询方式)

select a.name 姓名,a.school 学校,b.name,b.job 
from A,B
where a.name=b.name

或:

select a.name 姓名,a.school 学校,b.name,b.job 
from A inner join B on a.name=B.name 

浅谈 T-SQL高级查询
使用左外联接查询在表A和表B中使用内联接查询学生姓名、学校和职业

select a.name 姓名,a.school 学校,b.name,b.job 
from A left join B on a.name=B.name 

浅谈 T-SQL高级查询
使用右外联接查询在表A和表B中使用内联接查询学生姓名、学校和职业。

select a.name 姓名,a.school 学校,b.name,b.job 
from A right join B on a.name=B.name 

使用完整外联接查询在表A和表B中使用内联接查询学生姓名、学校和职业。

select a.name 姓名,a.school 学校,b.name,b.job 
from A full join B on a.name=B.name 

以上四个案例,看似复杂,实则只是 inner、left、reght、full 这四个切换了一下而已
以下是一个实际实例:
源数据表如图所示:
浅谈 T-SQL高级查询
查询出厂日期晚于2011年4月的水果信息:

select * from products
where 种类='水果'
and 出厂日期>'2011-04-01'

浅谈 T-SQL高级查询
分组查询所有水果、蔬菜、坚果的总成本:

select 种类,SUM(成本) from products
group by 种类

浅谈 T-SQL高级查询
查询所有水果的名称和出厂日期,以特定格式拼接字符串,如:“西瓜的出厂日期是:2017/05/06”

select 种类+'的出厂日期是:'
+CONVERT(varchar(10),出厂日期,111)
from products

浅谈 T-SQL高级查询
查询所有蔬菜的平均成本:

select 种类,AVG(成本)
from products
group by 种类
having 种类='蔬菜'

浅谈 T-SQL高级查询
多表查询的实例:
源数据表如图所示:
浅谈 T-SQL高级查询
浅谈 T-SQL高级查询
查询产品的名称、种类、成本、销售地点和销售价格:

select products.名称,products.种类,
products.成本,sales.销售地点,sales.销售价格
from products inner join sales 
on products.名称=sales.名称

浅谈 T-SQL高级查询
查询销往海南的产品名称、种类、成本和销售价格:

select products.名称,products.种类,
products.成本,sales.销售价格
from products inner join sales 
on products.名称=sales.名称
and sales.销售地点='海南'

浅谈 T-SQL高级查询
查询销往北京的蔬菜名称、种类、成本和销售价格:

select products.名称,products.种类,
products.成本,sales.销售价格
from products inner join sales 
on products.名称=sales.名称
and sales.销售地点='北京'
where 种类='蔬菜'

浅谈 T-SQL高级查询

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅谈 T-SQL高级查询

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【MySQL】细谈SQL高级查询

文章目录 一、前言 & 准备工作二、简易高级查询⚙ 准备工作1、查询每一门课程及其先修课程2、查询和“刘涛”在一个班级的学生的信息3、查询选修了‘计算机基础’课的学生的学号、姓名③ 连接方式④ 子查询嵌套方式 4、查询没有
【MySQL】细谈SQL高级查询
2023-12-23

SQL Server 的T-SQL高级查询指的是什么

小编今天带大家了解SQL Server 的T-SQL高级查询指的是什么,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“SQL Serv
2023-06-26

MSSQL·查询T-SQL执行记录

阅文时长| 0.78分钟字数统计| 1261.6字符 主要内容| 1、引言&背景2、查询最近的T-SQL执行记录3、查询实际执行过的事务日志4、声明与参考资料 『MSSQL·查询T-SQL执行记录』 编写人 | SCscHero 编写时间 | 202
MSSQL·查询T-SQL执行记录
2018-12-12

编程热搜

目录