首页 > 代码库 > SQL的类型

SQL的类型

SQL分以下三种类型

  1.DML(data manipulation Language)  数据操作语言

         insert ,update ,delete,select

  2.DDL(data definition language)数据定义语言

    create table,alter table,drop table,truncate table,create/drop view,sequence(序列),index,synonym(同义词)

  3.DCL(data control language)   数据控制语言

     grant(授权)    revoke(撤销权限)

1.insert

  1.1基本概念: 隐式插入空值,显示插入空值

  1.2插入数据可以采用地址符&

 insert into emp(empno,ename,sal,deptno) values(&empno,&ename,&sal,&deptno);
 select empno,ename,sal,&t from emp;
 select * from &t;

  1.3批量插入

   create table emp1o as select * from emp where 1=2;

      问题描述:一次性将emp中,所有10号部门员工插入到emp10中

   insert into emp10 select * from emp where deptno =10

  1.4海量插入数据

    1.4.1 数据泵(datapump)--->PLSQL

    1.4.2 SQL*Loader

    1.4.3(数据仓库)外部表

    1.4.4可传输的表空间

2.update

  2.1 更新操作时是否含有where,更新一条或多条

   update employees
   set salary = (select salary from employees where employee_id =205)
    where employee_id =114;

3.delete

   3.1delete和truncate 区别:

   3.1.1delete逐条删除,truncate先摧毁表,再重建表

   3.1.3delete不会释放空间,truncate 会

        3.1.5delete会产生碎片(空闲的空间,将数据之间隔开,影响select效率),truncate不会

      3.1.5.1去掉碎片:

         alter table<表名> move;

         导入,导出

   3.1.2delete是DML(可以回滚),truncate是DDL(不可以回滚)

   3.1.4delete可以闪回,truncate 不可以.删除的数据可以恢复    

   3.1.5 关闭返回数据,向oracle当中插入sql的脚本

    set feedback off                
    @d:\temp\testdelete.sql

        3.1.6 oracle当中delete的效率比truncate效率高

      原因:--undo数据(还原数据),所以delete的效率更高

 

4.事务:

    4.1由一个或多个DML语句组成,要么都成功,要么都失败,有四个特性(ACID)原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )

     4.2事务包含:本地事务和全局事务

    本地事务:操作的是数据库(取钱)

    全局事务:操作不一定是数据库(转账,发邮件,取钱)

  4.3事务的标志:

    4.3.1起始标志:事务的第一条DML语句

    4.3.2结束标志: 提交: 显示 commit

               隐式:正常退出(exit),DDL,DCL

             回滚:显式 rollback

                隐式: 非正常退出,掉电,宕机

   4.4控制事务

     4.4.1savepoint,可以控制事务回滚的位置,而不需要回滚真个目录      

      savepoint a 
      .....增删改查
      rollback to savepoint

 

 

    

       

 

SQL的类型