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",
"[email protected]"
),
(
2,
"huangfp",
"bbbbbb",
"huangfp",
"seller",
"[email protected]"
),
(
3,
"zhang3",
"cccccc",
"zhangsan",
"buyer",
"[email protected]"
),
(
4,
"li4",
"dddddd",
"lisi",
"seller",
"[email protected]"

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

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 龙之芯深圳分公司

猜你喜欢

转载自blog.csdn.net/alicia_n/article/details/80512877