数据库的高级查询

表链接查询

1.表链接查询(笛卡尔积:)两个分别为n列s行和m列k行关系的R和S的笛卡尔积是一个n+m的列s*k行的表。(查询出来后只有一条有效数据)
查询语句:

select * from 表名1,表名2......;

2.内连接查询(子表与主表建立表间关系,子表主键和主表外键建立表间关系)
查询语句:

 select 
 *(不建议写*会将子表写在前面,主表写在后面)
 from 表名1 as 别名(子表)
 inner join 表名2 as 别名 (主表)

#实际上就是主外键
#子表的外键 = 主表的主键

 on1.=2.列(子表和主表建立关系)
 where1.列名=数据

使用in和not in(范围查找,查找in中的范围,或者不在in中的范围)
查询语句:

select 
*/列名
from 表名
where in/not in (数据1,数据2......

即表示表中的某列中 in中有或没有的数据

3.左查询(左边表为参考,左边表中所有表数据会显示,左边表没有的数据,右边表有会进行填充到左边表)
*distinct:(去除重复的数据)*
查询语句:

select 
*/列名
from1left join2on1.=2.

*已left左边的表为参考,查询出左边表中所有的数据,右边表中没有的数据已NULL填充。 *

3.右查询(右边表为参考,右边表中所有表数据会显示,右边表没有的数据,左边表有会进行填充到右边表)
查询语句:

select 
*/列名
from1right join2on1.=2.

*已right右边的表为参考,查询出右边表中所有的数据,左边表中没有的数据已NULL填充。 *

你可能感兴趣的:(基础知识,mysql,数据库)