MYSQL练习001

在这里插入图片描述

博客仅作为记录,有误部分请在评论区指正,谢谢!!

👨‍💻作者:东隅桑
💕:东隅已逝,桑榆非晚。

题目一
在这里插入图片描述
解答一

# 方法一(效率低)
select
  *
from
  user_profile;

# 方法二(效率较高)
select
  id,
  device_id,
  gender,
  age,
  university,
  province
from
  user_profile;


题目二在这里插入图片描述
解答

select
  device_id,
  gender,
  age,
  university
from
  user_profile;


题目三
在这里插入图片描述

解答三

#方法一(distinct 去重)
select
  distinct university
from
  user_profile;

#方法二(group by 分组)
select
  university
from
  user_profile
group by
  university;

distinct 可去重原理

–>distinct需要将column列中的全部内容都存储在一个内存中,可以理解为一个hash结构,key为column的值,最后计算hash结构中有多少个key即可得到结果。

group by 可去重原理

–>group by的方式是先将column排序。而数据库中的group一般使用sort的方法,即数据库会先对column进行排序。而排序的基本理论是,时间复杂为nlogn,空间为1.,然后只要单纯的计数就可以了。优点是空间复杂度小,缺点是要进行一次排序,执行时间会较长。

distinct 和 group up的效率区别

–>在重复量比较高的表中,使用DISTINCT可以有效提高查询效率,而在重复量比较低的表中,使用DISTINCT会严重降低查询效率。所以并不是所有的DISTINCT都是降低效率的,当然你得提前判断数据的重复量。



题目四
在这里插入图片描述
解答四

#limit a, b ( a表示起始位置 , b表示从起始位置开始一共要取多少位数 )
select
  device_id
from 
  user_profile
limit
  0,2;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值