六、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.创建带参数的存储 ...
随机推荐
- Express基础单词
访问请求对象(request)或(req) 响应对象(response)或(res) 中间件(middleware) http的请求方法(method) 服务器的路径(path) 路由匹配时的函数(c ...
- vscode eslint配置vue遇到的问题
一.准备工作 vscode里安装eslint和vetur插件,全局安装eslint,并在项目根目录中eslint --init 二.Cannot find module 'eslint-config- ...
- PHP06
PHP06 1. 2.可视化工具navicat: 1)查询 : select 字段名1,字段名2- from 表名; 对于可能与关键词重名的名称,建议使用反引号`括起来 可用*通配符代替字段名 sel ...
- reduce方法简单实现数组中对象去重
js数组的reduce方法,接收一个函数(必须)和指定的初始值(非必须)作为参数,函数有三个参数,分别为初始值,当前项,当前数组,进行累加或者累积操作,初始值为每次累加或者累计后的结果 注意:在ie9 ...
- python测试开发django-57.xadmin选项二级联动
前言 当我们选择项目分类的时候,一个项目下关联多个模块,同时有这两个选项框的时候,需要实现选中一个项目,模块里面自动删除出该项目下的模块,如下图这种 解决基本思路: 1.写个jqeury脚本监听cha ...
- Jsoup的简易使用示例
http://www.open-open.com/jsoup/parsing-a-document.htm 测试用网页 <!doctype html> <!-- http://jwc ...
- Pilosa文档翻译(三)示例
目录 简单说明 Introduction 数据模型 Data Model 映射Mapping 0列(colums) --> 1字段(field) 1列(colums) --> 1字段(fi ...
- 【MySQL】MySQL查询数据库各表的行数
#倒序查询数据库[各表记录数] use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA ...
- ios 容错处理JKDataHelper和AvoidCrash
一.JKDataHelper 在大团队协同开发过程中,由于每个团队成员的水平不一,很难控制代码的质量,保证代码的健壮性,经常会发生由于后台返回异常数据造成app崩溃闪退的情况,为了避免这样情况使用JK ...
- Unity应用架构设计(2)——使用中介者模式解耦ViewModel之间通信
当你开发一个客户端应用程序的时候,往往一个单页会包含很多子模块,在不同的平台下,这些子模块又被叫成子View(视图),或者子Component(组件).越是复杂的页面,被切割出来的子模块就越多,子模块 ...