文章目录
多表查询
-- 多表查询 显示所有供应商及其供应的水果信息
SELECT * FROM supplier,fruit;
关联查询
-- 关联查询 显示所有工商及其供应的水果信息
SELECT s_name,s_city,s_zip,s_call,s.s_id,f.s_id,f_id,f_name,f_price FROM supplier AS s,fruit AS f WHERE s.s_id = f.s_id ORDER BY s.s_id;
子查询
-- 子查询 也称“内部查询”或者“嵌套查询”,是指将一个 SELECT 查询(子查询)的结果作为另一个 SQL 语句(主查询)的数据来源或者判断条件。
-- 查找水果名为苹果的供应商
-- 先查询到 fruit 表中 apple 的 s_id
SELECT s_id FROM fruit WHERE f_name = 'apple';
-- 在查询 supplier 表里面的 s_id 对应的供应商
SELECT * FROM supplier WHERE s_id = 101;
-- 子查询
SELECT * FROM supplier WHERE s_id = (SELECT s_id FROM fruit WHERE f_name = 'apple');
连接查询
内连接 INNER JOIN
-- 内连接 INNER JOIN
-- 显示所有工商及其供应的水果信息
SELECT s_name,s_city,s_zip,s_call,s.s_id,f.s_id,f_id,f_name,f_price FROM supplier AS s INNER JOIN fruit AS f ON s.s_id = f.s_id ORDER BY s.s_id;
外连接
左外连接 LEFT OUTER JOIN
-- 左外连接 一般使用左外连接 以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在使用null值填充
-- 查找所有订单和产生该订单的消费者信息
SELECT o_num,o_date,o.c_id,c.c_id,c_name,c_address,c_city,c_zip,c_contact,c_email FROM `order` AS o LEFT OUTER JOIN customer AS c ON o.c_id = c.c_id;
SELECT o_num,o_date,o.c_id,c.c_id,c_name,c_address,c_city,c_zip,c_contact,c_email FROM customer AS c LEFT JOIN `order` AS o ON o.c_id = c.c_id;
右外连接 RIGHT OUTER JOIN
-- 右外连接 以右表为主根据条件查询右表数据,如果根据条件查询左表数据不存在使用null值填充
-- 查找所有订单和产生该订单的消费者信息
SELECT o_num,o_date,o.c_id,c.c_id,c_name,c_address,c_city,c_zip,c_contact,c_email FROM `order` AS o RIGHT OUTER JOIN customer AS c ON o.c_id = c.c_id;
SELECT o_num,o_date,o.c_id,c.c_id,c_name,c_address,c_city,c_zip,c_contact,c_email FROM customer AS c RIGHT JOIN `order` AS o ON o.c_id = c.c_id;
自连接
-- 自连接
-- 查询某省份所管辖的的所有城市
SELECT * FROM region_address WHERE parent_code = 13;
ANY SOME ALL ESISTS查询
ANY SOME
-- ANY 和 SOME
-- 查询出 tbl1 表中 nunm1 大于tbl2 表中任意 num2 的值
-- Any 只要有一条数据满足条件,条件就成立
SELECT num1 FROM tbl1 WHERE num1 > ANY (SELECT num2 FROM tbl2);
-- Some 其中存在一些数据满足条件,作用和Any大致相同 常规的使用中看作一致即可
SELECT num1 FROM tbl1 WHERE num1 > SOME (SELECT num2 FROM tbl2);
ALL
-- ALL 只有当其所有数据都满足条件时,条件才成立
-- 查询出 tbl1 表中 nunm1 大于tbl2 表中所有 num2 的值
SELECT num1 FROM tbl1 WHERE num1 > ALL (SELECT num2 FROM tbl2);
ESISTS
-- EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True(1),否则返回 False(0)。
-- 查找供应商 名字是否存在
SELECT EXISTS ( SELECT s_id FROM supplier WHERE s_name = 'ACME');
SELECT EXISTS ( SELECT s_id FROM supplier WHERE s_name = 'ACM');
以上都是自建的学习表,参考语句即可!!!!