SQL语句学习
查询
基本查询
表中所有行和所有列的数据
SELECT * FROM <tableName>
条件查询(where)
表中score大于80的信息
SELECT * FROM <tableName> WHERE score >= 80(条件表达式);
// WHERE 搭配 AND、 OR、 NOT
排序
// 放在WHERE语句后
// 正序 从小到大 (默认不写的话, 以ID排序)
ORDER BY score(某一属性) ;
// 倒序
ORDER BY score(某一属性) DESC;
// 组合排序 (先score倒序, 再age正序)
ORDER BY score(某一属性) DESC, age;
分页查询
// 一页不超过三行数据,第一页
LIMIT 3 OFFSET 0
聚合查询
// 查询students表中共有多少条记录
SELECT COUNT(*) FROM students;
// 还有 SUM AVG MAX MIN
// SUM AVG 必须为number
// 计算单位为某一列
分组
// GROUP BY
SELECT COUNT(*) num FROM students GROUP BY class_id;
多表查询
SELECT * FROM students,classes;
多表查询会产生M*N行数据
设置别名
// boys 为COUNT(*) 的别名
SELECT COUNT(*) boys FROM students WHERE gender = 'M';
// 给students 表 设置 别名s
SELECT s.name from students s WHERE gender = 'M'
连接查询(特殊的多表查询)
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;
快照
-- 对class_id=1的记录进行快照,并存储为新表students_of_class1:
CREATE TABLE students_of_class1 SELECT * FROM students WHERE class_id=1;