删除数据高级用法:delete,truncate

摘要:
它可以分为:先删除联接_教师,然后删除联接_老师_班级示例:从联接_教师中删除,联接_教师_班级使用联接_教师/班级联接_教师联接_教师。t_id=加入教师。id wherejoin_老师。id=1;删除前:命令:deletefromjoin_theter,join_theter_classusing_join_theker_classjoin_theheron join_thetor_class。t_id=加入教师。id wherejoin_老师。id=1;删除后:3.清除表操作:truncate,类似于从table_name中删除;截断的要点:1)删除的记录数不会返回;2) 重新生成自动增长的主键;3) 删除表,然后创建新表。示例:deletefrom_table;#系统提示已删除24条记录。

1、语法:


  delete 允许使用条件(删除符合条件的数据)
     允许使用limit,限制删除的记录数。limit N

        常见的是,limit配合order by来使用:先将结果排序,再删除固定数量的记录,如果只有order by的删除操作是没有意义的。
  例子:delete from teacher order by days desc limit 10;
  解析:将teacher表中的days字段按照降序排序,取前10条删除。

2、连接删除:


  允许使用类似的join语法,同时删除多个表内的记录。需要先提供表名,再提供连接条件。
  可以拆分成理解为:先delete join_teacher,再delete join_teacher_class


例子:

delete from join_teacher,join_teacher_class 
      using join_teacher_class join join_teacher on 
      join_teacher_class.t_id=join_teacher.id 
      where join_teacher.id=1;

删除前:

删除数据高级用法:delete,truncate第1张

删除数据高级用法:delete,truncate第2张

 命令:delete from join_teacher,join_teacher_class 
      using join_teacher_class join join_teacher on 
      join_teacher_class.t_id=join_teacher.id 
      where join_teacher.id=1;

删除后:

删除数据高级用法:delete,truncate第3张

删除数据高级用法:delete,truncate第4张


3、清空表操作:


    truncate,类似:delete from table_name;

   truncate要点:   1)不会返回删除的记录数;

             2)重建自动增长的主键 ;

             3)删除表,再新建表。

例子:truncate b_table;     #系统提示删除了24条记录。

   insert into b_table values (null,'hoho','会计');  #此时由于truncate命令的特性,不会保留删除的记录数,所以默认从a_id=1开始。  

删除数据高级用法:delete,truncate第5张

    delete要点:1)逐行删除 ;

            2)会保留增长的主键记录。

例子:delete from a_table;      #系统提示删除了24条记录。

    insert into a_table values (null,'haha','会计');        #此时由于delete命令的特性,会保留删除的记录数,所以默认从a_id=25开始。

删除数据高级用法:delete,truncate第6张

免责声明:文章转载自《删除数据高级用法:delete,truncate》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c# DataTable行转列POJ NOI0113-05 素数回文数的个数(PKU2928)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle数据库 DML语句的介绍与使用(转载)

DML(Data Manipulation Language)数据操纵语言,SQL的分类之一,此外还有DDL(Data Definition Language)数据定义语言和DCL(Data Control Language)数据控制语言。DML包括:INSERT、UPDATE、DELETE。注意,select语句属于DQL(Data Query Lang...

MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL

1 . cascade方式  在父表上update/delete记录时,同步update/delete掉子表的匹配记录     2. set null方式 在父表上update/delete记录时,将子表上匹配记录的列设为null要注意子表的外键列不能为not null   3. No action方式 如果子表中有匹配的记录,则不允许对父表对应候选键进行...

C/C++指针内存分配小细节

char *pc = NULL; pc = new char[0]; pc[0] = '1'; 相信初学者看见上面这段代码,都会觉得奇怪,new char[n]中的n指定给指针变量分配多少内存空间,而n=0时代表什么呢? 其实上面的程序编译、运行都是正确的。因为编译器识别到指定大小为0时,会自动为其分配1BYTE的内存空间。 尝试过的小伙伴会发现,给p[1...

【转】VC 模式对话框和非模式对话框的创建,销毁和区别

原文网址:http://blog.csdn.net/mycaibo/article/details/6002151 VC 模式对话框和非模式对话框的创建,销毁和区别  在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中,模式对话框一般是使用DoModal,...

Linux SVN 操作详解(转)

1、将文件checkout到本地目录 svn checkoutpath(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件 svnaddfile例如:svnaddtest.php(添加test.php)svnadd*.php(添加当前目录下所...

[转]C++中的自动存储、静态存储和动态存储

根据用于分配内存的方法,C++中有3中管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆)。在存在是间的长短方面,以这三种方式分配的数据对象各不相同。下面简要介绍这三种类型(注:C++11中新增了第四种类型——线程存储) 1.自动存储 在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable)...