zoukankan      html  css  js  c++  java
  • 数据库 数据库SQL语句五

    集合运算
    
    union 并集(两个集合如果有重复部分,那么只显示一次重复部分)
    union all 并集(两个集合如果有重复部分,那么重复部分显示两次)
    intersect 交集
    minus 差集
    
    --查询部门号是10和20号的员工信息
    select * from emp where deptno=10
    union
    select * from emp where deptno=20
    
    集合运算注意事项:
    1.参与运算的各个集合必须列数相同,并且类型一致
    2.采用第一个集合的表头作为结果集的表头
    DML数据操作
    
    insert语句语法
    使用insert语句向表中插入数据
    insert into 表名 (列名1,列名2,...)
    values (value1,value2,...)
    
    --插入一条完整的数据(不需要加列名)
    insert into emp values(7288,'JACk','CLERK',7902,'17-12月-80',1600,null,20)
    
    --插入一条不完整的数据(需要加列名)
    insert into emp (EMPNO ,ENAME,JOB,MGR,SAL,DEPTNO) values(7289,'JHON','CLERK',7902,1780,20)
    
    --插入空值的两种方式
    1.隐式插入(不完整插入就是隐式插入)
    2.显式插入(null就是显式插入)
    
    --插入日期的指定值
    insert into emp values(7293,'BLACKH','CLERK',7902,to_date('1990-2-4 9:30:28','yyyy-mm-dd hh12:mi:ss'),3400,null,20)
    
    --插入中的&操作符(需要用户输入empno和deptno的值)
    insert into emp (EMPNO,ENAME,JOB,MGR,SAL,DEPTNO) values(&empno,'JHON','CLERK',7902,1780,&deptno)
    
    --回退事务
    SQL> rollback;--oracle默认开启事务
    
    --新创建一个表(拷贝emp的表结构)
    create table t1
        as 
        select * from emp where 1=2
    
    --从emp表中把10号部门的员工数据插入到t1表中
     insert into t1 ( select * from emp where deptno=10 );
    --子查询不光在select中使用,而且可以在insert子句中使用
    --不必书写values子句
    --子查询中的值列表应与insert子句中的列名对应
    update语句语法
    --更新数据
    --可以一次更新多条数据
    update 表名
    set colnum1=value1,colnum2=value2,...
    where condition
    
    eg:SQL> update t1 set ename='JOKE',sal=3000 where empno=7782;
    delete语句
    --从表中删除数据(表是一直存在的)
    delete from 表名
    where condition
    
    eg: delete from t1 where empno=7782;
    truncate语句
    truncate:清空表
    truncate table t1;--删除表中的所有数据
    delete和truncate的区别
    1.delete逐条删除 truncate先摧毁再重建
    2.delete语言是DML语言 truncate是DDL语言
    DML语言可以闪回,做错了并且提交了,可通过闪回撤销操作
    DDL语言不可以闪回
    3.delete是逐条删除,会产生碎片,truncate不会产生碎片
    4.delete不会释放空间,truncate会
    5.delete可以回滚,,truncate不可以
    6.oracle delete快 mysql truncate快
    sql语句优化⑤:oracle中删除表数据,delete快;mysql中删除表数据,truncate快。
    常用oracle命令
    --set timing off;--关闭sql执行时间显示
    --set feedback off;--关闭数据反馈
    --@c:sql.sql--从c盘导入sql文件
    --set timing on;--打开sql执行时间显示
    数据库事务
    概念:一个或多个DML语句组成
    特点:要么都成功,要么都失败
    特性:原子性 一致性 隔离性 持久性
    事务的隔离性:多个客户端同时操作数据库时,会隔离他们的操作,
                  因为oracle实例并不会直接将操作提交到数据库,所以多个事务之间的操作互不影响
    事务的开始和结束
    1.事务起始的标志:DHL语言(oracle默认事务是打开的2.事务结束的标志
        提交:显式提交commit
              隐式提交(1)执行DDL语言,DDL语言能隐式的提交数据
                eg:create table语言
                (2)正常退出
        回滚:显式:rollback
              隐式 断电,非正常退出,系统出错
    回滚到保存点
    1.使用savepoint语句在当前事务中创建保存点
    eg:savepoint al;--创建保存点a1
    2.使用rollback to savepoint 语句回滚到创建的保存点
    eg:rollback to savepoint a1;回滚到a1保存点
  • 相关阅读:
    Mysql分布式事务
    Mysql锁
    Mysql事务隔离级别
    java 资源监控
    Mysql子查询
    javaWeb四大域对象
    KVM 迁移
    KVM 虚拟化
    网络基础
    系统简单启动过程
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6266119.html
Copyright © 2011-2022 走看看