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;
原文地址:https://www.cnblogs.com/lmx093418/p/9984642.html