T-SQL查询语句大总结

防伪码:有志者事竟成,破釜沉舟,百二秦关终属楚

注:表格及语法众多,因此总结为sql server 语句,各位朋友如有需要可参考,谢谢!

案例一:表如下图所示

实验需求:

1. 在products表中查询出厂日期晚于2014年4月的水果信息

语句:select * from products

where 出厂日期>'2014-04-30'

and 种类='水果'

2. 在products表中分组查询所有水果、蔬菜、坚果的总成本

语句:select 种类,SUM(成本)

as 总成本 from products

group by 种类

3. 在products表中查询所有水果的信息,并按照成本从高到低的顺序显示结果

语句:select * from products

where 种类='水果'

order by 成本 desc

4. 在products表中查询成本在1—5元之间的蔬菜信息

语句:select * from products

where 种类='蔬菜'

and 成本 between 1  and  5

5. 将products表中所有水果的名称、种类和出厂日期信息插入到新表products_new中

语句:select 名称,种类,出厂日期

into products_new

from products where 种类='水果'

案例二:表如下图所示

实验需求:

1、 在products表和sales表中查询产品的名称、种类、成本、销售地点和销售价格。

语句:select products.名称,products.种类,products.成本,sales.销售地点,sales.销售价格

From  products,sales

Where products.名称=sales.名称

或者:select a.名称,a.种类,a.成本,b.销售地点,b.销售价格

From  products as a  inner join sales as b  on  a.名称=b.名称

2、 在products表和sales表中查询销往海南的产品名称、种类、成本和销售价格。

语句:select products.名称,products.种类,products.成本,sales.销售价格

From products,sales

Where products.名称=sales.名称 and 销售地点=’海南’

案例三:表如下图所示

实验需求:

1、查询王明的成绩?结果:王明 90

Select 姓名,成绩

from  student where 姓名=’王明’

2、 给王明加2分?

Update student set 成绩=成绩+2

where 姓名=’王明’

3、 查询备注不为空的学生?

Select  *  from  student

where 备注  is not null

4、 查询成绩大于95分以上的学生?

Select  *  from  student

where 成绩>95

5、 王明转学,把王明删掉?

Delete from student

where 姓名=‘王明’

6、 来了一位新同学,名字叫于美丽?

Insert into student

values(20,’于美丽’,’110110110’,3,100,’勤奋好学’)

7、 查询成绩大于95分,并且班级是2班的都有谁?

Select * from student

where 成绩>95 and 所在班级=2

8、 查询成绩大于95分,并且班级是1、2班的都有谁?

Select * from student

where 成绩>95

and 所在班级 between 1  and  2

9、 查询平均成绩?

Select avg(成绩) as 平均成绩  from student

10、使用truncate删除所有的数据

Truncate  table  student

实验案例四:表如下图所示

实验需求:

1、显示表中全部内容

select * from 员工信息表

2、显示工资大于5000员工的所有信息

select * from 员工信息表

where 工资>=5000

3、显示所有在1950到1988年之间出生员工的所有信息

select * from 员工信息表

where 出生日期>='1950' and 出生日期<='1988'

4、查询出所有住在昌平的员工

select * from 员工信息表

where 家庭住址 like '%昌平%'

5、所有销售员的工资涨幅1000

update 员工信息表

set 工资=工资+1000

where 职位='销售员'

6、删除工资小于3000员工的记录

delete from 员工信息表

where 工资<=3000

7、所有经理的工资下调10%

update 员工信息表

set 工资=工资*0.9

where 职位 like '%经理'

案例五:表如下图所示

1、查询年龄大于35,小于 50,并且职位是员工?

语句:select * from 员工信息表

where 年龄>35 and 年龄<50

and 职位='员工'

2、查询员工的平均年龄?

语句:select AVG(年龄) as 平均年龄  from 员工信息表

3、查询各种职位的平均年龄,并且按照每种职位的平均年龄降序排序?

