SQL教程笔记
登录客户端的指令:mysql -u root -p
分页查询:
使用LIMIT <M> OFFSET <N>
分页时,随着N
越来越大,查询效率也会越来越低。mysql里limit 4, 5表示偏移量为4,展示限额为5(即先偏移后限额)
别名: select 里的列是可以别名的,from里的table是可以别名的; table的别名(一般比较简短)可以用在selec聚合函数 和on里,但是不能用在where里。
别名是在内存中生成的,where 条件查询,只能用于从硬盘中,往内存中传输数据的过程中进行条件查询,符合条件的存入内存,不符合条件的不读取。相比较而言,having 是可以针对硬盘以及内存进行条件查询的。因此,如果对于聚合函数、别名等的条件查询,需要用having,而不是where. 如:
SELECT s.id sid, s.name, s.gender, s.score, c.id cid, c.name cname FROM students s, classes c;
SELECT COUNT(*) num FROM students;
连接查询:
- 先确定主表,仍然使用
FROM <表1>
的语法; - 再确定需要连接的表,使用
INNER JOIN <表2>
的语法; - 然后确定连接条件,使用
ON <条件...>
,这里的条件是s.class_id = c.id
,表示students
表的class_id
列与classes
表的id
列相同的行需要连接; - 可选:加上
WHERE
子句、ORDER BY
等子句。