专栏首页L宝宝聊ITT-SQL应用实例

T-SQL应用实例

实验一:实验案例一(附加“练习用的可以附加的数据库--class”)

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

select * from products

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

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

select 种类,SUM(成本) 总成本 from products

group by 种类

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

select * from products order by 成本 desc

4、 在products表中查询成本在1—5元的蔬菜信息。

select * from products

where 成本 between 1 and 5 and 种类='蔬菜'

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

select 名称,种类,出厂日期

into aaa from products

where 种类='水果'

实验二:多表查询(附加“练习用的可以附加的数据库--benet”)

要求:

1、 在表A和表B 中使用内连接查询学生姓名,学校和职业

select a.namenamea,a.school schoola,b.name nameb,b.job jobb

from A,b wherea.name=b.name

2、 在表A和表B 中使用左外连接查询学生姓名,学校和职业。

select a.namenamea,a.school schoola,b.name nameb,b.job jobb

from A left join bon a.name=b.name

3、 在表A和表B 中使用右外连接查询学生姓名,学校和职业。 select a.name namea,a.school schoola,b.name nameb,b.jobjobb

from A right join bon a.name=b.name

4、 在表A和表B 中使用完整连接查询学生姓名,学校和职业。

select a.namenamea,a.school schoola,b.name nameb,b.job jobb

from A full join bon a.name=b.name

实验三:实验案例二(附加“练习用的可以附加的数据库--class”)

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

select products.名称名称a,

products.种类种类a,

products.成本成本a,

sales.名称名称b,

sales.销售价格价格b,

sales.销售地点地点b

from products,sales where products.名称=sales.名称

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

select products.名称名称a,

products.种类种类a,

products.成本成本a,

sales.名称名称b,

sales.销售价格价格b

from products,sales where products.名称=sales.名称

and

销售地点='海南'

3、 在products表和sales表中查询销往北京的蔬菜名称,种类,成本和销售价格。

select products.名称名称a,

products.种类种类a,

products.成本成本a,

sales.名称名称b,

sales.销售价格价格b

from products,sales where products.名称=sales.名称

and

销售地点='北京'

and 种类='蔬菜'

实验四:事务案例:完成转账的过程,如果转账1000会回滚,提示失败,如果转账800,提示成功。

要求:

(1) 创建表名为bank,如图所示:

(2) Currentmoney列的Check约束:

(2)插入两条数据:

INSERT INTO bank(customerName,currentMoney)VALUES('张三',1000)

INSERT INTO bank(customerName,currentMoney)VALUES('李四',1)

(3)转账的过程。(先执行转账1000,查看结果;之后转账800,查看结果)

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

select * from bank

go

begin transaction

declare @errorsum int

set @errorsum=0

update bank setcurrentmoney=currentmoney-800

where customername='张三'

set@errorsum=@errorsum+@@ERROR

update bank setcurrentmoney=currentmoney+800

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

本文分享自微信公众号 - L宝宝聊IT(gh_b0e552aa80db),作者:L宝宝

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL架构组成、逻辑模块组成

    Mysql逻辑结构可以看成是二层架构,第一层通常叫做SQL Layer,在mysql数据库系统处理底层数据之前的所有工作都在这一层完成的,包括权...

    L宝宝聊IT
  • Nagios监控系统应用示例

    L宝宝聊IT
  • SQL server 数据库的索引和视图

    L宝宝聊IT
  • Kotlin 1.4 新特性预览

    Kotlin 1.4 的第一个里程碑版本发布了,具体发布信息可以参考1.4-M1 ChangeLog[1]。

    bennyhuo
  • 经验总结 | 关于 reNgine 自动化网络侦查框架的国内安装与报错的解决方法

    reNgine 是Yogesh Ojha写的一款自动化网络侦查框架,或者说是信息收集聚合工具,他的推特:@ojhayogesh11

    TeamsSix
  • 没有Docker仓库还能分发镜像吗?

    首先明确的是建议优先使用Docker仓库,特别是对于Docker集群而言 Docker仓库非常重要,但是某些应用场景下比如单机环境下使用docker-comps...

    用户1560186
  • Java Comparable 与 Comparator

    在收集对象之后,对象的排序是经常需要用到的操作。但我们不需要亲自实现各种排序算法,java.util.Collections提供了sort方法,List作为一种...

    desperate633
  • B+Tree index structures in InnoDB(7.InnoDB中B+树的索引结构)

    这篇文章引用的是2014年2月3日的innodb_ruby 0.8.8版本。 在《学习InnoDB:核心之旅》中,我介绍了innodb_diagrams项目来...

    冬天里的懒猫
  • 函数式思维

    自从大四看了三章《SICP》之后我就自诩为一个函数式编程爱好者,之前也在公司分享过一个 Haskell 的 Topic,效果非常糟糕,讲到后来已经没剩几个人了,...

    Sheepy
  • SAP最佳业务实践:SD–可退回包装物销售(120)-1业务概览

    用途 可退货处理表示了属于制造商的标准托盘可以作为退回的货物或包装物料进行处理。本业务情景显示了标准托盘的装运及其退回过程。 优点 该流程包括了使用可退货...

    SAP最佳业务实践

扫码关注云+社区

领取腾讯云代金券