2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Mysql主键约束与外键约束

Mysql主键约束与外键约束

时间:2021-02-04 12:37:51

相关推荐

Mysql主键约束与外键约束

主键约束:primary key

声明了主键约束的列上不允许插入重复的值,一个表中只能有一个主键约束,通常加在编号列,会加快数据的查找速度,并且编号会按照从大到小的顺序排列

: 主键约束的列禁止插入null

外键约束:

声明了外键约束的列,插入的值必须在另一个表中出现过才行;外键列要和对应的主键列类型要保持一致

目的就是为了让两个表之间产生关联

foreign key(外键列) references 另一个表 (主键列)

auto_increment 自动增长,如果设置了自增列,在插入数据的时候,只需要赋值为null,就会获取当前的最大值然后加1插入

那有没有小伙伴很迷惑的说如果在主键上设置自增,那岂不是很矛盾,一个不允许为空,一个又要全部设置为null.其实在这里一点也不奇怪,有一个说法,在主键列上设置自增,正是有了自增列的出现,让本不允许的为空的主键,反而又可以为空了。`

#设置客户端连接服务器端的编码set names utf8;#丢弃数据库如果存在drop database if exists zw;#创建新的数据库,并设置编码格式create database zw charset=utf8;#进入创建的数据库use zw;#创建主表create table zhu(zid int primary key,zname varchar(15));#创建外表create table wai(wid int primary key auto_increment,wname varchar(15),zhuid int,//意思就是说使这一列与主键产生关联foreign key (zhuid) references zhu(zid)//固定语法,foreign key(外键的意思)(zhuid外键表咧名子)references取值范围zhu(zid)主键列下的zid);#主表插入值insert into zhu values(10,'联想'),(20,'戴尔'),(30,'小米');#外表插入值insert into wai values(null,'小米Air',20),(null,'TP',10),(null,'外星人',30);

那怎么让两个表之间产生关联呢,例如:联想所属TP,戴尔所属小米Air,小米所属外星人,

要想实现这个,就要用到多表查询语句了

select wname,zname from wai,zhu where zhuid=zid;

select 要与另一个表产生关联的表列,另一个表列 from 表名,另一个表名 主键列=外键列;

最后查询结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。