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数据的时候更快些!

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

  1. 【AOP】操作相关术语---【Spring】的【AOP】操作(基于aspectj的xml方式)

    [AOP]操作相关术语 Joinpoint(连接点):类里面哪些方法可以被增强,这些方法称为连接点. Pointcut(切入点):在类里面可以有很多的方法被增强,比如实际操作中,只是增强了类里面add ...

  2. 一条insert语句批量插入多条记录

    一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName,  ...

  3. mybatis oracle两种方式批量插入数据

    mybatis oracle两种方式批量插入数据 注意insert,一定要添加: useGeneratedKeys="false" ,否者会报错. <insert id=&q ...

  4. 【树莓派】h2数据库操作相关

    之前在树莓派上面操作时候,遇到一些业务方面的bug,和团队中的同事经过多次尝试,但就是难以重现用户现场的问题. 但是问题却实实在在地发生,虽然并不是必然可重现的bug,但是也比较闹心: 发生了问题,也 ...

  5. 数据库操作相关(sql语句-php)

    文件:db.config.smarty.php 这个文件主要是用于数据库配置 <?php $db = array( 'host'=>'localhost', 'user'=>'roo ...

  6. linux 操作之一 如何在linux将本地数据*.sql文件导入到linux 云服务器上的mysql数据库

    liunx 版本ubuntu 16.4 mysql 版本  5.6 1)准备*.sql文件 (* 是准备导入的sql文件的名字) 2)liunx 远程客户端  SecureCRT 7.0 alt+p ...

  7. 【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二

    这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...

  8. Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除

    今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /* ...

  9. MYSQL批量插入数据库实现语句性能分析【转】 批量插入!程序里面对于数据库插入的功能尽量用【异步处理+批量插入+(事务)】

    假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VA ...

随机推荐

  1. Impala 1、Impala理论

    1.Impala简介 • Cloudera公司推出,提供对HDFS.Hbase数据的高性能.低延迟的交互式SQL查询功能. • 基于Hive使用内存计算,兼顾数据仓库.具有实时.批处理.多并发等优点 ...

  2. laravel5.3 笔记一

    laravel5.3 笔记 安装环境 laravel环境,laravel中文学习论坛上面有相关的教程 创建应用 laravel new blog 其中blog就是你的应用的名字 数据迁移 php ar ...

  3. 使用 apache ant 轻松实现文件压缩/解压缩(转)

    原文地址:http://blog.csdn.net/irvine007/article/details/6779492 maven配置ant包: <dependency> <grou ...

  4. java笔记之静态修饰附和单例设计模式

     第六天笔记 静态修饰符static: 一.static修饰成员变量: static用来修饰成员变量叫静态成员变量,没有static修饰的成员变量叫非静态成员变量 静态成员的访问方式: (1)   用 ...

  5. Yougth的最大化(好题,二分查找 0 1分数规划)

    Yougth的最大化 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价 ...

  6. pt-table-checksum解读

    pt-table-checksum是目前可以说是最好的查看主从一致性的工具 先来个使用例子,有助快速上手使用 在主库执行: mysql>GRANT SELECT, PROCESS, SUPER, ...

  7. bach cello

    http://bachlb.blog.163.com/blog/static/1819105120073275251223 一个偶然的机会,卡萨尔斯的父亲来巴塞罗那看卡萨尔斯,并且一起去逛了一间海边的 ...

  8. 伪元素”:after” , “:before"

    伪元素就是源码html中不存在,而视觉上又存在的元素     简单用法: blockquote:before {      content: open-quote;      // 其他样式 } // ...

  9. Java内存模型(转载)

    1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一.一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题 ...

  10. hadoop压缩配置

    为何要使用压缩,压缩可以是文件的大小减小很多,节省空间:另外压缩后的文件在传输时更节省带宽. 所需软件: 1)lzo 2)hadoop-lzo 3)maven 安装编译: 1)lzo wget htt ...