Leetcode刷题以及CSDN中sql常用习题练习有感

知识点补充:

  1. 交换同一列两个值A,B的位置:update tb_name set col_name = (if col_name = A, B, A) 或者 update tb_name set col_name = (case when col_name = A then B else A end)
  2. union 组合了多个select语句结果,不包含重复值,union会将查询的值对应的列在一个字段里;union all 组合了多个select语句结果,包含重复值
  3. 组合查询的使用:union,union all,intersect(只返回第一个语句与第二个语句里一样的记录),except(返回第一个语句有但第二个语句没有的记录)
  4. 管理数据库事务的命令:COMMIT, SAVEPOINT, ROLLBACK TO SAVEPOINT, RELEASE SAVEPOINT
  5. 不等于:<>(sql语句的标准用法),!=和^=也可以在sql中使用
  6. group by语句对相同的数据进行分组,并可以供汇总函数使用分组数据,而order by只是让数据形成次序
  7. 结合:等值结合,非等值结合,自结合,外部结合(join),笛卡尔结合

时间函数

  1. 时间与日期相加(datetime格式可以增加时间间隔):DATEADD(MONTH, -1(1), DATE)
  2. 日期转换为字符串:DATENAME(MONTH, DATE)
  3. 字符串转换为日期:CONVERT(VARCHAR, DATE, 103) (103代表一种格式,具体可查表)

语句优化

  1. group by语句会占用CPU很大运行效率,所以一般在其前面用where语句缩小搜索范围
  2. 子查询

感悟

  1. 做查询时,把目标分解成一个完整的流程图,从做开始的一步起,或嵌套查询或组合查询的解决问题
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值