• 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约束:

     

    (3)插入两条数据:

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

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

    (4)转账的过程。(先执行转账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

  • 相关阅读:
    bloom(转)
    关于模态对话框某些情况下在opengl下需要按alt才能显示的问题
    程序员的特征
    ffmpeg cross compile
    Tone mapping
    osgXI
    dx11 about post process...
    asp.net网站异常处理方式
    把datatable导出到指定的excel中
    Visual Studio 2008功能提升
  • 原文地址:https://www.cnblogs.com/L2366/p/9132013.html
Copyright © 2020-2023  润新知