MySQL笛卡尔积查询&左外连接和右外连接查询&where和having&SQL语句的书写顺序和执行顺序

    补充1、笛卡尔积查询:
        笛卡尔积查询:如果同时查询两张表,左边表有m条数据,右边表有n条数据,那么笛卡尔积查询是结果就是 m*n 条记录。这就是笛卡尔积查询。例如:
        select * from dept,emp;
        上面的查询中包含大量错误的数据, 一般不使用这种查询。
        
        如果只想保留正确的记录,可以通过where条件进行筛选,将符合条件的保留下来,不符合条件的自然就会被剔除,例如:
        select * from dept,emp
        where dept.id=emp.dept_id;

    补充2、左外连接和右外连接查询:
        (1) 左外连接查询:是将左边表中所有数据都查询出来, 如果在右边表中没有对应的记录, 右边表显示为null即可。
        (2) 右外连接查询:是将右边表中所有数据都查询出来, 如果在左边表中没有对应的记录, 左边表显示为null即可。

    补充3、where和having都用于筛选过滤,但是:
        (1) where用于在分组之前进行筛选, having用于在分组之后进行筛选
        (2) 并且where中不能使用列别名, having中可以使用别名
        (3) where子句中不能使用列别名(可以使用表别名), 因为where子句比select先执行!!
        
    补充4、SQL语句的书写顺序和执行顺序:
      SQL语句的书写顺序:
        select...
        from...
        where...
        group by...
        order by...
        ...
      SQL语句的执行顺序:
        from... -- 确定要查询的是哪张表 (定义表别名)
        where... -- 从整张表的数据中进行筛选过滤

        group by... -- 根据指定的列进行分组
        select... -- 确定要显示哪些列 (定义列别名)
        order by... -- 根据指定的列进行排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值