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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博文

MyISAM InnoDB 区别

MyISAM 和 InnoDB 讲解   InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差...

3467
来自专栏文渊之博

数据仓库中如何使用索引

数据仓库的索引是个棘手的问题。如果索引太多,数据插入很快但是查询响应就会很慢。如果太多索引,数据导入就很慢并且数据存储空间更大,但是查询响应更快。数据库中索引的...

2047
来自专栏杨建荣的学习笔记

持续近7个小时的索引扫描的查询优化分析 (r5笔记第44天)

昨天客户的DBA反映有一个数据抽取的任务持续了很长时间最后超时退出了,让我看看有什么地方可以调优一下。 找到了对应的日志,发现在一个大表抽取的时候,抽取持续了将...

4105
来自专栏日常学python

教你用Python爬去QQ音乐评论

去年夏天,好像于我而言,重要的事就是毕业来临,从此踏上了搬砖之路,从学校到职场,之间身份的转变,让我又多了一份责任。当然还有一段感情经历,现在回头去看,只能说且...

831
来自专栏资深Tester

数据库使用经验分享

2025
来自专栏PHP在线

MyISAM InnoDB 区别

 MyISAM 和 InnoDB 讲解   InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的...

3515
来自专栏杂烩

Mycat基准测试报告 原

好久没上OSC,上面安排测下Mycat,于是申请服务器,花了两个周做出这个东西,供以借鉴。

1691
来自专栏数据和云

区间检索SQL性能优化方法

编辑手记:RWP(Real World Performance)团队是全球最优秀的性能优化团队,他们的目标在于系统性能千倍的提升。感谢刘永甫专家的授权,他从RW...

2926
来自专栏张戈的专栏

WordPress酷炫CSS3读者墙,排名按年度、本月、本周划分的小方法

WordPress 酷炫 CSS3 读者墙这个玩意一般不用我多说,大部分用 WordPress 的博主都了解过了,出自折子戏博客。 不过他这个读者墙的排行是按年...

3583
来自专栏desperate633

第11课 使用子查询使用计算字段作为子查询

我们考虑一个问题,列出订购物品‘RGAN01’的所有顾客的信息,那我们应该用怎样的信息检索?

492

扫码关注云+社区