MySql — 查询语句(DQL)简单查询操作(补充)


多表查询

-- 多表查询 显示所有供应商及其供应的水果信息
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');

以上都是自建的学习表,参考语句即可!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenlei...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值