• delete和truncate操作


    SQL> --查询表的结构
    SQL> desc student;
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    SNO NOT NULL NUMBER(4)
    TNO NOT NULL NUMBER(4)

    SQL> insert into student values(1,1);
    insert into student values(1,1)
    *
    第 1 行出现错误:
    ORA-02291: 违反完整约束条件 (T09.FK_TEACHER_STUDENT) - 未找到父项关键字


    SQL> --因为teacher表中都没有id为1的,所有会报错
    SQL> desc teacher;
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    TNO NOT NULL NUMBER(4)
    TNAME NOT NULL VARCHAR2(20)
    TID VARCHAR2(20)
    BIRTHDAY DATE
    SAL NUMBER(7,2)
    SEX CHAR(2)

    SQL> --给teacher表新增数据
    SQL> insert into teacher(tno,tname) values(1,'黑黑');

    已创建 1 行。

    SQL> --查询teacher
    SQL> select tno,tname from teacher t;

    TNO TNAME
    ---------- ----------------------------------------
    1 黑黑

    SQL> select t.tno,t.tname from teacher t;

    TNO TNAME
    ---------- ----------------------------------------
    1 黑黑

    SQL> --提交事务
    SQL> commit;

    提交完成。

    SQL> --删除teacher 表中的数据
    SQL> delete * from teacher;
    delete * from teacher
    *
    第 1 行出现错误:
    ORA-00903: 表名无效


    SQL> delete from teacher;

    已删除 1 行。

    SQL> select * from teacher;

    未选定行

    SQL> --回滚事务
    SQL> rollback;

    回退已完成。

    SQL> select * from teacher;

    TNO TNAME
    ---------- ----------------------------------------
    TID BIRTHDAY SAL SEX
    ---------------------------------------- -------------- ---------- ----
    1 黑黑

    SQL> --truncate的删除
    SQL> select * from teacher;

    TNO TNAME
    ---------- ----------------------------------------
    TID BIRTHDAY SAL SEX
    ---------------------------------------- -------------- ---------- ----
    1 黑黑

    SQL> truncate table teacher;
    truncate table teacher
    *
    第 1 行出现错误:
    ORA-02266: 表中的唯一/主键被启用的外键引用


    SQL> --这个错误是因为student表中有外键关联teacher表
    SQL> truncate table teacher;

    表被截断。

    SQL> --回滚事务
    SQL> rollback;

    回退已完成。

    SQL> select * from teacher;

    未选定行

    SQL> --delete可以有条件
    SQL> --首先新增两条数据
    SQL> insert into teacher(tno,tname) values(1,'a');

    已创建 1 行。

    SQL> insert into teacher(tno,tname) values(2,'b');

    已创建 1 行。

    SQL> select * from teacher;

    TNO TNAME
    ---------- ----------------------------------------
    TID BIRTHDAY SAL SEX
    ---------------------------------------- -------------- ---------- ----
    1 a


    2 b

    SQL> delete from teacher where tno=1;

    已删除 1 行。

    SQL> select * from teacher;

    TNO TNAME
    ---------- ----------------------------------------
    TID BIRTHDAY SAL SEX
    ---------------------------------------- -------------- ---------- ----
    2 b

    SQL> --delete 删除可以有条件限制! truncate 无条件截断表!表中的数据全部丢失! 但是表结构还在!
    SQL> spool off;

     (以上内容来自王硕老师)

  • 相关阅读:
    ORACLE触发器详解
    论文笔记 Interpreting Black-Box Classifiers Using Instance-Level Visual Explanations
    Popush迭代2个人总结
    Popush迭代1个人总结
    Popush第5次会议记录
    Xv6代码阅读报告之进程调度
    Popush源代码学习报告
    Popush 第二次小组会议记录及分工
    Popush 用户故事
    “老衲印象”开发团队章程
  • 原文地址:https://www.cnblogs.com/liu-chao-feng/p/5890306.html
Copyright © 2020-2023  润新知