MySQL数据库进阶操作一(克隆表、清空表、创建临时表及外键约束)

准备工作

在这里插入图片描述

一、克隆表,将数据表的数据记录生成到新的表中

方法一:

create table TEST02 like TEST01;          #通过 LIKE 方法,复制 TEST01 表结构生成 TEST02表
insert into test02 select * from TET01;   #修改表 TEST02 ,使其从表 TEST01 中获取字段

在这里插入图片描述
在这里插入图片描述

方法二:

create table TEST03 (select * from TEST01);
select * from TEST03;

show create table TEST03\G             #获取数据表的表结构、索引等信息

在这里插入图片描述
在这里插入图片描述

二、清空表,删除除表内的所有数据

方法一:

delete from TEST02;

在这里插入图片描述

此方法清空表后,返回的结果内有删除的记录条目;delete工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用 delete from 删除所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。

例:create table  TEST04 (id int primary key auto_increment,name varchar(20) not null,age char(2) not null unique key);

在这里插入图片描述
在这里插入图片描述

方法二:

truncate table TEST04;

truncate 清空表后,没有返回被删除的条目;truncate 工作时是将表结构按原样重新建立,因此在速度上 truncate 会比 delate 清空表快;使用truncate table 清空表内数据后,ID 会从1开始重新记录。
在这里插入图片描述

三、创建临时表

临时表创建成功之后,使用 show table 命令是看不到创建的临时表的,临时表会在连接退出后被销毁。如果在退出连接之前,也可以可执行增删改查等操作,比如使用 drop table 语句手动直接删除临时表。

create temporary table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key(主键名)]);

例:
在这里插入图片描述
在这里插入图片描述

四、创建外键约束,保证数据的完整性和一致性。

外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x称为表二的外键。

主键表和外键表的理解:

  • 以公共关键字作主键的表为主键表(父表、主表)
  • 以公共关键字作外键的表为外键表(从表、外表)

注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

创建主表TEST05
create table TEST05 (hobid int(4),hobname varchar (50));

在这里插入图片描述

创建从表TEST06
create table TEST06(id int(4) primary key auto_increment,name varchar(10) , age int (3) , hobid int(4));

在这里插入图片描述

为主表test04添加一个主键约束。主键名建议以"PK_"开头。
alter table TEST05 add constraint PK_hobid primary key(hobid);

在这里插入图片描述
在这里插入图片描述

为从表test05表添加外键,并将test05 表的hobid 字段和test04表的hobid字段建立外键关联。外键名建议以"FK_"开头。
alter table TEST06 add constraint FK_hob foreign key (hobid) references tTEST05 (hobid);

在这里插入图片描述
在这里插入图片描述

例:插入新的数据记录时,要先主表再从表
insert into TEST06 values (1,'zhangsan','20',1);
insert into TEST05values (1,'study');
insert into TEST06 values (1,'zhangsan','20',1);

在这里插入图片描述
删除外键约束
在这里插入图片描述
注:如果要删除外键约束字段
先删除外键约束,再删除外键名

show create table TEST06;
alter table TEST06 drop foreign key FK_hobid;
alter table TEST06 drop key FK_hobid;
desc TEST06;

MySQL中6种常见的约束:
主键约束(primary key)
外键约束(foreign key)
非空约束(not null)
唯一性约束(unique [key | index] )
默认值约束(default)
自增约束(auto_increment)

猜你喜欢

转载自blog.csdn.net/weixin_51613313/article/details/113249614