一、简单查询1. 基本查询
1、基本查询语句
SELECT <列名1>,<列名2>,... FROM 表名;
示例:
SELECT 姓名,性别 FROM student;
2、为列设定别名
SELECT 姓名 as name,性别 as '人物性别' FROM student;
3、删除重复数据
1)DISTINCT 只用于一列前面
SELECT DISTINCT 姓名 AS '人物姓名' FROM student;
2)DISTINCT用于多列前面
此时,后面的学号和姓名会进行组合
SELECT DISTINCT 学号,姓名 FROM student;
tips:DISTINCT只能紧着在SELECT之后
4、SELECT语句书写规则
- SQL语句不区分关键词的大小写
- 列名不能加单引号
- 列名命名时不能有空格
- 符号只能使用英文符号
2. 指定查询
1、WHERE语句指定条件
SELECT 学号 FROM student WHERE 姓名='猴子'
2、SQL语句运行顺序
- 运行FROM子句,表示从哪张表中查询
- WHERE子句:选择行
- SELECT子句:选择列
3. 注释和SQL语句注意事项
单行注释:
-- 查询出全部列
多行注释:
/*注释符号*/4. 运算符
分为算数运算符、比较运算符和逻辑运算符。
1、算数运算符
+、-、* 、 /
SELECT 学号,课程号,成绩,成绩/100 as '百分比成绩' from score
2、比较运算符
1)运算符号
< 相等 <> 不等于 > 大于 <小于 >= 大于等于 ><=小于等于
2)示例
/*比较数字*/
SELECT 学号,课程号,成绩 FROM score Where 成绩<80
/*比较日期*/
SELECT 学号,姓名,出生日期 FROM student WHERE 出生日期 <'1990-01-01'
/*查询null、查询非null*/
SELECT 教师号,教师姓名 FROM teacher WHERE 教师姓名 IS (not) NULL;
3、逻辑运算符
1)逻辑运算符号
NOT 否定某一条件 AND 并且 BETWEEN 范围查询 OR 或者 IN OR的简单写法
2)示例
/*根据成绩筛选*/
SELECT 学号,成绩 FROM score WHERE 成绩>=60 and 成绩<90
/*根据姓名和性别查询*/
SELECT * FROM student WHERE (性别 ='男') AND (姓名 IN('猴子','马云'))
/*between and [60,90]*/
SELECT * FROM score WHERE 成绩 BETWEEN 60 AND 90
/*or*/ SELECT * FROM student WHERE 姓名='猴子' or 姓名='马云'
SELECT * FROM score WHERE 成绩<60 or 成绩>90
/*in*/ SELECT * FROM student WHERE 姓名 in ('马云' ,'猴子')
5. 谓词
1)语法
like:字符串模糊查询
%:任意字符串
_ :一个任意字符
2)示例
SELECT * FROM student WHERE 姓名 LIKE '马%'
6. 练习网站
SQL Tutorial/zh - SQLZOOsqlzoo.net二、汇总分析
SELECT 查询结果 FROM 从哪张表查询数据 GROUP BY 分组 having 对分组结果指定条件
1. 汇总分析
1)汇总函数
- count 求某列的行
- sum 对某列求和
- avg 对某列求均值
- max 求某列数据的最大值
- min 求某列数据的最小值
2)示例
/*计算数量*/
SELECT count(教师姓名)
FROM teacher
WHERE 教师姓名 IS NULL;
SELECT count(DISTINCT(姓名)) FROM student;
/*计算求和*/
SELECT SUM(成绩) FROM score;
2. 分组
1)语法
GROUP BY
2)示例
/*根据性别进行分组*/
SELECT 性别,count(*)
FROM student GROUP BY 性别;
SELECT 性别,count(*)
FROM student
WHERE 出生日期 > '1990-01-01'
GROUP BY 性别;