SQL:查询【上】

参考资料:SQL之母 - SQL自学网站 (yupi.icu)

  1. select * from student

  2. select name,age from student

  3. select name 学生姓名,age 学生年龄 from student

  4. select name,score,score * 2 as double_score from student

  5. select name, score from student where name = ‘鱼皮’

    检索指定数据
  6. select name, age from student where name != ‘热dog’

  7. select name, age, score from student where age is not null

    检索空值
  8. select name, score from student where name not like ‘%李%’

    模糊查询
    • 百分号(%):表示任意长度的任意字符序列。
    • 下划线(_):表示任意单个字符。
    • 注意 匹配:like;不匹配:not like (没有is)
  9. select name, score from student where name like ‘%李%’ or score > 500

    逻辑运算
    • AND:表示逻辑与,要求同时满足多个条件,才返回 true。
    • OR:表示逻辑或,要求满足其中任意一个条件,就返回 true。
    • NOT:表示逻辑非,用于否定一个条件(本来是 true,用了 not 后转为 false)
  10. select distinct class_id, exam_num from student

    去重
    • ‘distinct 字段1, 字段2, 字段3, …’可筛选多种字段组合时的重复情况
  11. select name, age, score from student order by score desc, age asc

    排序
    • ASC升序
    • DESC降序
    • “order by 字段1 [升序/降序], 字段2 [升序/降序], …”多种排序规则,如本题:先按照成绩从大到小排序,如果成绩相同,则按照年龄从小到大排序
  12. select name, age from student order by age asc limit 1, 3

    截断和偏移
    • 你可以使用手指挡住不需要看的部分(即截断)

    • -- LIMIT 后只跟一个整数,表示要截断的数据条数(一次获取几条)
      select task_name, due_date from tasks limit 2;
      
    • 根据任务的编号,直接翻到需要查看的位置(即偏移)

    • -- LIMIT 后跟 2 个整数,依次表示从第i+1条数据开始(下标为2即第三条)、一次获取几条
      select task_name, due_date from tasks limit 2, 2;
      

      注意这里asc后面没有逗号 ~

  13. SELECT name, CASE WHEN (age > 60) THEN ‘老同学’ WHEN (age > 20) THEN ‘年轻’ ELSE ‘小同学’ END AS age_level FROM student ORDER BY name asc

    条件分支

    使用 case when 可以在查询结果中根据特定的条件动态生成新的列或对现有的列进行转换。注意根据分类筛选的该列可以准便起一个别名作为新列的名字

    CASE WHEN (条件1) THEN 结果1
    	   WHEN (条件2) THEN 结果2
    	   ...
    	   ELSE 其他结果 END
    
  14. select name, date() as 当前日期 from student

    时间函数
    • DATE():获取当前日期
    • DATETIME():获取当前日期时间
    • TIME():获取当前时间
    • 注意,这里的日期、日期时间和时间将根据当前的系统时间来生成,实际运行结果可能会因为当前时间而不同。
  15. SELECT id, name, UPPER(name) AS upper_name FROM student WHERE name = ‘热dog’

    字符串处理
    -- 将姓名转换为大写
    SELECT name, UPPER(name) AS upper_name
    
    -- 计算姓名长度
    SELECT name, LENGTH(name) AS name_length
    
    -- 将姓名转换为小写并进行条件筛选
    SELECT name, LOWER(name) AS lower_name
    
  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值