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 条评论
登录 后参与评论

相关文章

来自专栏木宛城主

你必须掌握的一些常见的SQL语句,包含单表查询、高级查询(连接查询、复合条件查询、嵌套查询)

分享一些常见的SQL语句,包含单表查询、高级查询(连接查询、复合条件查询、嵌套查询等)。 --建立学生信息表Students create table Stud...

1627
来自专栏闻道于事

数据库 105道题目整理与吐血总结

第一波题目 drop table PRODUCT cascade constraints; create table PRODUCT ( id NUMBER n...

4999
来自专栏程序员宝库

电商系统设计之订单

用户交易将经历一段艰辛的历程,一般用户感觉不到,实际程序是经历了一段生死离别。具体付款流程如下:

972
来自专栏Grace development

电商系统设计之订单

用户交易将经历一段艰辛的历程,一般用户感觉不到,实际程序是经历了一段生死离别。具体付款流程如下

532
来自专栏编程之路

教师听课评课系统设计

需求分析:管理教师安排任课教师课程,安排听课教师,听课教师到教室听课,使用手机记录学生表现、教师表现、综合表现、以及建议,告别纸质化。课后授课教师查看所有听课人...

1333
来自专栏python3

mysql-外键的三种关系

mysql> create table press(id int primary key auto_increment,name varchar(20));

873
来自专栏idba

修改字符集的注意那些事儿

最近有开发同学遇到emoji显示问题,表结构是utf8mb4字符集,但是不支持emoji表情字符。我们在解决字符集问题的时候也重新认识了修改字符集操作的...

622
来自专栏Java帮帮-微信公众号-技术文章全总结

SQL经典5道题

SQL经典5道题 1:假设有一个“职工”表,表结构如下:(14分) 职工号姓名年龄月工资部门号电话办公室1张三2520001123451012李四2615001...

4315
来自专栏帘卷西风的专栏

创建角色随机名字(mysql抽取随机记录)和mysql游标的使用

1、现在创建游戏角色的时候,基本上都是支持角色名字随机的,以前此功能在客户端用代码实现,然后向服务器请求并验证,后来发现有时候连续几次都失败,所以改成在服务器...

562
来自专栏数据和云

元宵快乐:看SQL大师们用SQL绘制的团圆

题记:在多年以前,论坛活跃的时代,在ITPUB上你能看到各种新奇有趣的知识,及时新鲜的信息,出类拔萃的技巧,有很多让人多年以后还记忆犹新。 这个帖子让我忍不住在...

3047

扫码关注云+社区