1相关术语

语句

含义

操作

DML语句

(Data Manipulation Language)

数据库操作语言

insert update delete select

DDL语言

(Date definition Language)

数据库定义语言

create table;create view index sequence synonvm同义词,truncate table

DCL语言

(Data control Language)

数据控制语言

commit rollback savepoint

2数据库认证

Oracle数据库管理员认证专员(OCA)

Oracle Certified Associate

Oracle数据库管理员认证专家(OCP)

Oracle Certified Professional

Oracle数据库管理员认证大师(OCM)

Oracle Certified Master

3 insert语句

A插入一个完整记录:

insert into emp values (1, 'aaa', 'clerk',7092, '17-12月-80', 8000, NULL, 20);

B插入部分记录:

insert into emp(empno,ename,deptno)values(2,'bb',20);

C插入空值(显示和隐式)

D插入日期

insert into empvalues(3,'ccc','clerk',7092,sysdate,8000,NULL,20);

E创建脚本 取地址符 & ,通过这样的方式能够让用户自己定义输入

SQL> insert into emp(empno,ename,deptno)

2 values(&empno,&ename,20);

输入 empno的值: 4

输入 ename的值: 'cccc4'

原值   2: values(&empno,&ename,20)

新值   2: values(4,'cccc4',20)

已创建 1行。

F select ename,job,&tt from emp;

4批量插入数据

A把10号部门的员工copy到另外一个表中

创建表结构

create table emp10

as

select * from emp where 1=2;

批量插入数据

insert into emp10

select * from emp where deptno = 10;

5 update语句,语法结构例如以下:

UPDATE  table

SET   column = value [, column = value, ...]

[WHERE           condition];

update emp10

set deptno = 20

where empno = 7782;

6 delete语句

语法结构:

DELETE [FROM] table

[WHERE condition];

7 delete与truncate的差别

delete(删除表的数据)和truncate表(truncate实质把表drop然后又一次建表)差别:

1、delete逐条删除,truncate先摧毁在重建

2、delete语句是DML语句,truncate是DDL语言

A DML语句能够闪回 做错的而且提交了,能够通过闪回,撤销操作

B DDL语言不能够闪回 flashback

3、delete是逐条删除,会产生碎片,truncate不会产生碎片

行移动功能:要开启闪回功能,必需要开启行移动功能。

4、delete不会释放空间 truncate会

5、delete能够回滚 truncate不能够

6、oracle delete快,mysql truncate快

网络上关于delete和truncate的差别的介绍:

语法:

delete from tablename;

truncate table tablename;

差别:

1、 delete from后面能够写条件,truncate不能够

2、 delete from记录是一条条删的,所删除的每条记录都会进日志,而truncate一次次删掉整个页,因此日志里面仅仅记录页释放,简言之,delete from更新日志,truncate基本不,所用的事物日志空间较少。

3、 delete from删空表后,会保留一个空的页,truncate在表中不会留有不论什么页。

4、 当使用行锁运行DELETE语句时,将锁定表中各行以便删除。Truncate始终锁定表和页,而不是锁定各行。

5、 假设有identity产生的自增id列,delete from后仍然从上次的数開始添加,即种子不变,truncate后,种子会恢复初始。

6、 truncate不会触发delete的触发器,因此truncate操作不记录各个行删除。

总结:

1、 truncate和delete仅仅删除数据,不删除表的结构(定义)

drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,可是变为invalid状态。

2、 delete语句是dml操作,这个操作会放到rollback segement中,事务提交之后才生效;假设有对应的trigger,运行的时候将被触发truncate,drop是ddl操作,操作马上生效,原数据不放到rollback segment中,不能回滚。操作不触发trigger.

3、 delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不动,显然drop语句将表所占用的空间所有释放,truncate语句缺省情况下见空间释放到minextents个extent,除非使用reuse storage;truncate会将高水线复位(回到最開始)。

4、 速度,一般来说:drop > truncate > delete

5、 安全性:小心使用drop和truncate,尤其没有备份的时候,否则哭都来不及。

6、 使用上,想删除部分数据行用delete,注意带上where子句。回滚段要足够大。想删除表,当然用drop,想保留表而将全部数据删除。假设和事务无关,用truncate就可以,假设和事务有关,或者想触发trigger,还是用delete,假设是整理表内部的碎片,能够用truncate跟上reuse stroage,在又一次导入/导入数据。

8从文件里导入数据,通过命名delete和 truncate删除表数据

从文件导入数据

SQL> set timing off;

SQL> set feedback off;

SQL> drop table testdelete purge;

SQL> @c:\Sql.sql;

SQL>

SQL> set timing on; //最后删除数据表的时候,把时间打开,记录时间

SQL> delete from testdelete;

已用时间: 00: 00: 00.09

从文件导入数据:

set timing off;

@c:\Sql.sql;

set timing off;

select count(*) from testdelete;

set timing on; //最后删除数据表的时候,把时间打开,记录时间

