3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入
1相关术语
|
语句 |
含义 |
操作 |
|
DML语句 |
(Data Manipulation Language) 数据库操作语言 |
insert update delete select |
|
DDL语言 |
(Date definition Language) 数据库定义语言 |
create table;create view index sequence synonvm同义词,truncate |
|
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 |
|
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不会释放空间 |
|
5、delete能够回滚 truncate不能够 |
|
6、oracle delete快,mysql |
网络上关于delete和truncate的差别的介绍:
|
语法: |
|
delete from tablename; truncate table tablename; |
|
差别: |
|
1、 delete 2、 delete 3、 delete 4、 当使用行锁运行DELETE语句时,将锁定表中各行以便删除。Truncate始终锁定表和页,而不是锁定各行。 5、 假设有identity产生的自增id列,delete 6、 truncate不会触发delete的触发器,因此truncate操作不记录各个行删除。 |
|
总结: |
|
1、 truncate和delete仅仅删除数据,不删除表的结构(定义) drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,可是变为invalid状态。 2、 delete语句是dml操作,这个操作会放到rollback 3、 delete语句不影响表所占用的extent,高水线(high 4、 速度,一般来说:drop 5、 安全性:小心使用drop和truncate,尤其没有备份的时候,否则哭都来不及。 6、 使用上,想删除部分数据行用delete,注意带上where子句。回滚段要足够大。想删除表,当然用drop,想保留表而将全部数据删除。假设和事务无关,用truncate就可以,假设和事务有关,或者想触发trigger,还是用delete,假设是整理表内部的碎片,能够用truncate跟上reuse |
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文件导入的更多相关文章
- 【AOP】操作相关术语---【Spring】的【AOP】操作(基于aspectj的xml方式)
[AOP]操作相关术语 Joinpoint(连接点):类里面哪些方法可以被增强,这些方法称为连接点. Pointcut(切入点):在类里面可以有很多的方法被增强,比如实际操作中,只是增强了类里面add ...
- 一条insert语句批量插入多条记录
一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName, ...
- mybatis oracle两种方式批量插入数据
mybatis oracle两种方式批量插入数据 注意insert,一定要添加: useGeneratedKeys="false" ,否者会报错. <insert id=&q ...
- 【树莓派】h2数据库操作相关
之前在树莓派上面操作时候,遇到一些业务方面的bug,和团队中的同事经过多次尝试,但就是难以重现用户现场的问题. 但是问题却实实在在地发生,虽然并不是必然可重现的bug,但是也比较闹心: 发生了问题,也 ...
- 数据库操作相关(sql语句-php)
文件:db.config.smarty.php 这个文件主要是用于数据库配置 <?php $db = array( 'host'=>'localhost', 'user'=>'roo ...
- linux 操作之一 如何在linux将本地数据*.sql文件导入到linux 云服务器上的mysql数据库
liunx 版本ubuntu 16.4 mysql 版本 5.6 1)准备*.sql文件 (* 是准备导入的sql文件的名字) 2)liunx 远程客户端 SecureCRT 7.0 alt+p ...
- 【JDBC】使用Spring提供的JDBCTemplate通过Statement向MySql数据库插入千万条数据,耗时4m55s,使用insert语句批量插入方式二
这回依然是使用 insert批量插入这种方式 insert into emp(name,age,cdate) values ('A' , 20, '2019-10-13 00:00:00'), ('B ...
- Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除
今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /* ...
- MYSQL批量插入数据库实现语句性能分析【转】 批量插入!程序里面对于数据库插入的功能尽量用【异步处理+批量插入+(事务)】
假定我们的表结构如下 代码如下 CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VA ...
随机推荐
- array_multisort 关联(string)键名保持不变,但数字键名会被重新索引。
$array = [ '2' => [ 'title' => 'Flower', 'order' => 3 ], '3' => [ 'title' => 'Rock', ...
- Java程序员面试题集(71-85)(转)
转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ...
- 代码中实际运用memcached——java
以下文章取自:http://jameswxx.iteye.com/blog/1168711 memcached的java客户端有好几种,http://code.google.com/p/memcach ...
- gcc和arm-linux-gcc区别
安装arm-linux-gcc的时候,查了不少资料,总算环境搭好了.于是,想写个程序员的经典程序---hello world. 语法都没错,生成test.c. 命令行运行:arm-linux-gcc ...
- stagefright框架(六)-Audio Playback的流程
到目前为止,我们都只着重在video处理的部分,对于audio却只字未提.这篇文章将会开始audio处理的流程. Stagefright中关于audio的部分是交由AudioPlayer来处理,它是在 ...
- onvif规范 中文介绍
什么是ONVIF ? ONVIF规范描述了网络视频的模型.接口.数据类型以及数据交互的模式.并复用了一些现有的标准,如WS系列标准等. ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产 ...
- DataSet、DataTable、DataRow区别
DataSet 表示数据在内存中的缓存. 属性 Tables 获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据 ...
- Javascript进阶篇——( 事件响应)笔记整理
什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 鼠标单击事件(on ...
- andrid中的Sqlite 数据库连接(本地版)
sqlite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前 ...
- 今天进行了一次IOS面试,分享一下面试结果
IOS开发工程师岗位职责:1.负责移动产品IOS版客户端软件开发:2.可根据需求独立完成客户端软件的设计和开发;3.日常工作包括手机软件系统开发.单元测试.维护以及文档编写:不定期的公司内部培训.任职 ...