zoukankan      html  css  js  c++  java
  • SQL查询数据

    1. 基本查询

      SELECT * FROM <表名>

      使用SELECT * FROM students时,SELECT是关键字,表示将要执行一个查询,*表示“所有列”,FROM表示将要从哪个表查询

    2. 条件查询
      SELECT * FROM <表名> WHERE <条件表达式>

      条件表达式可以用<条件1> AND <条件2>表达满足条件1并且满足条件2;<条件1> OR <条件2>表示满足条件1或者满足条件2;NOT <条件>,表示“不符合该条件”的记录。而NOT class_id = 2等价于class_id <> 2。

    3. 投影查询
      SELECT 列1, 列2, 列3 FROM <表名> //返回某些列的数据 
      SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM <表名> //返回某些列的数据并修改列名
    4. 排序
      SELECT id, name, gender, score FROM students ORDER BY score DESC, gender;

      ORDER BY score表示按score排序,DESC表示倒序,gender表示如果score相同时按gender升序排序(默认ASC)。如果带有WHERE,则ORDER BY需要放在WHERE后面。

    5. 分页查询
      -- 查询第1页
      SELECT id, name, gender, score
      FROM students
      ORDER BY score DESC
      LIMIT 3 OFFSET 0;
      LIMIT表示显示数据行数,OFFSET表示开始显示的索引,从0开始。
    6. 聚合查询
      -- 使用聚合查询并设置结果集的列名为num:
      SELECT COUNT(*) num FROM students;

      使用聚合查询时还可以使用WHERE进行条件查询。除了COUNT(),还有SUM() AVG() MAX() MIN()等聚合函数。CEILING()表示向上取整,FLOOR()向下取整。
      聚合查询用于分组时:

      SELECT class_id, COUNT(*) num FROM students GROUP BY class_id;

      将会显示3个结果,在SELECT后加入字段class_id,可以分组统计出class_id各个count值。
      此外,分组前还可以进行条件筛选:

      SELECT class_id, COUNT(*) num FROM students WHERE score > 90 GROUP BY class_id;

       分组后,还可以对分组进一步筛选:

      SELECT class_id, COUNT(*) num FROM students WHERE score > 90 GROUP BY class_id HAVING COUNT(*) > 2;

      WHERE和HAVING的区别:a.where在分组前限定,如果不符合要求,则不参与分组;having在分组之后限定,如果不符合要求,将不会被查询出来。b.where后不可跟聚合函数,having后可以进行聚合函数的判断。

    7. 连接查询
      SELECT s.id, s.name, s.class_id, c.name class_name, s.gender, s.score
      FROM students s
      INNER JOIN classes c
      ON s.class_id = c.id;
  • 相关阅读:
    PHP大文件上传断点续传源码
    PHP大文件上传断点续传解决方案
    Flash大文件断点续传解决方案
    Flash大文件断点续传功能
    ASP.NET上传断点续传
    B/S文件上传下载解决方案
    web文件夹上传下载方案
    Codeforces 460E Roland and Rose(暴力)
    iOS_25_彩票骨架搭建+导航栏适配
    配置Redmine的邮件通知功能
  • 原文地址:https://www.cnblogs.com/try4396/p/12170939.html
Copyright © 2011-2022 走看看