六、Sql Server 基础培训《进度6-更新删除(实际操作)》
知识点:
假设,创建表test1,test2。
drop table test1
create table test1
(
FID int identity(1,1),
FBillNo varchar(10),
FDate datetime default(getdate())
)
insert into test1(FBillNo,FDate)
values('FB001','2018-6-1'),
('FB002','2018-6-3'),
('FB003','2018-2-1'),
('FB003','2018-2-3')
drop table test2
create table test2
(
FID int identity(1,1),
FBillNo varchar(10),
FDate datetime default(getdate())
)
insert into test2(FBillNo,FDate)
values('FB2018001','2018-6-1'),
('FB2018002','2018-6-3'),
('FB003','2018-2-1'),
('FB004','2018-2-3')
1、单表更新
举例:在表test1,日期为‘2018-2-3’的记录,单据编号有错,需要更改为‘FB004’。
update test1 set FBillNo='FB004' where FDate='2018-2-3'
2、多表更新
举例:从2018-6-1开始,单据编号的规则发生改变,把表test2中,日期大于等于2018-6-1的单据编号更新到表test1。
update t1 set t1.FBillNo=t2.FBillNo
from test1 t1
left join test2 t2 on t1.FID=t2.FID
where t2.FDate>='2018-6-1'
3、删除记录
举例1:用truncate语法删除表test2所有记录
truncate table test2
举例2:用delete语法删除表test1第四条的记录
delete from test1 where FID=4
举例3:用delete语法删除表test1所有记录
delete from test1
4、delete和truncate区别
区别1:DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。在删除过程中激活与表有关的删除触发器。
TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
区别2:表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。
区别3:应用范围。TRUNCATE 只能对TABLE;DELETE可以是table和view。
区别4:对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。
区别5:DELETE自动编号不恢复到初始值。TRUNCATE自动编号恢复到初始值。
=======================================================
=======================================================
学习作业6:
由于农业研究专业今年获得重大比赛奖项,本次期末成绩,每人都加分2分。请给农业研究专业的全体同学加分2分(用update语法)。
学习作业6答案:
写法一:
update t1
set t1.score=t1.score+2
from exam t1
left join Special_To_Subject t2 on
t1.subjectid=t2.SubjectID
left join Speciality t3 on t2.SpecialID=t3.ID
where t3.name='农林研究专业'
写法二:
update t1
set t1.score=t1.score+2
from exam t1
left join Student t2 on t1.StudentID=t2.ID
left join Class t3 on t2.ClassID=t3.id
where t3.name='农业一班'
六、Sql Server 基础培训《进度6-更新删除(实际操作)》的更多相关文章
- 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》
学习作业2: 问题1:主键都有哪些方式? 问题2:本次实战案例建立的主键采用哪种方式? 问题3:猜猜金蝶K3WISE建立的主键采用哪种方式? 问题4:谈谈手工主键增长设置具体实现思路?(选 ...
- 五、Sql Server 基础培训《进度5-数据类型(知识点+实际操作)》
知识点: ================================================= ============================================= ...
- 三、Sql Server 基础培训《进度3-是否使用外键(知识点学习)》
学习作业3: 问题1:你觉得外键有哪些适用情况?哪些不适用情况? 问题2:本次实战案例,由你来架构,你觉得有必要建立外键吗? 说明你的理由? ======================= ...
- 八、Sql Server 基础培训《进度8-查询多种写法》(实际操作)
知识点: 假设学生表.班级表.年级表 学生表(student) 内码 学生姓名 班级内码 001 张三 1002 002 李四 1002 003 王五 1003 004 钱六 1001 班级表(cla ...
- 一、Sql Server 基础培训《进度1-建库建数据表(实际操作)》
知识点: 1.建数据库示例参考 --创建一个数据库名为‘dbtest’ create database dbtest go --打开数据库 dbtest use dbtest go 2.建表示例参考 ...
- 九、Sql Server 基础培训《进度9-复杂查询练习》(实际操作)
知识点: 复杂查询1:统计全校有多少个男生.有多少个女生? 写法1(分组): select sex as 性别,count(*) as 人数 from student group by sex 写法2 ...
- 七、Sql Server 基础培训《进度7-笛卡尔积(知识点+实际操作)》
知识点: 1.笛卡尔介绍 笛卡尔,近代法国著名哲学家.物理学家.数学家.神学家. 主要成就概述 笛卡尔在科学上的贡献是多方面的.笛卡尔不仅在哲学领域里开辟了一条新的道路,同时笛卡尔又是一勇于探索的科学 ...
- 四、Sql Server 基础培训《进度4-插入数据(实际操作)》
知识点: 假设有订单表 CREATE TABLE Order ( ID int identity(1,1) not null primary key, --内码 BillNo varchar(100) ...
- 【SQL Server】SQL Server基础之存储过程
SQL Server基础之存储过程 阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...
随机推荐
- python之模块3
RE模块使用方法 (1)finditer 返回迭代器 (2)search:只匹配第一个结果 import re res=re.search("\d+","djksf34 ...
- PLC300寻址指令
1.寻址图解 2.直接寻址 直接寻址包括两大类,绝对地址寻址和符号地址寻址 绝对地址:由一个标识符和存储器位置组成. 例如:I 0.0 Q 1.7 PIW 256 PQW 512 MD 20 T 15 ...
- 安装 VS2017 的正确姿势
自从装了长城带宽,我的肠子就变成青色的了. 国内的网络环境,真的是有很大的不同,有的人装 VS 的时候,号称满速,有的人(其实就是我)要等它下载很久,还告诉我有个组件没有安装成功.很久很久以前,VS ...
- HTML5 学习06——Geolocation(地理定位)
HTML5 Geolocation(地理定位) HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. HTML ...
- 06、action操作开发实战
1.reduce: 2.collect: 3.count: 4.take: 5.saveAsTextFile: 6.countByKey: 7.foreach: package sparkcore.j ...
- [Canvas]空战游戏 已经可以玩了 1.13Playable
空战游戏做到这里,己方运动,己方发射子弹,敌方运动,敌方发射子弹,子弹与飞机碰撞,飞机与飞机碰撞都已经具备了,换言之已经可以玩了. 还需要一个奖励升级系统,在上面显示击落敌机数量等,还有己方不幸被击落 ...
- 每天一个linux命令(5):rmdir
1.命令简介 rmdir (Remove Directory删除目录): 用来删除空目录,删除某目录时也必须具有对父目录的写权限. 2.用法 用法:rmdir [选项]... 目录... 3.选项 - ...
- 基于R语言的ARIMA模型
A IMA模型是一种著名的时间序列预测方法,主要是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型.ARIMA模型根据原序列是否平稳以及 ...
- 好用好玩的Python包
ujson 用C++实现的json解析器,速度飞快. prettytable 在控制台下使用表格展示数据 import prettytable t=prettytable.PrettyTable([' ...
- iOS--App功耗优化
良好的用户体验需要如下要素: 电池寿命长.随着能效降低,电池寿命也会降低.但用户想让自己的移动设备全天候待命. 速度快.iOS系统处理复杂操作时仍能提供很好的性能. 响应快.同一时刻消耗太多资源会使U ...