MySQL 大哥(主键)跟小弟(外键)

主键跟外键之间的关系,就好比说,网站里的谋篇文章,文章有一个文章ID,文章的评论有多条,每条评论又有一个评论ID,评论人,评论内容等相关信息。如果想要删除这篇文章。那就得去评论表里找相关的信息,然后删除。非常的麻烦。

因此,设置一个主键,当这篇文章删除时,改文章的评论也都删除了。

举个例子:

CREATE TABLE test_relevancy (
u_id INT auto_increment PRIMARY KEY,
u_name VARCHAR (15),
u_pwd VARCHAR (15),
u_truename VARCHAR (20),
u_role VARCHAR (6),
u_email VARCHAR (30)
) INSERT INTO test_relevancy
VALUES
(
1,
"wangc",
"aaaaaa",
"wangchao",
"buyer",
"wang@163.com"
),
(
2,
"huangfp",
"bbbbbb",
"huangfp",
"seller",
"huang@126.com"
),
(
3,
"zhang3",
"cccccc",
"zhangsan",
"buyer",
"zhang@163.com"
),
(
4,
"li4",
"dddddd",
"lisi",
"seller",
"li@1256.com"

然后再创建一个相关的表:

CREATE TABLE test_relevancy2 (
r_id INT auto_increment PRIMARY KEY,
r_userid INT,
r_companyid INT,
r_companyname VARCHAR (100),
FOREIGN KEY (r_userid) REFERENCES test_relevancy (u_id)
) INSERT INTO test_relevancy2
VALUES
(1, 1, 11111, '龙之芯'),
(2,1,11112,'龙之芯深圳分公司')

也可以给外键起个别名,那么应该这样写

constrain 'another name' FOREIGN KEY (r_userid) REFERENCES test_relevancy (u_id)

在进行查询,用户在哪几家公司工作过:

SELECT
a.u_truename,
a.u_role,
b.r_companyid,
b.r_companyname
FROM
test_relevancy a,
test_relevancy2 b
WHERE

a.u_id = b.r_userid;

查询结果:

    wangchao buyer 11111 龙之芯

    wangchao buyer 11112 龙之芯深圳分公司
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值