知识点:

假设,创建表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区别

区别1DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。在删除过程中激活与表有关的删除触发器。

TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

区别2表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。

区别3应用范围。TRUNCATE 只能对TABLE;DELETE可以是table和view。

区别4对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。

区别5DELETE自动编号不恢复到初始值。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-更新删除(实际操作)》的更多相关文章

  1. 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》

    学习作业2: 问题1:主键都有哪些方式?   问题2:本次实战案例建立的主键采用哪种方式?   问题3:猜猜金蝶K3WISE建立的主键采用哪种方式?   问题4:谈谈手工主键增长设置具体实现思路?(选 ...

  2. 五、Sql Server 基础培训《进度5-数据类型(知识点+实际操作)》

    知识点: ================================================= ============================================= ...

  3. 三、Sql Server 基础培训《进度3-是否使用外键(知识点学习)》

    学习作业3: 问题1:你觉得外键有哪些适用情况?哪些不适用情况?   问题2:本次实战案例,由你来架构,你觉得有必要建立外键吗? 说明你的理由?     ======================= ...

  4. 八、Sql Server 基础培训《进度8-查询多种写法》(实际操作)

    知识点: 假设学生表.班级表.年级表 学生表(student) 内码 学生姓名 班级内码 001 张三 1002 002 李四 1002 003 王五 1003 004 钱六 1001 班级表(cla ...

  5. 一、Sql Server 基础培训《进度1-建库建数据表(实际操作)》

    知识点: 1.建数据库示例参考 --创建一个数据库名为‘dbtest’ create database dbtest go --打开数据库 dbtest use dbtest go 2.建表示例参考 ...

  6. 九、Sql Server 基础培训《进度9-复杂查询练习》(实际操作)

    知识点: 复杂查询1:统计全校有多少个男生.有多少个女生? 写法1(分组): select sex as 性别,count(*) as 人数 from student group by sex 写法2 ...

  7. 七、Sql Server 基础培训《进度7-笛卡尔积(知识点+实际操作)》

    知识点: 1.笛卡尔介绍 笛卡尔,近代法国著名哲学家.物理学家.数学家.神学家. 主要成就概述 笛卡尔在科学上的贡献是多方面的.笛卡尔不仅在哲学领域里开辟了一条新的道路,同时笛卡尔又是一勇于探索的科学 ...

  8. 四、Sql Server 基础培训《进度4-插入数据(实际操作)》

    知识点: 假设有订单表 CREATE TABLE Order ( ID int identity(1,1) not null primary key, --内码 BillNo varchar(100) ...

  9. 【SQL Server】SQL Server基础之存储过程

    SQL Server基础之存储过程  阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...

随机推荐

  1. JQ02

    JQ02 1.css操作 .css(属性名,属性值)://要有双引号 修改单个样式,若要修改多个,需采用以下方式: 以对象为参数 它还可以获取样式: .css("属性名") 若元素 ...

  2. vue路由打开新窗口

    一. <router-link>标签实现新窗口打开: 官方文档中说 v-link 指令被 <router-link> 组件指令替代,且 <router-link> ...

  3. idea不显示gradle的视图解决办法

    选择build tool.找到gradle→Runner,把委托给IDE构建勾选,然后重新导入一次就好了.

  4. SOLDI原则之DIP:依赖倒置原则

    本篇介绍软件设计原则之一DIP:依赖倒置原则.很多知识回头来看会有新的理解.看到一句话,一段文字,一个观点有了新的理解,醍醐灌顶的感觉.这种感觉像是一种惊喜.古语说:温故而知新. DIP:依赖倒置原则 ...

  5. postgresql中使用distinct去重

    select语法 [ WITH [ RECURSIVE ] with_query [, ...] ] SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ...

  6. 一句话Javascript实现价格格式化

    //小数点后面如果超过3位则转换错误,如1.1234 正确的是1.1234但却错误的转换成了1.1,234 var test1 = '1234567890.123' var format = test ...

  7. php: 统计在线人数

    <?php $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinetime=60;// ...

  8. Centos7.4 安装Docker

    一.安装docker yum install -y docker 二.启动docker服务 systemctl start docker 三.设置成开机启动docker服务 systemctl ena ...

  9. Hive 根据表中某个字段动态分区 以及临时表创建

    使用hive储存数据时,需要对做分区,如果从kafka接收数据,将每天的数据保存一个分区(按天分区),保存分区时需要根据某个字段做动态分区,而不是傻傻的将数据写到某一个临时目录最后倒入到某一个分区,这 ...

  10. Nodejs 使用 es module (import/export)