美文网首页
SQL 查询语句复习笔记

SQL 查询语句复习笔记

作者: 张知卓见 | 来源:发表于2020-02-03 14:36 被阅读0次

students 表有 id, class_id, name, gender, score列,设 class表有 id, name

排序

先按score列倒序,如果有相同分数的,再按gender列排序

SELECT id, name, gender, score FROM students ORDER BY score DESC, gender;

分页

把结果集分页,每页10条记录,展示第1页

SELECT id, name, gender, score
FROM students
ORDER BY score DESC
LIMIT 10;

如果需要显示第3页,offset计算公式为每页记录数x(页数-1),即10x(3-1)=20,语句为LIMIT 10 OFFSET 20offset超过了查询的最大数量并不会报错,而是得到一个空的结果集。)

SELECT id, name, gender, score
FROM students
ORDER BY score DESC
LIMIT 10 OFFSET 20;

聚合查询

查询所有男生的行数,设置结果集的列名为boys,语句为COUNT(*) boys

SELECT COUNT(*) boys FROM students WHERE gender = 'M';

每页10条记录,通过聚合查询获得总页数(CEILING为向上取整,FLOOR为向下取整)

SELECT CEILING(COUNT(*) / 3) FROM students;

其他常用聚合函数 SUMAVGMAXMIN

分组聚合查询

统计各班的男生和女生人数

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

结果为

class_id gender num
1 M 15
1 F 15
2 M 15
2 F 15

查出每个班级的平均分,保留一位小数点

SELECT class_id,ROUND(AVG(score),1) avg_score from students GROUP by class_id;

结果为

class_id avg_score
1 86.5
2 66.6
3 23.3

多表查询

使用多表查询一班女生的信息

SELECT
    s.id sid,
    s.name,
    s.gender,
    s.score,
    c.id cid,
    c.name cname
FROM students s, classes c
WHERE s.gender = 'M' AND c.id = 1;

由于两个表中都有 id 和 name 列,务必要给相应的列设置别名,也可以给表设置别名使语句更加简洁。
多表查询的结果集可能非常巨大,要小心使用。

连接查询

选出students表的所有学生信息,并连接class表的班级名称

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;

JOIN查询对比

设A表和B表,设查询语句:

SELECT * FROM A JOIN B ON A.c1 = B.c2;

INNER JOIN是选出两张表都存在的记录:



LEFT OUTER JOIN是选出左表存在的记录:


RIGHT OUTER JOIN是选出右表存在的记录:


FULL OUTER JOIN则是选出左右表都存在的记录:


未完待续

参考内容:SQL教程 - 廖雪峰的官方网站

相关文章

  • SQL 查询语句复习笔记

    设 students 表有 id, class_id, name, gender, score列,设 class表...

  • GreenDao

    前言:数据库:MySQL、Oracle、Sqlite 一. 复习SQL语句(结构化查询语言) 1.SQL语句分类 ...

  • GreenDao

    数据库:MySQL、Oracle、Sqlite 一. 复习SQL语句(结构化查询语言) 1.SQL语句分类 DDL...

  • Java自学-JDBC 查询

    在JDBC中使用ResultSet查询SQL语句 执行查询SQL语句 步骤 1 : 查询语句 executeQue...

  • mysql数据库查询语句

    1.简单的查询基本表的SQL语句 (1)查询语句 (2)查询语句 Student表的删除SQL语句: 选课表的操作...

  • SQL查询语句

    常用SQL查询语句 一、简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SE...

  • 搜索

    直接sql查询 用sql语句like查询,复杂的用sql语句拼接。 视图和存储过程查询 简化程序,提高执行效率,维...

  • SqlServer查询表空间占用情况

    查询sql语句

  • 查看Django ORM执行的SQL语句

    查询QuerySet对象执行的SQL语句 查询当前执行的SQL包括Django内置执行的多条执行的SQL语句

  • 【完整】Jmeter JDBC Request查询出多条SQL之

    Jmeter 建立oracle链接后,需要查询多条sql语句,且第一条sql语句的查询结果,要作为后续sql语句的...

网友评论

      本文标题:SQL 查询语句复习笔记

      本文链接:https://www.haomeiwen.com/subject/iylhxhtx.html