实验一:实验案例一(附加“练习用的可以附加的数据库--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

T-SQL应用实例的更多相关文章

  1. SQL/T-SQL实例参考

    ,D.[Score] B_Score ,'Distince'= CASE WHEN C.Score > D.Score THEN C.[Score] - D.[Score] WHEN C.Sco ...

  2. mysql sql优化实例

    mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...

  3. 此数据库文件与当前sql server实例不兼容

    在vs2015导入mdf数据库文件时提示:此数据库文件与当前sql server实例不兼容. mdf文件的版本是SQL SERVER 2005的,而VS2015自带的数据库是LocalDB,直接导入该 ...

  4. SQL触发器实例讲解

    SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Inser ...

  5. 处于同一个域中的两台Sql server 实例无法连接

    处于同一个域中的两台Sql server 实例无法连接,报的错误信息如下: A network-related or instance-specific error occurred while es ...

  6. SQL触发器实例

    SQL触发器实例讲解(本文是来自百度文库) 备注:本人建了一个站特价汇,我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分 ...

  7. SQL SERVER实例解析

    什么是SQL SERVER实例 ------------ SQL SERVER实例的概念和“类与对象”的概念很相似.可以把SQL SERVER的安装程序看做是一个类,安装过程则是创建对象的过程,创建出 ...

  8. sql注入实例分析

    什么是SQL注入攻击?引用百度百科的解释: sql注入_百度百科: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具 ...

  9. 删除SQL server 实例

    在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例若要删除 SQL Server 的某个特定实例,请按照以下步骤操作: 找到并删除%drive%:\\Pr ...

  10. Sql Server专题:SQL 经典实例

    SQL 经典实例 1.实例表: Student(S#,Sname,Sage,Ssex) 学生表 S#:学号:Sname:学生姓名:Sage:学生年龄:Ssex:学生性别 Course(C#,Cname ...

随机推荐

  1. 撩课-Web架构师养成系列第一篇

    前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...

  2. 青蛙的约会(poj1061+欧几里德)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 94174   Accepted: 17412 Descripti ...

  3. SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

    SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期 一.拦截器配置 <mvc:interceptors> <mvc:interceptor> < ...

  4. MySQL设计之三范式的理解

    转自:https://blog.csdn.net/wangqyoho/article/details/52900585 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要 ...

  5. python去掉字符串中空格的方法

    1.strip():把头和尾的空格去掉 2.lstrip():把左边的空格去掉 3.rstrip():把右边的空格去掉 4.replace('c1','c2'):把字符串里的c1替换成c2.故可以用r ...

  6. Java中List、integer[]、int[]之间的转化

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...

  7. 设计模式(13)--Chain of Responsibility(责任链模式)--行为型

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.模式定义: 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一 ...

  8. DOM的查找,新增,删除操作

    查找 1. document.getElementById()  通过ID获取元素,由于ID唯一,所以获取的是一个元素 2. document.getElementsByTagName() 通过标签名 ...

  9. git push报错error: failed to push some refs to 'git@github.com'

    git push报错error: failed to push some refs to 'git@github.com' $ git push -u origin master To git@git ...

  10. pms前端结构

    后台采用.net MVC框架,前端采用requirejs.整个系统页面布局基本不变,每个页面只改变Main_Content部分. 模板页cshtml: <!DOCTYPE html> &l ...