1、mysql的扩展语句
(1)创建表
if not exists yyy:这个表不存在才会创建
zerofill:自动补齐位置
primary key:当前表的主键,主键只能有一个,唯一且不能为空
auto_increment:表示该字段可以自增长。默认从1开始,每条记录会自动递增1
unique key 唯一性约束,跟主键不同,可以为空
(2)复制表
create table test like sss;复制表结构,通过like语句复制sss的表结构,不能复制表的数据
insert into test select * from sss;复制表的数据,两个表的数据结构要一致
create table test2 (select * from sss);复制表结构和数据
(3)删表
删除表内的所有数据:delete、truncate、drop
①delete from yyy;
delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的记录之后继续自增写入(有时有效)
②truncate table test;(工作中常用)
清空表的数据,而且会把表结构重新建立。速度比delete快
③drop table test2;(不推荐使用)
直接删除整个表
(4)创建临时表
临时表一般用于调试,创建后在表目录中不显示,连接退出之后,临时表会被销毁,且临时表无法创建外键
2、mysql的约束方式
(1)主键约束:用于唯一标识表中的每一行,主键列的值必须唯一且不能为空,一个表只能有一个主键
(2)外键约束:用于建立表与表之间的关系。一般是和另一张表的主键关联。作用:确保数据引用的完整性。一个表可以有多个外键
(3)非空约束:not null,该位置必须要有值,空格也算
(4)唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,且多个表可以有多个唯一约束
(5)默认值约束:default,在插入表数据值,如果没有定义值,会提供一个默认值
(6)自增约束:auto_increment,每行自动生成一个唯一标识,一般配合主键使用
show create table class; #查看从表class
主表和从表:
插入数据:先插入主表,再插入从表
删除数据:先删除主表,再删除从表
先删外键,再删外键索引
先解除自增约束,才能删除主键
内部外键关联
外部外键关联
3、实题:两张表建立主从关系
1、主表school
de_id int(4) 不满4位要补齐,自增长,主键
name varchar(15)不能为空
email varchar(45)可以为空,但是不能重复,且有默认值“bdqnkgc@126.com”
2、从表cloud_ky32
id int(4)自增长,主键
class_name 不能为空
de_id 外键,和主键关联
address可以为空,默认值“地址不祥”
phone int(11)不能为空且不能重复
3、删除外键关联,删除从表的主键,重新定义主键为phone
①创建主表
②创建从表
③删除从表的外键
④删除从表的主键
⑤重新定义主键