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;

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

delete和truncate操作的更多相关文章

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

     1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...

  2. Oracle delete和truncate实践操作之一

    实践说明 本文章主要记录在Oracle中,delete和truncate进行数据删除之后,如何进行数据恢复.由于网上对delete和truncate的区别说明较多,此处不过多介绍两者区别. 注:由于环 ...

  3. 详解Oracle DELETE和TRUNCATE 的区别(摘)

    语法delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以. 2.delete from记录是一条条删的,所删除的每行 ...

  4. MySql的Delete、Truncate、Drop分析

    MySql的Delete.Truncate.Drop分析 相同点: truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据 不同点 1. truncate 和 ...

  5. SQL Server delete、truncate、drop

    在T-SQL中这三个命令符,相信很多朋友都不会陌生的,我自己在工作也会常常使用到它们,虽然我们清除的知道用这三个命令符可以达到怎样的预期效果. 但是却很少深入的去了解它们,知道它们有什么区别,又各有什 ...

  6. Delete和Truncate的区别

    原文:Delete和Truncate的区别 一般对于没有用的数据,都会经行删除,而删除通常使用的是DELETE和TRUNCATE命令.对于有条件地删除,基本上就会使用DELETE,当然还是没有绝对,用 ...

  7. Oracle中的delete和truncate的关系

    转自:http://chenxy.blog.51cto.com/729966/168459 1.相同点       a.都可以删除数据,其中truncate用于全表清空数据,而delete可以选择的删 ...

  8. 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较

    数据库删除语句的分别介绍: Delete:用于删除表中的行(注:可以删除某一行:也可以在不删除表的情况下(即意味着表的结构.属性.索引完整)删除所有行) 语法:删除某一行:Delete From 表名 ...

  9. oracle中delete、truncate、drop的区别

    oracle中delete.truncate.drop的区别 标签: deleteoracletable存储 2012-05-23 15:12 7674人阅读 评论(0) 收藏 举报  分类: ora ...

随机推荐

  1. [spring]xml配置文件中的"classpath:"与"classpath*:"的区别

    <bean id="sessionFactorySaas" class="org.mybatis.spring.SqlSessionFactoryBean" ...

  2. elasticsearch 集群的安装部署

    一 介绍 elasticsearch 是居于lucene的搜素引擎,可以横向集群扩展以及分片,开发者无需关注如何实现了索引的备份,集群同步,分片等,我们很容易通过简单的配置就可以启动elasticse ...

  3. UVA-10537 The Toll! Revisited (dijkstra)

    题目大意:每经过一个地方就要交出相应的货物作为过路费,问将一批货物从起点运到终点,最少需要携带多少货物? 题目分析:在每一站交的过路费由当前拥有的货物量来决定,所以,要以终点为源点,求一次单源最短路即 ...

  4. C++多线程2.beginthread

    C++ 多线程2 beginthread 启动线程知识 20131021 Reference: http://blog.csdn.net/laoyang360/article/details/7720 ...

  5. LeetCode OJ:Rotate List(旋转链表)

    Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...

  6. C# 用Mutex或进程限制一台电脑上同时打开多个实例

    private void Form1_Load(object sender, EventArgs e)        {            bool requestInitialOwnership ...

  7. 关于TCP/IP协议

    TCP的特点: TCP是面向连接的传输层协议 TCP的传输是可靠传输 TCP是全双工的通信 TCP的连接是点对点的传输 TCP和UDP的区别 tcp是面向连接的,两台主机的通信之前必须通过三次握手建立 ...

  8. 使用JQuery Deferred对象的then() 解决多个AJAX操作顺序依赖的问题

    原文地址:http://www.2cto.com/kf/201507/424202.html 之前的文章javascript异步代码的回调地狱中提到了编写AJAX代码经常遇到的3个问题,现在我们看下如 ...

  9. android 编译环境 & 开发教程 【持续更新】

    一. 优秀博文推荐 1.ubuntu 搭建 android源码编译环境 ubuntu14.04LTS android 源码编译环境的搭建 2.开源网站 2.android 开源 网站 2015最流行的 ...

  10. 强化学习使用pygame模块的安装

    当你正想运行强化学习的游戏时,突然提示没有安装pygame模块怎么办呢? 其实很简单,通过下面的命令,就可以安装: D:\AI\sample\tensorforce>pip install py ...