当前位置:   article > 正文

SQL - 查询

SQL - 查询
  • 查询语句
    • select子句和from子句,其他子句用于数据的筛选和排序,如where, order by,limit等。
    • 子句书写的顺序是有影响的,不能改变这些句子的顺序,不然会出现语法错误。如,select,from,where,order by,limit.
    • 子句执行顺序:from-->join-->on-->where-->group by-->having-->select-->distinct-->order by-->limit
    • select子句
      • select * //返回所有列,会增加用增加服务器和网络的那么大负担
      • select first_name,last_name //获取指定的列,获得的列的顺序和自己写的顺序相同,当然列中数据可能会有重复的。
      • select (points+10)*100 //可以获得在原有的数据上的运算,就是算数表达式,支持 + - * / %运算。
      • select (points+10)*100 as discount_fact //对于一个结果集(表达式),想要一个清晰的描述性名称,使用 AS 关键字,如果这个名字含空格,需要引号包起来。
      • select distinct state //获取列的唯一值,也就是 distinct关键字 对列的值有去重作用
      • as 关键字:可以为表达式起别名,也可以将查询的列重新命名
    • where子句(筛选数据)
      • where子句就是对一些字段进行条件限制,如果每行记录的字段符合条件,那么就返回该行记录所要查询的列。在执行查询时,MySQL中的查询执行引擎会遍历表中的每一行信息,评估这个where条件,如果条件正确,会在结果集返回这行信息。
      • 运算符
        • 比较运算符
          • >, >=, <, <=, =, !=, <>,是逻辑判断
        • and、or、not 运算符
          • 在筛选数据时结合多条搜索条件
        • in 运算符
          • 在多个同一列值中 判断一个字段,就可以使用 in 或者not in
          • 如 where quantity_in_stock in (49,38,72)
        • between 运算符
          • 当将一个字段在和一个范围值相比较时可以使用
          • 如 where points between 1000 and 3000
        • like 运算符
          • 检索遵循特定字符串模式的记录,可以使用like ,not like
          • %,表示任意长度的字符,可以表示0个
          • 如 where last_name like '%b%'
          • _,下划线表示一个任意的单字符
          • 如where last_name like '__h',两个字符的姓
        • regexp 运算符(正则表达式)
          • 跟like的作用相同,但是不一样的格式,
          • 如 where address regexp 'trail$',表示address的形式必须是以'trail'为末尾
          • 如 where address regexp 'trail|avenue|rose',表示address中包含'trail'或者'avenue'或者'rose'
          • 如 where address regexp '[tkl]rail',表示address中包含 'trail',或者'krail',或者'lrail'
          • ^,代表字符串开头
          • $,代表字符串末尾
          • |,代表逻辑上的or,可以给出多个搜索模式
          • 字符串拼接
            • [],使用[]匹配任意在括号里例举的单字符,拼接字符串
            • [] 和 -,使用[]和-表示一个范围,如'[a-h]e',表示'abcdefge'
              1. select *
              2. from customers
              3. -- where first_name regexp 'elka|ambur'
              4. -- where last_name regexp 'ey$|on$'
              5. -- where last_name regexp '^my|se'
              6. -- where last_name regexp 'b[ru]'

        • is null 运算符
          • 如何搜索缺失了属性的记录,可以使用 is null,不缺失 is not null
          • 如 where phone is null
    • order by子句
      • 如何为查询的数据进行排序
      • order by first_name //按first_name排序,默认升序
      • order by first_name desc //按first_name降序排序
      • order by status,first_name //用多列字段排序,按status升序排序的基础上,按first_name降序排序
        1. select *,quantity*unit_price as total_price
        2. from order_items
        3. where order_id=2
        4. order by quantity*unit_price desc
    • limit 子句
      • 如何限制查询返回的记录数,用limit,limit语句的位置永远都在最后
      • limit 3 //返回前3条记录
      • limit 6,3 //跳过前6条记录,返回3条记录
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/1005251
推荐阅读
相关标签
  

闽ICP备14008679号