【SQL】查询数据

    xiaoxiao2022-07-03  99

    查询数据

    基本查询

    查询数据库表的数据: // SELECT * FROM <表名> // SELECT:关键字,表示将要执行一个程序 // *:所有列 // FROM:将要从哪个表查询 SELECT * FROM students;

    SELECT 语句并不要求一定有FROM子句。可用来判断当前到数据库的链接是否有效,很多检测工具会执行下列语句,测试数据库连接。

    SELECT 1;

    条件查询

    SELECT语句通过WHERE条件来设定查询结果。例如指定条件“分数在80分或以上的同学”

    // SELECT * FROM <表名> WHERE <条件表达式> SELECT * FROM students WHERE score >= 80; 满足<条件1>且满足<条件2>: <条件1> and <条件2> SELECT * FROM students WHERE score >= 80 AND gender = 'M'; 满足 - 满足<条件1>或满足<条件2>: <条件1> or <条件2> SELECT * FROM students WHERE score >= 80 OR gender = 'M'; 不符合该条件 NOT <条件> SELECT * FROM students WHERE NOT class_id = 2; //NOT class_id = 2 等价于 class_id <> 2

    组合三个或更多的条件,用小括号()表示如何进行运算

    投影查询

    只返回某些列的数据,而不是所有列的数据。

    WHERE条件 SELECT 列1,列2,列3 FROM……

    排序

    正序: 加ORDER BY子句

    SELECT <列名> FROM <表名> ORDER BY <排序表名>

    倒序: 加DESC

    SELECT <列名> FROM <表名> ORDER BY <排序列名> DESC;

    ORDER BY子句要放到WHERE子句后面。

    分页查询

    结果集从N号记录开始,最多去M条

    LIMIT <M> OFFSET <N>

    pageSize: 每页需要显示的结果数量 pageIndex: 当前页索引(从1开始) LIMIT总是设定为pageSize OFFSET计算公式为pageSize * (pageIndex - 1)

    聚合查询

    聚合函数可用来统计总数、平均数等。 COUNT:查询一共有多少列。 [x] WHERE条件

    SELECT COUNT(*) FROM <表名>

    多表查询

    又称笛卡尔查询 SELECT不但可以从一张表查询数据,还可以从多张表同时查询数据。 可用投影查询设置列名。

    WHERE条件 SELECT * FROM <表1> <表2>

    结果集列数为两表列数之和 结果集行数为两表行数之积 因此结果集可能很巨大

    连接查询

    另一种形式的多表查询 对多个表进行JOIN运算,先确定一个主表,然后,把其他表有选择的连接在主表结果集上。

    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; 1. 确定主表,使用 FROM <表1> 2. 确定需要连接的表,使用 INNER JOIN <表2> 3. 确定需要连接的条件,使用 ON <条件……>,s.class_id = c.id,表示students表的class_id与classes表的id需要连接 4. 加 WHERE 子句、ORDER BY 子句
    最新回复(0)