扩展语句:
例:
自增长:
auto_increment:表示该字段可以自增长,默认从一开始,每条记录会自动递增1
复制:
通过like这个语法直接复制ky32的表结构,只能复制表结构,不能复制表里面的数据
把class3里面的数据复制到test中,两个表数据结构要一致、出现不了就刷新一下
创建一张表,test1,数据从class3来,表结构也是class3;
补充:
Delete truncate drop;
删除表内的所有数据;
Delete from class3;
delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的数据之后,继续自增写入,建议使用truncate
Truncate table class3;
清空表的结构,而且会把表法人结构程重新建立,速度上比delete快,推荐
Drop table test;
删除表,不推荐
创建临时表:
一般用于调试,而且临时表示创建之后再表目录当中是不显示的,连接退出之后,临时表会自动销毁,而且临时表无法创建外键
Mysql约束方式:
6种常用的约束方式:
- 主键约束,primary key,用于唯一标识的每一行,主键列的值必须是唯一而且不能为空,一个表只能有一个主键
- 外键约束,用于建立表之间的关系,一般是和另一张的表的主键关联,保证数据引用的完整性,一个表可以有多个外键
- 非空约束,not null必须有一个值
- 唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,而且一个表可以有多个唯一约束
- 默认值约束:default,在插入表数据时,如果没有定义值,会提供一个默认值
- 自增约束:auto_crement,每行自动生成一个唯一标识,通常和主键一起使用
练习:
创建一个表,包含所有约束
创建从表:
两者如何关联的呢:
如何删除表与表之间的关联:
主表和从表:
插入数据:先插入主表,再插入从表
删除数据:先删除主表,再删除从表
删除主表的主键
[SQL]alter table class drop primary key;
[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
翻译:这是一个自增约束的主键,要先改变他的数据类,解除自增约束,之后主键才可以删除
所以要改变他的自增类型:
所以要改变他的数据类型:
再次删除他的主键:
加强练习:
定义一个需求:
两张表:
主表company
从表depart
Company:
- work_id 非空,主键int(4) 不满四位要补充
- Name 非空 char(5)
- Sex 非空 char(2)
Depart:
- de_id 非空 主键int(6),不满六位要补齐
- Work_id 要和主表的work_id关联为外键
- Address 为空,但是有一个默认值
- phone不能为空,而且也不能相同
补充:用修改的方式来添加外键
添加主键:
第二题:
需要两张表: school
de_id int(4) 不满四位要补齐,而且自增长,主键
Name VARCHAR(15) not NULL
Email varchar(45) 可以为空,而且有默认值,www.baidu.com
2,cloud_ky32
Id 自增长 主键 int
Class_name 不能为空
De_id 外键,外键和主表的主键关联。(一般都在行没书写)
Adress 可以为空,默认是’地址不详’
Phone int 不能为空,而且不能重复
3.要求删除外键连接,删除从表的主键,重新定义主键为phone
删除从表的主键,重新定义主键为phone