其他分享
首页 > 其他分享> > 子查询、联结、约束、索引

子查询、联结、约束、索引

作者:互联网

子查询

-- 子查询作为过滤条件
SELECT NAME,gender 
FROM emp 
WHERE dept_id 
IN (SELECT id 
    FROM dept 
    WHERE NAME = '开发部');
-- 子查询作为计算字段
SELECT NAME,
	(SELECT COUNT(*) 
	FROM emp
	WHERE dept_id = dept.`id`) AS res 
FROM dept;

联结表

相同的数据不要多次出现,关系表的设计应该把信息分成多个表,表之间通过某些共同的值关联

内联结

where 联结条件

用on后面接联结 :from 表1 inner join 表2 on 条件

可以联结多个表

自联结

举例:查询和员工a同公司的所有员工,首先需要查询a的公司b,再查询表中公司为b的所有员工。可以用子查询,但是性能不好,最好采用自联结。

自联结是联结相同的表,联结条件为公司名相同,并且表2的员工名为a。公司相同代表表1的记录会和表2所有同公司的员工的记录进行组合,筛选名为a的员工就可以留下与其同公司的员工的记录,然后返回的结果为表1 的数据。

外联结

内联结是只显示有联结的记录,外联结会包含一张表中没有关联行的行,表1 LEFT/RIGHT OUTER JOIN 表2 ON 条件,LEFT表示从FROM子句左边的表显示所有行。

带聚集函数的联结

有顾客表和订单表,查询每个顾客下单的订单数量。需要检索的是顾客和订单数,group by顾客id,count(订单)。

约束

索引

恰当的排序使索引有用

标签:索引,联结,员工,dept,查询,id
来源: https://www.cnblogs.com/ningdeblog/p/14322057.html