一、SELET语法
SELECT [ ALL | DISTINCT ] 列名[AS 别名1] [{
,列名[AS别名2]}]
FROM 表名1或视图名1[,表名2或视图2]
[WHERE条件表达式1]
[GROUP BY 列名1 [HAVING条件表达式21]
[ORDER BY 列名2 [ASC|DESC]
[LIMIT 子句]
ALL返回所有行,DISTINCT返回所有不重复行
GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。DESC降序
LIMIT用于规定要返回的记录的数目
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
二、简单查询
1.查询全部列
查询全体学生的详细记录
SELECT *
FROM Stu;
“ * ”表示将所有的字段都显示出来
2.查询指定列
相当于投影运算
SELECT Sno,Sname
FROM Stu;
3.消除取值重复的行
在SELECT子句中使用DISTINCT
短语
不写默认是ALL
SELECT [ALL|DISTINCT] Sclass
FROM Stu;
4.为表、列起别名
SELECT Sclass AS 别名1,Sname AS 别名2
FROM Stu AS 别名3;
查询全体学生,学号,姓名,年龄。
SELECT Sno,Sname,YEAR(NOW())-YEAR(Sbirth) AS 年龄
FROM Stu;
CURRENT_DATA:获取系统日期,返回的是当前日期,是年-月-日的数据形式。
NOW() 返回的是当前的日期和时间,既有年月日还有时分秒