mysql 数据表操作进阶

mysql 数据表操作进阶

1 克隆数据表,导入表记录

1.1 方法一

create table [库名.]新的表名 like [库名.]参照表名; #根据参照表的表字段,创建一个新的表

insert into [库名.]新的表名 select * from [库名.]参照表名; #将参照表里的表记录复制到新的表上


#创建一个新的空数据表
create table school.class2 like class;  #依据class表的表字段,创建一个相同表字段的新的空数据表
show tables;
desc class2
select *  from  class2

image-20210825205817204


#向空的数据表中导入数据(表字段和数值类型要一样)
insert into  class2 select * from class;

image-20210825210142462



1.2 方法二

create table 库名.新表名 (select * from 库名.参照表名);

create table  school.class3 (select * from school.class);
select * from school.class3;

image-20210825211534022




2 查看创建表的过程

列式查看创建数据表的过程

show create table 表名 \G

show create table class \G

image-20210825213807306




3 清除表,删除表内的数据

3.1 清空表方法一

delete from [库名.]表名

delete 清除表的特点

delete 清空表后,返回结果内有删除的记录条目;

delete 工作时是一行一行的删除记录数据的;

如果表中有自增长字段,使用delete删除所有记录后,再次天剑的记录会从原来最大记录ID后面继续自增长写入

select * from number;  #查看当前number 表记录
delete from number;    #清空number 表
select * from number;  #再查看,确认已经清空
insert into number value();  #向number 表中插入数据。number 表中的字段值是自增长的
select * from number;     #再次查看number 表记录,发现其自增长字段的值是从之前最大的开始算

image-20210825215320919


3.2清空表 方法二

truncate table [库名.]表名

trunkcate 清空表的特点

trunkcate 清空白表后,没有返回被删除的条目;

truncate 工作时是将表结构按原样重新建立,因此速度上会比delete清空表快;

使用trunkcate清空表内数据后,ID会从1开始重新记录。

runcate table number;  #清空number 表

image-20210825220232391




4 创建临时表

create temporary table 表名(字段1 数据类型 约束类型 ,字段2 数据类型 约束类型.......);

临时表的特点

临时表创建之后,使用show databases; 命令时看不到创建的临时表的。

临时表会在退出后自动销毁。

在退出连接之前,也可以执行增删改查等操作,如,drop table 语句手动删除临时表

create temporary table test01(id int, name char(30));
show tables;
insert into test01 value(1,'zhangsan');
select * from school.test01;

image-20210825221543343

image-20210825221711055

posted @ 2021-08-30 12:09  知己一语  阅读(92)  评论(0编辑  收藏  举报