当前位置:Gxlcms > 数据库问题 > Mysql-联结

Mysql-联结

时间:2021-07-01 10:21:17 帮助过:22人阅读

TABLE vendors( vend_id INT(10) not null PRIMARY KEY, name VARCHAR(20) not null, telephone VARCHAR(11) ); CREATE TABLE products( pro_id INT(10) not NULL PRIMARY KEY, name VARCHAR(20) not NULL, dec VARCHAR(50) DEFAULT NULL );

 

外键为某个表的一列,它包含另一个表的主键值,定义两个表之间的关系。

联结表的优点:

1)避免了信息重复,节约了时间和空间

2)某个数据变动,只需改变其响应的数据表即可

3)数据无重复使得数据能够更有效的存储和方便的处理,伸缩性强能够适应不断增加的工作量

 

如果数据存储在多个表中,那么怎么用一条语句检索出数据?答案是使用联结。

Mysql中常用join来建立表之间的连接。

 

join

要理解join,我们首先要理解笛卡尔积,由没有联结条件的表关系返回的结果为笛卡尔积。

比如表products中有m条记录,表vendors中有n条记录,那么这两个表的笛卡尔积为m*n条记录。

 

如下方式可以产生笛卡尔积

1 SELECT * FROM products INNER JOIN vendors
2 SELECT * FROM products JOIN vendors

 

内连接

求两个表的交集,常见的内连接有JOIN, INNER JOIN, WHERE

 

左连接

两个表的交集加上左表剩下的数据

 

右连接

两个表的交集加上右表剩下的数据

 

外连接

求两个或多个表之间的左连接和右连接的并集

Mysql不支持外连接,但是可以通过UNION来实现

 

当连接表的列采用相同的名称时,可用USING来简化ON语法

USING(col_name)指定一个属性名来连接两个表,而ON指定一个条件

在使用SELECT *时,USING会去除USING指定的列,而ON不会。

 

Mysql-联结

标签:复数   去除   需要   出现   响应   怎么   检索   where   数据库设计   

人气教程排行