【SQL】查询数据

查询数据

基本查询
  • 查询数据库表的数据:
// 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值