在MySQL中如何设置主键和外键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MySQL中如何设置主键和外键相关的知识,希望对你有一定的参考价值。

1.外键的作用,主要有两个:

一个是让数据库自己通过外键来保证数据的完整性和一致性

一个就是能够增加ER图的可读性

2.外键的配置

1)先创建一个主表,代码如下:

#创建表student,并添加各种约束

create table student

(

id int primary key , #主键约束

name varchar(20) , #唯一约束

age int NOT NULL, #非空约束

sex varchar(2) ,

address varchar(20) default '重庆' #默认约束

) ;

再通过一个外键,创建一个分数表,这样的话,就可以方便查询。代码如下:

#创建分数表

create table score

(

id int primary key ,

sid int ,

china int ,

history int,

english int,

constraint FK_sid foreign key(sid) references student(id) #通过外键创建链接

) ;

创建外键的方法有很多,其中最常见创建外键的格式是:constraint FK_*** foreign key(**) references 链接的外表

删除外键:

alter table drop foreign key '外键名'.

注意:

只有在定义外键时,用constraint 外键名 foreign key .... 方便进行外键的删除

主键是唯一标示这一行的,就好像你的身份证号一样,每个人只有一个,也是唯一能证明你是你的东西。外键是别人执行你的东西。也就是说如果一个人想和你有点关系怎么办,那就要关联起来,怎么关联起来,就通过外键啊

定义主键和外键主要是为了维护关系数据库的完整性,总结一下:

一、主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
参考技术A CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

给你一个例子,其中倒数第二行就是主键的定义,其余都是外键。mysql里面创建表就按照一般步骤来,把所有创建好(包括id、title、author、date),然后用primary来规定谁是主键。
参考技术B 添加主键~ ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名); 添加外键~ ALTER TABLE table_name ADD CONSTRAION pk_name FOREIGN KEY(列名) REFERENCES table_name(列名); 基础语法~其他条件自行添加在MySQL中如何设置主键和外键本回答被提问者采纳 参考技术C 添加主键~
ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
添加外键~
ALTER TABLE table_name ADD CONSTRAION pk_name FOREIGN KEY(列名) REFERENCES table_name(列名);
基础语法~其他条件自行添加

如何在 Clickhouse 中使用主键和外键的功能?

【中文标题】如何在 Clickhouse 中使用主键和外键的功能?【英文标题】:How can I use functionality of Primary Key and Foreign Key in Clickhouse? 【发布时间】:2021-02-24 16:25:05 【问题描述】:

我最近创建了一个关系数据库模型,它有很多主键和外键关系。我想为我的数据库使用 clickhouse,但事实证明 clickhouse 不支持外键和唯一主键。如果我在这里遗漏了什么,有人可以告诉我。

【问题讨论】:

【参考方案1】:

你是对的。 CH 没有独特的和外来的约束。 此外,JOIN 并不是 ClickHouse 最好的部分。

ClickHouse 建议创建单个宽非规范化表并尽可能避免连接。

【讨论】:

以上是关于在MySQL中如何设置主键和外键的主要内容,如果未能解决你的问题,请参考以下文章

数据库之主键外键

在sql中请举例说明主键,和外键?详细举例,快,好,采纳!!!

sql中创建组合主键和组合外键

sql中啥叫主键表,啥叫外键表

数据库中主键和外键的作用?

sql server的主键与外键问题