mysql怎么让2个表关联起来

mysql怎么让2个表关联起来,第1张

方法和 *** 作步骤如下:

1、首先,创建一个测试表,如下图所示,然后进入下一步。

2、其次,插入测试数据,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,查询表中的数据,“select t.* from test_tbl2 t ”,如下图所示,然后进入下一步。

4、最后,完成上述步骤后,编写sql,两个表通过pid与id关联, “select t1.*, t2.* from test_tbl1 t1 join test_tbl2 t2 on t1.p_id = t2.id”,如下图所示。这样,问题就解决了。

来自MySQL的学习笔记,写的不对的地方大家多多指教哦

什么是外键?

假设有 2 个表,分别是表 A 和表 B,它们通过一个公共字段“id”发生关联关系,我们把这个关联关系叫做 R。如果“id”在表 A 中是主键,那么,表 A 就是这个关系 R 中的主表。相应的,表 B 就是这个关系中的从表,表 B 中的“id”,就是表 B 用来引用表 A 中数据的,叫外键。所以,外键就是从表中用来引用主表中数据的那个公共字段。

语法结构:

在创建表时添加外键约束:

在修改表时定义外键约束:

例子1:创建表时添加外键约束

首先创建主表:importhead

创建从表:test_mysql.importdetails

查询外键约束的相关信息:

查询结果为:

例子2:修改表时定义外键约束

修改表时定义从表test_mysql.importdetails的外键约束

删除外键约束使用DROP,语法结构为:

例子:删除从表test_mysql.importdetails的外键约束

在 MySQL 中,有 2 种类型的连接,分别是内连接(INNER JOIN)和外连接(OUTER JOIN)。

在 MySQL 里面,关键字 JOIN、INNER JOIN、CROSS JOIN 的含义是一样的,都表示内连接。我们可以通过 JOIN 把两个表关联起来,来查询两个表中的数据。

例子:有一张销售表,如下图:

有一张会员信息表,如下图:

通过内连接,查询会员的销售记录:

运行语句,结果如下:

根据上面的结果,其实可以得知:内连接查询到结果集为两个表的交集部分。

跟内连接只返回符合连接条件的记录不同的是,外连接还可以返回表中的所有记录,它包括两类,分别是左连接和右连接。

例子1:左外连接

如果需要查询所有销售记录,则可以使用左外连接

运行语句,结果为:

从上面的结果可以得知,LEFT JOIN左边的表会返回全部记录,而右边的表只返回符合连接条件的记录

例子2:右外连接:

运行语句,结果为:

从上面的结果可以得知,RIGHT JOIN右边的表会返回全部记录,而左边的表只返回符合连接条件的记录

mysql 两个表中的信息关联起来使用方法:

1、创建主表:

create table UserInfo(

UserID int identity(1,1) primary key, --递增主键

UserAccounts varchar(20),

UserName varchar(20),

UserPwd varchar(10))

2、创建附表(含外键)

create table News(

NewsID int identity(1,1) primarykey,

UserID int,

NewsTitle varchar( 50 ),

NewsRelease varchar( 200 ),

NewsReleaseTime datetime,

FOREIGN KEY (UserID) REFERENCES UserInfo(UserID))--外键约束

如果附表已存在,但没外键,可采用以下方法:

alter table profession add constraint fk_prov_id foreign key(prov_id) references province(prov_id) on update cascade on delete cascade


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8758372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存