sql 余数_sql之复杂查询

1.视图

视图中存放sql语句,当运行视图时会根据运行其中的sql语句创建一个临时表(与数据库断开时表会自动消失)

注意:

  • 视图里最好不要嵌套视图
  • 不能往视图里插入数据

27e8fc4f6bc3e9fb6ffff12f37905c40.png

2.子查询

在select语句中嵌套一个select语句,子查询可以一直嵌套

执行顺序:先执行子查询,再执行from、where、group by、having字句,再执行select语句,最后执行order by、limit语句

in、all、any(some)子查询与运算符一起使用

all得到的是一个集合,不能写a > 3all(b),只能写 a/3 > all(b)

9e11001c9bc91cddf5e3cb93cb083975.png

860628c73fa9fadd81adbfe9bcdc84dc.png

5bedb96bfc6b0f525a40b1791ac3e5cd.png

650b028f031c93246395092719ce97fe.png

3.标量子查询

where语句中不能使用汇总函数,标量子查询必须且只返回一行一列的查询结果(返回一个值),位置不固定

17e1c81da18797739d743b91507389fa.png

4.关联子查询

关联查询要写在子查询,在每个组里进行比较需要使用关联查询

978b9da7b1f79ef0a07f3bcd33db1c56.png

5.函数

算术函数:

  • round函数(数值,保留小数的位数):数据四舍五入
  • abs函数(数值):绝对值
  • mod函数(被除数,除数):求余数

字符串函数:

  • length(字符串):长度
  • lower(字符串):大写转小写
  • upper(字符串):小写转大写
  • concat(字符串1,字符串2):字符串连接
  • replace(字符串,被替换,替换):字符串替换
  • substring(字符串,截取的起始位置,截取长度):字符串截取

日期函数:

  • current_date:当前日期
  • current_time:当前时间
  • current_timestamp:当前日期和时间
  • year,month,day,dayname(日期)

6.练习

5f465cbd3ad6034dd17857cfbfd5f72d.png

8e800f60f2432d53b6a7010f676da169.png

623770c3ee925bfed0bde4354aa7a617.png

aecddc4aff56c0cbea80913864385d6d.png

显示运行结果包括加拿大和波兰,应该要把这两个国家去掉,正确答案如下:

1dbff6e996cc6655d699cb9bbf25c101.png

47715ebc3afd2190e53a7659f0167652.png

计算出数值之后用concat函数将数值和%连接在一起

be60252c2e10863df9f4779db7a6c568.png

bd21b48cf47457039799fe8e08532ab1.png

5b614195dd3d13e0c6fa1b16e34e2bff.png

871f91ab0070816ddb280894a6583b21.png

1f6d6c69d9fd99fd0690f00bfabaa4c7.png

和所有值比较时需要排除自身,使用x.name<>y.name

7.总结

多体会体会语句之间的逻辑关系,尤其标量和关联子查询,注意分析问题问的是什么

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值