查询模型:
SELECT
字段列表
FROM 表1,表2。。
GROUP BY
HAVING
ORDERY BY
LIMIT
内连接:INNER JOIN
自连接
SELECT F1.id,F1.name
From fruits as F1, fruits AS F2
WHERE F1.id = F2.id AND F2.F_id = "a1";
自连接按照第二个表对数据进行过滤.
外连接:
内连接查询INNER JOIN返回的数据查询结果仅仅是符合查询条件的,
有时候我们还希望包含没有关联的数据,所以就有了外连接
LEFT JOIN 返回包括左表所有数据和右表链接字段相等的记录。
RIGHT JOIN。返回包括右表所有数据和左表链接字段相等的记录。
子查询:
将外部查询每一条数据带入子查询中做处理,外查询根据子查询条件结果判断是否显示一条数据。
ANY
SELECT num1 FROM tb1 WHERE num1 > ANY(SELECT num2 FROM tb2);
num1大于ANY中的任何值都返回true
ALL
SELECT num1 FROM tb1 WHERE num1 > ALL(SELECT num2 FROM tb2);
num1 大于ALL中的所有值才为true。
EXISTS:
注意只要EXISTS内的子查询里返回至少一行那么EXISTS结果是true 不是数据。
将外查询每一个值带入到exists中只要返回true 那么外查询就会显示一条数据。
SELECT num1 FROM tb1 WHERE EXISTS(SELECT num2 FROM abc WHERE tb1.num1 = abc.num2)
合并查询结果
UNION ALL(包含重复行)
UNION (不重复)