语句:select 职位,AVG(年龄) as 平均年龄  from 员工信息表

group by 职位

order by AVG(年龄) desc

4、查询年龄最大和最小的人是谁?

语句:select 员工姓名,年龄 from 员工信息表

where 年龄=(select MAX(年龄)

from 员工信息表) or

年龄=(select MIN(年龄)

from 员工信息表)

5、查询每种职位有多少人?并且按每种职位的人数升序排序?

语句:select 职位,COUNT(员工id) as 人数

from 员工信息表

group by 职位

order by COUNT(员工id)

6、查询年龄大于等于50岁和小于30岁的都有哪些人?

语句:select * from 员工信息表

where 年龄>=50 or 年龄<30

案例六:表如下图所示

实验需求:

1、两个表查询

select 学生表.姓名,学生表1.电话,学生表1.家庭住址

from 学生表,学生表1

where 学生表.学生id=学生表1.学生id

2、三个表的查询

select 学生表.姓名,课程表.课程名,成绩表.分数

from 学生表,课程表,成绩表

where 学生表.学生id=成绩表.学生id AND 成绩表.课程ID=课程表.课程ID

3、合并两个结果集

SELECT 姓名,学号,班级,国籍

FROM 二班

UNION

select 姓+' '+名,学号,班级,国籍

from 一班

order by 班级 desc,学号 asc