truncate table testdelete;

已用时间: 00: 00: 00.51

总结:

truncate表一般比delete表的速度快,但Oracle做了优化,delete数据的时候更快些!

转载于:https://www.cnblogs.com/blfshiye/p/4066952.html

3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入...相关推荐

  1. 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入

     1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...

  2. oracle常用插入一条语句,Oracle:用一条 INSERT 语句批量插入多条记录

    用一条 INSERT 语句批量插入多条记录,实例如下: 先建立这样一个表 T: SQL> DESC T Name                       Null?    Type ---- ...

  3. oracle中drop、delete和truncate的区别

    oracle中drop.delete和truncate的区别 oracle中可以使用drop.delete和truncate三个命令来删除数据库中的表,网上有许多文章和教程专门讲解了它们之间的异同,我 ...

  4. 测试使用navicat工具将MySQL格式SQL文件导入到MogDB数据库

    点击上方"蓝字" 关注我们,享更多干货! 前言 当我们想把mysql格式的SQL文件导入到MogDB数据库时,我们可以借助navicat工具,先将SQL文件导入到mysql数据库中 ...

  5. batchupdate写法_mybatis执行批量插入insert和批量更新update

    Mybatis批量插入和批量更新数据的资料相信大家从网上能查找到很多资料,本文重点总结一下mybatis执行批量插入insert和批量更新update数据.在mysql数据库中批量插入,如:inser ...

  6. mysql中sql批量插入_sql中insert如何批量插入多条记录?

    sql中insert如何批量插入多条记录? sql中insert批量插入多条记录的方法: 常见的insert语句,向数据库中,一条语句只能插入一条数据:insert into persons (id_ ...

  7. mysql把sql文件导入到数据库

    mysql.exe -hlocalhost -uroot -p123456  --default-character-set=utf8 mydb < D:\mydb.sql 说明:把mydb.s ...

  8. sql文件导入mysql数据库出错_如何解决navicat导入sql文件出错的问题

    如何解决navicat导入sql文件出错的问题 发布时间:2020-11-11 17:05:39 来源:亿速云 阅读:120 作者:小新 这篇文章主要介绍了如何解决navicat导入sql文件出错的问 ...

  9. DM7-3.sql文件导入达梦数据库

    .sql文件导入达梦数据库 文章目录 .sql文件导入达梦数据库 导入(小文件) 导入(大文件) 导入(小文件) 点击执行脚本,选择要导入的文件即可. 导入(大文件) DM数据迁移工具 新建迁移 选择 ...

  10. 数据库学习day_01:SQL的发展和数据库操作相关sql语句

    1.数据库 学习数据库主要学习的就是如何对数据进行增删改查操作. 增加(插入数据) 删除数据 修改数据 查询数据 为什么使用数据库软件? 之前在webserver时通过IO技术已经操作过数据,其实这部 ...

最新文章

  1. You must reset your password using ALTER USER statement before executing thi
  2. 烂泥:haproxy学习之手机规则匹配
  3. 动荡的 2019:数据和 AI 生态圈
  4. sql php修改mysql结构_sql怎么修改表内容
  5. 未来的计算机作文500字,穿越到未来作文500字
  6. 基于Vue和axios的音乐播放器——悦听音乐效果展示及代码分享
  7. 如果你的名字,当然【随机】给你
  8. 多线程面试题系列(12):多线程同步内功心法——PV操作上
  9. hibernate缓存机制与N+1问题
  10. tkinter的GUI设计:界面与逻辑分离(三)-- 多页面
  11. Shadow DOM的理解
  12. linux 脚本 java_linux系统下运行java项目的脚本编写
  13. Conditional Expectation Entropy
  14. java递归下降计算四则运算_用递归下降方法实现算术表达式解析器
  15. Python自动化测试之PO模式
  16. 计算机视觉项目实战-基于特征点匹配的图像拼接
  17. npm WARN read-shrinkwrap This version of npm is compatible...报错解决
  18. 使用ffmpeg、nvdia解码rtsp视频流,cuda做NV12-RGBA转换
  19. 固态硬盘安装--系统迁移--设置引导启动项
  20. dao层通用封装_层超类型模式:封装多层系统中的通用实现

热门文章

  1. C++ 友元函数 友元类 friend class
  2. kubernetes视频教程笔记 (36)-部署 prometheus granfana
  3. 矿池如何给矿机下发任务
  4. 朱福喜 java_与朱福喜的教科同步JAVA实验指导书
  5. python小星_Python学习【第3篇】:列表魔法
  6. 数学建模第七章 数理统计
  7. 十、Oracle学习笔记:基本查询语句各子句用法
  8. 天梯赛座位分布-一点都不垃圾的模拟题,代码长度超过100行的都是傻子
  9. python3.7怎么安装的_怎么安装python3.7:python 3.7入门教程
  10. Consumer clientId=consumer-1, groupId=console-consumer-950] Connection to node -1 could not be