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
T-SQL应用实例的更多相关文章
- SQL/T-SQL实例参考
,D.[Score] B_Score ,'Distince'= CASE WHEN C.Score > D.Score THEN C.[Score] - D.[Score] WHEN C.Sco ...
- mysql sql优化实例
mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...
- 此数据库文件与当前sql server实例不兼容
在vs2015导入mdf数据库文件时提示:此数据库文件与当前sql server实例不兼容. mdf文件的版本是SQL SERVER 2005的,而VS2015自带的数据库是LocalDB,直接导入该 ...
- SQL触发器实例讲解
SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Inser ...
- 处于同一个域中的两台Sql server 实例无法连接
处于同一个域中的两台Sql server 实例无法连接,报的错误信息如下: A network-related or instance-specific error occurred while es ...
- SQL触发器实例
SQL触发器实例讲解(本文是来自百度文库) 备注:本人建了一个站特价汇,我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分 ...
- SQL SERVER实例解析
什么是SQL SERVER实例 ------------ SQL SERVER实例的概念和“类与对象”的概念很相似.可以把SQL SERVER的安装程序看做是一个类,安装过程则是创建对象的过程,创建出 ...
- sql注入实例分析
什么是SQL注入攻击?引用百度百科的解释: sql注入_百度百科: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具 ...
- 删除SQL server 实例
在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例若要删除 SQL Server 的某个特定实例,请按照以下步骤操作: 找到并删除%drive%:\\Pr ...
- Sql Server专题:SQL 经典实例
SQL 经典实例 1.实例表: Student(S#,Sname,Sage,Ssex) 学生表 S#:学号:Sname:学生姓名:Sage:学生年龄:Ssex:学生性别 Course(C#,Cname ...
随机推荐
- java设计模式--Builder模式
一.Builder模式 二.使用例子 三.Spring中的Builder模式 Builder模式,构建者.构造者模式,在<图解设计模式>中归为 生成实例 一栏,该模式用于组装具有复杂结构的 ...
- JavaScript的3种继承方式
JavaScript的继承方式有多种,这里列举3种,分别是原型继承.类继承以及混合继承. 1.原型继承 优点:既继承了父类的模板,又继承了父类的原型对象: 缺点:不是子类实例传参,而是需要通过父类实例 ...
- 使用 ReentrantLock 和 Condition 实现一个阻塞队列
前言 从之前的阻塞队列的源码分析中,我们知道,JDK 中的阻塞队列是使用 ReentrantLock 和 Condition 实现了,我们今天来个简易版的.代码如下: 代码 public class ...
- 并发编程之 ThreadLocal 源码剖析
前言 首先看看 JDK 文档的描述: 该类提供了线程局部 (thread-local) 变量.这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局 ...
- $.each()和$(selector).each()
转载:http://www.jb51.net/article/65215.htm $.each()与$(selector).each()不同, 后者专用于jquery对象的遍历, 前者可用于遍历任何的 ...
- LinkedBlockQueue生产消费源码解析
LinkedBlockQueue自JDK1.5以后提供的一种阻塞队列,遵循生产者消费者模式,实现了BlockQueue接口,如图 从它的名字可以了解到它是采用链表的方式实现了阻塞队列,并且定义了“节点 ...
- Java基础——JSP(二)
一.JSP隐式对象概述 为了简化jsp表达式和脚本片断代码的编写,JSP一共提供了9个预先定义的变量,这些变量也称为隐式对象或内置对象. 在 jsp生成的Servlet源码中,有如下声明: publi ...
- 了解java虚拟机—并行回收器(7)
并行回收器 新生代ParNew回收器 ParNew只是简单地将串行回收器多线程化,他的回收策略,算法以及参数都喝新生代串行回收器一样.由于并行回收器使用多线程进行垃圾回收,因此,在并发能力强的CPU上 ...
- 畅通工程再续(hdu1875) 并查集
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)
global.gradle版本配置文件 原配置 compile_sdk_version = 26 build_tools_version = '26.0.2' target_sdk_version = ...