数据库Day04

本文探讨了数据库中的子查询用法,包括在SELECT、FROM、WHERE或HAVING后的不同类型的子查询,如标量子查询、列子查询、行子查询和表子查询。同时,提到了在MySQL和Oracle中子查询的支持情况。此外,文章还讲解了多表设计的原则,如关联查询时需考虑的主从表关系维护,避免记录孤立和删除操作的约束。
摘要由CSDN通过智能技术生成

子查询

按子查询出现的位置:

        select后面:仅仅支持标量子查询

        from后面:支持表子查询

where或having后面:支持标量子查询,列子查询,行子查询

按功能、结果集的行列数不同:

        标量子查询(结果集只有一行一列)一行一列 max min avg count

        列子查询(结果集只有一列多行) 一行多列

        行子查询(结果集有一行多列)(较少) 一行多列

        表子查询(结果集一般为多行多列) 多行多列(相当于一个表)

        在mysql中的 update delete语句中不支持子查询 在Oracle中支持

         insert 支持查询

/*
 子查询主要使用在查询语句中
 一般牵扯到两张表以上的操作,都需要通过表名调用列,可以为表名定义别名
*/
--  select 语句后面只支持标量子查询(一行一列)

SELECT s.num,s.sname,(SELECT phone FROM student s1 WHERE s1.num = s.num) FROM student s

-- from 后面只支持 表子查询(多行多列)
SELECT * FROM (SELECT * FROM student WHERE gender="男")t WHERE t.height>1.7

-- 就是把一个查询的结果当作一张表  被另一个查询语句当作数据源
SELECT * FROM(SELECT 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值