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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:  1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date definition Language)


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批量插入数据

A10号部门的员工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 deletetruncate的区别

delete(删除表的数据)truncate表(truncate实质把表drop然后重新建表)区别:

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

2delete语句是DML语句,truncateDDL语言

  A DML语句可以闪回 做错的并且提交了,可以通过闪回,撤销操作

  B DDL语言不可以闪回 flashback

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

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

4delete不会释放空间 truncate

5delete可以回滚 truncate不可以

6oracle delete快,mysql truncate

网络上关于deletetruncate的区别的介绍:

语法:

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、 truncatedelete只删除数据,不删除表的结构(定义)

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

2、 delete语句是dml操作,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发truncate,dropddl操作,操作立即生效,原数据不放到rollback segment中,不能回滚。操作不触发trigger.

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

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

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

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

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
254 0
|
1月前
|
SQL 数据库
DBeaver执行sql文件
本文介绍了DBeaver这款支持多种数据库的通用数据库管理工具和SQL客户端,它具备查看数据库结构、执行SQL查询和脚本、浏览和导出数据等功能。
92 1
DBeaver执行sql文件
|
1月前
|
SQL 关系型数据库 MySQL
|
1月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
1月前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
1月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
56 3
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
171 1
|
1月前
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
53 1
|
2月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
1月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面