mysql中主键和外键的作用,主表和从表如何区分,以及如何使用联合查询和TP5的联合查询

mysql中主键和外键的作用,主表和从表如何区分,以及如何使用联合查询和TP5的联合查询

主键、外键和索引的区别

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键, 外键可以有重复的, 可以是空值,外键一定是至少涉及到两张表

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引

主表和从表

主表

在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。

有外键的表,一般都是主表

从表

以主表的主键(primary key)值为外键 (Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。

关系及用法概述

从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)

相关列子和联合查询

简单举例:

主表(用户信息)

table user

userid numeric(0,20)

username varchar2(20)

usercompany varchar2(50)

从表(用户订单)

table uorder

orderid numeric(0,20)

uid numeric(0,20)

ordertime date

orderstate char(1)

要对主表和从表进行信息联合查询语句简单如下:

select * from user u inner join uorder o on u.userid=o.uid

很简单就是 一对多的关系

一是主表

多是从表

tp5联合查询

public function blogs()

{

//以blogs为主表

$res = Db::name('blogs')

->alias("a") //取一个别名

//与category表进行关联,取名i,并且a表的categoryid字段等于category表的id字段

->join('category i', 'a.categoryid = i.id')

->join('user u', 'a.authorid = u.id')

//想要的字段

->field('a.id,a.title,a.content,u.username,a.createtime,i.category,a.look,a.like')

//查询

->select();

return json($res);

}

}

主表和从表如何区分

主表(父表)

在数据库中建立的表格即Table,其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识。

从表(子表)

以主表的主键(primary key)值为外键 (Foreign Key)的表,可以通过外键与主表进行关联查询。从表与主表通过外键进行关联查询。

关系及用法概述

从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。

相关推荐

使用mnggiflab网站录制GIF的完整教程
正规365没有黑钱

使用mnggiflab网站录制GIF的完整教程

🕒 07-04 👁️ 1596
CES|2025年有哪些AI眼镜值得买?
365下载bet

CES|2025年有哪些AI眼镜值得买?

🕒 06-28 👁️ 4530
MySQL表中有多少列
正规365没有黑钱

MySQL表中有多少列

🕒 06-28 👁️ 5389