zoukankan      html  css  js  c++  java
  • 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 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数据的时候更快些!

     

  • 相关阅读:
    (六)静态域,静态方法和静态代码块
    (五)final修饰符
    (四)函数的参数传递——值传递
    (三)java字符串
    第二章 shell的语法
    字符串操作
    PropertyGrid—属性类别排序
    PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框
    PropertyGrid--为复杂属性提供编辑功能
    PropertyGrid—添加EventTab
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4066952.html
Copyright © 2011-2022 走看看