六、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.创建带参数的存储 ...
随机推荐
- KeepAlived+MySQL互为主从
http://blog.csdn.net/socho/article/details/51804720 解决Master单点问题,两台mysql互为主备,双向replication.当一master挂 ...
- react-native Execution failed for task ':app:prepareRnReduxReactNativeUpdateUnspecifiedLibrary'报错
详细报错 Could not copy zip entry E:\项目目录\node_modules\react-native-update\android\build\outputs\aar\rea ...
- django实战模拟博客系统
数据库代码块 from django.db import models from django.utils import timezone from django.contrib.auth.model ...
- H5C304
H5C304 1.渐变 1)线性渐变 point,angle可取4个值:如上所示 需要使用background添加 2)径向渐变 position是按照元素右上为原点的 3)重复渐变 同样有重复线性渐 ...
- 第六周周赛——AK机会不易得,好好把握题解(出自HDU5650,codeforces 616A,624A,659A,655A,658A)
A题: A题题目链接 题目描写叙述: 位运算 TimeLimit:1000MS MemoryLimit:65536KB 64-bit integer IO format:%I64d Problem ...
- [Linux] - Windows与Linux网络共享文件夹挂载方法
Windows与Linux网络SMB方式文件夹共享挂载 本示例系统: Windows 2003+ Linux-Centos/Ubuntu 本示例全为命令行操作,如何使用Windows.Linux命令行 ...
- ubuntu下安装配置apache2与php
1:安装apache2 sudo apt install apache2 2:修改端口号 sudo vi /etc/apache2/ports.conf 3:修改跟目录 在 /etc/apache2/ ...
- CAS 单点登录【1】入门
1. CAS 的引入的前提和好处 很早期的公司,一家公司可能只有一个应用,慢慢的应用开始变多,如员工报销系统.审核系统.学习系统...... 每个应用都要进行注册登录,退出的时候又要一个个退出,用户操 ...
- 每天一个linux命令:chown
1.命令简介 chown(Change owner) 用来改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组.用户可以是用 ...
- git变慢的原因
最近使用git更新代码变慢,进一步试了一下提交代码.执行git命令都很慢,换了idea的工作目录.更换git版本,所有操作都是徒劳. 最后关了火绒杀毒软件,才快了起来. 坑坑坑坑坑的火绒杀毒!浪费我至 ...