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包括:create
、drop
、alter
。)
注意: 1. 在实际的开发中,需求一旦确定之后,表一旦设计好之后,很少的进行表结构的修改。因为开发进行中的时候,修改表结构,成本比较高。
2. 由于修改表结构的操作很少,所以我们不需要掌握,如果有一天真的要修改表结构,可以使用工具!
以上是关于MySQL(十四)—— 表的一些操作的主要内容,如果未能解决你的问题,请参考以下文章