MySQL(十四)—— 表的一些操作

Posted 大彤小忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL(十四)—— 表的一些操作相关的知识,希望对你有一定的参考价值。

14. 表的一些操作

14.1 insert 语句一次插入多条记录

  insert 语句可以一次插入多条记录吗?可以的!

  desc t_user;


  insert 语句一次插入多条记录的语法: insert into t_user(字段名1,字段名2) values(),(),(),();

insert into t_user(id,name,birth,create_time) values
(1,'zs','1980-10-11',now()), 
(2,'lisi','1981-10-11',now()),
(3,'wangwu','1982-10-11',now());

14.2 快速创建表

  快速创建表emp2:create table emp2 as select * from emp;


  原理: 1. 将一个查询结果当做一张表新建!
      2. 这个可以完成表的快速复制!
      3. 表创建出来,同时表中的数据也存在了!

  有条件的创建表mytable:create table mytable as select empno,ename from emp where job = 'MANAGER';

14.3 将查询结果插入到一张表当中

  快速创建表 dept_bak: create table dept_bak as select * from dept;


  将查询结果插入到表 dept_bak 当中:insert into dept_bak select * from dept;(很少用)

14.4 快速删除表中的数据

  删除 dept_bak 表中的数据:delete from dept_bak; ,这种删除数据的方式比较慢。

  • delete语句删除数据的原理:(delete属于DML语句!)
    ⋄ \\diamond 表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!
    ⋄ \\diamond 这种删除缺点是:删除效率比较低。
    ⋄ \\diamond 这种删除优点是:支持回滚,后悔了可以再恢复数据!

  • truncate语句删除数据的原理
    ⋄ \\diamond 这种删除效率比较高,表被一次截断,物理删除。
    ⋄ \\diamond 这种删除缺点:不支持回滚。
    ⋄ \\diamond 这种删除优点:快速。

  truncate语句删除数据的用法truncate table dept_bak; (这种操作属于DDL操作)

  当大表非常大,例如上亿条记录,删除的时候,使用delete,也许需要执行1个小时才能删除完,效率较低。可以选择使用truncate删除表中的数据,只需要不到1秒钟的时间就删除结束,效率较高。但是使用truncate之前,必须仔细询问客户是否真的要删除,并警告删除之后不可恢复!

  truncate是删除表中的数据,表还在!
  删除表操作:drop table 表名;,这不是删除表中的数据,这是把表删除。

14.5 对表结构的增删改

  什么是对表结构的修改?
  添加一个字段,删除一个字段,修改一个字段!

  对表结构的修改需要使用:alter(属于DDL语句,DDL包括:createdropalter。)

  注意: 1. 在实际的开发中,需求一旦确定之后,表一旦设计好之后,很少的进行表结构的修改。因为开发进行中的时候,修改表结构,成本比较高。
      2. 由于修改表结构的操作很少,所以我们不需要掌握,如果有一天真的要修改表结构,可以使用工具!

以上是关于MySQL(十四)—— 表的一些操作的主要内容,如果未能解决你的问题,请参考以下文章

第十四课 线性表的本质和操作

史上最简单的 MySQL 教程(十四)「列属性 之 主键」

第十四课线性表的本质和操作-----------------狄泰软件学院

leetcode刷题MySQL题解二十四

leetcode刷题MySQL题解二十四

Python开发第十四篇:Python操作MySQL