4、内联接(查找参加考试的学生的姓名和CNT成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S INNER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

5、左外连接(查找本班学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S LEFT OUTER  JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

6、右外连接(查找参加本次考试的学生的姓名和CNT才成绩,电话)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S RIGHT OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

7、完全连接(查找所有学生的考试情况)

select s.姓名,s.电话,c.CNT

FROM 学生基本信息表 AS S FULL OUTER JOIN 学生成绩表 AS C

ON S.姓名=C.姓名

8、自连接(查找每个员工的上司姓名)

SELECT Y.员工姓名,s.员工姓名 AS 上司姓名

from 员工信息表 as y inner join 员工信息表 as s

on y.上司ID=S.员工ID

9、子查询(查找每个季度的生产数量,百分比)

select 季度,sum(生产数量) AS 每个季度的生产数量,

str((sum(生产数量)/(select sum(生产数量) from 生产表))*100)+'%' AS 百分比

from 生产表

group by 季度

order by 季度

10、在where子句中使用SELECT ,查找课程ID=1并且成绩〉80的学生

select 学生表.姓名

from 学生表

where 80<(select 分数 from 成绩表

where 学生表.学生ID=成绩表.学生ID AND 成绩表.课程ID=1)

11、 交叉连接

SELECT T.教师姓名,c.课程名

from 教员基本信息表 AS t cross join 课程表 AS C

案例七:

事务,完成转账

注意:编辑事务,如果转账1000会回滚,提示失败,如果转账800,提示成功。

创建bank表,设置约束currentMoney>=1,执行以下语句:

print '查看转账事务前的余额'

select * from bank

go

begin transaction

declare @errorsum int

set @errorsum =0

update bank set customermoney =customermoney -1000

where customername ='张三'

set @errorsum =@errorsum +@@ERROR

update bank set customermoney =customermoney +1000

where customername ='李四'

set @errorsum =@errorsum +@@ERROR

print '查看转账事务过程中的余额'

select * from bank

if @errorsum <>0

begin

print '交易失败,回滚事物'

rollback transaction

end

else

begin

print '交易成功,提交事务,写入键盘,永久保存'

commit transaction

end

go

print '查看转账事务后的余额'

select * from bank

go

交易失败:

交易成功:

转载于:https://blog.51cto.com/yw666/1840932

T-SQL查询语句大总结相关推荐

  1. SQL查询语句 select 详解

    查询select: 1.单表查询 2.多表查询 3.嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询*************************** ...

  2. MySQL番外篇:一条SQL查询语句是如何执行的?

    在面试的过程中,有的面试官会给出一条简单的SQL查询语句,让简单说一下执行的过程. SELECT * FROM emp where age=30; 以下问MySQL的基本架构图,从中可以看出SQL语句 ...

  3. 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  4. 怎么做mysql查询系统_mysql数据库系统学习(一)---一条SQL查询语句是如何执行的?...

    一.第一节:一条sql查询语句是怎样执行的 5.5.5版本以后,默认使用存储引擎为InnoDB 不使用查询缓存,MySQL8.0没有查询缓存这个功能 总体来说:MySQL分为service层和存储引擎 ...

  5. 没错,纯SQL查询语句可以实现神经网络

    我们熟知的SQL是一种数据库查询语句,它方便了开发者在大型数据中执行高效的操作.但本文从另一角度嵌套SQL查询语句而构建了一个简单的三层全连接网络,虽然由于语句的嵌套过深而不能高效计算,但仍然是一个非 ...

  6. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

  7. SQL查询语句 select

    查询select: 1.单表查询 2.多表查询 3.嵌套查询 分类       1)单表查询       2)多表查询           A.连接查询           B.子查询         ...

  8. 预编译sql查询语句_频繁查询重新编译– SQL查询性能杀手–检测

    预编译sql查询语句 previous part of this article, we presented query recompilation basics. We explained when ...

  9. 一条SQL查询语句的执行过程,一张图说清SQL查询语句执行过程

    一张图说明 一条SQL查询语句的执行过程 一条sql语句从发送到数据库到它执行完成并返回结果,主要经历以下几个过程: 连接器->查询缓存(如果开启了查询缓存,则会经过这一步,但是大多数情况下都是 ...

  10. 【笔记】SQL查询语句的基本使用方法

    SQL查询语句的基本使用方法 基本查询 SELECT查询语句 --查询所有的学生的学号和姓名 USE JXGL SELECT SNO,SNAME FROM S 简单查询 --查询所有的学生的姓名,学号 ...

最新文章

  1. 华为服务器故障灯不开机_总有故障灯亮却不知道是怎么回事?详解这些你不认识的故障灯...
  2. python语言是谁发明的咋读-Python的发明,竟然是因为他不喜欢花括号。
  3. hdu1671 字典树记录前缀出现次数
  4. jsp与servlet之间页面跳转及参数传递实例
  5. Golang Study 二 UDP套接字使用
  6. docker安装kibana7.6.1
  7. 国内唯一,阿里云挺进 Forrester 数据流分析报告“强劲表现者”象限
  8. 只需几分钟即可安装Red Hat Container Development Kit(视频)
  9. PHP进程1608占用了9012,swoole (ERRNO 9012): worker exit timeout, forced to terminate
  10. axios_的基本使用_使用axios()方法来发送请求---axios工作笔记004
  11. Object类的使用,包装类的使用
  12. 分布式锁没那么难,手把手教你实现 Redis 分布锁!|保姆级教程
  13. 阿里云CentOS 7.4 使用Flask建站
  14. ActivityMQ使用
  15. VCL组件DevExpress VCL v21.2 - 甘特图、网格控件升级
  16. Mac安装Royal TSX
  17. C# LeetCode刷题 - Leetcode 306. 累加数 - 题解
  18. 深信服实习面经11_02
  19. 通信技术对自动驾驶发展的关键作用
  20. 【Linux】gcc编译器下载与手动安装

热门文章

  1. html新增后触发点击事件 (off和on的使用)
  2. Linux查看端口开放netstat
  3. linux php lt,PHP GD 库在 Linux 下使用字体
  4. linux查看内存是单通道还是双通道,android /linux如何识别S5pv210 双通道不连续的内存?...
  5. 2019年第一次画画,顺便评价一下ipadPro和Surface的画画优劣
  6. UDP协议为什么比TCP协议快的原理
  7. ajax提交form表单,后台接收不到值
  8. win11找不到兼容性设置怎么解决
  9. 轮播图为什么不显示?
  10. 机器学习-------算法(七)