MySQL的联合查询和子查询

本文详细探讨了MySQL数据库中的两种查询方式——联合查询和子查询。联合查询允许将多个SELECT语句的结果合并成一个结果集,而子查询则是在一个查询语句内部嵌套另一个查询,用于获取满足特定条件的数据。通过实例解析,帮助读者掌握这两种强大的查询技术。
摘要由CSDN通过智能技术生成

MySQL的联合查询和子查询

  • @ sunRainAmazing

联合查询

 联合查询
        将多次查询(多条select语句),在记录上进行拼接(字段不会增加)
    基本语法
        多条select语句构成, 
        每一条select语句获取的字段必须严格一致(与字段类型无关)
        select 语句1
        union  [union 选项]
        select 语句2......

    union选项:与select选项一样有两个 
        all: 保留所有不管重复
        district:去重(整个重复)---默认的



    联合查询的意义?

    1、查询同一张表,需求不同
        如查询学生信息,男生年龄升序desc,女生年龄降序asc2、多表查询:多表的结构是完全一样的,保存的数据(结构)也是一样的


    注意事项
        1.在联合查询中 order by  不能单独使用,
            需要对查询语句使用括号才行
        2.若想器生效 必须结合limit 关键字才可以  采用最大数 999999
(select * from stu where sex='男' order by age desc limit 999999)
union
(select * from stu where sex='女' order by age asc limit 999999);

子查询

子查询
    含义:
        sub query从其他查出来的结果之上获取
        一条select语句内部包含另外的select语句


    分类: 
    按位置分类:子查询(select) 在外部查询(select语句)中出现的位置
            ① from子查询:出现在from之后
            ② where子查询:出现在where条件
            ③ exists子查询:出现在exists里面


    按结果分类:根据子查询得到的数据进行分类
            (理论上任何一个查询得到的结果都可以理解为二维表)
            ① 标量子查询:子查询得到的结果是一行一列
            ② 列子查询:子查询得到的结果是一列多行
            ③ 行子查询:结果是多列一行(多列多行)
            ---都是在where之后
            表子查询:结果是多行多列,出现的位置是在from之后


    1.确定数据源  查找查询条件
     -- 查询班级名为 Java01 的学生的信息
        select * from stu where cid = 
            (select id from cla where name='Java01');


    -- 查询所有班级的学生信息(有的学生还没有正式进班)
        select * from stu where cid in 
            (select id from cla);


    -- 查询是否存在 年龄最大 且身高最高的学生的信息
        select * from stu where
        age = (select max(age) from stu)
        and
        height = (select max(height) from stu);


        ---还可以利用行元素进行 查询 (age,height) 称之为行元素
        select * from stu where
        (age,height)=
        (select max(age),max(height) from stu);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>