数据查询
要点
- 简单查询
- 聚合函数Group By子句
- 多表连接查询
- 嵌套查询
- 数据查询与数据更新
- 合并查询结果
语法格式
Select 字段列表
From 表名
[Where 条件表达式]
[Group By 字段名]
[Having 条件表达式]
[Order By 字段名[ASC|DESC]]
[Limit [行号,]行数]
1.简单查询
1.1查询指定的字段
Select 字段列表 From 表名;
例如:查询学生信息表student中的学号,姓名。
Select 学号,姓名 from student;
1.2条件查询
格式:
Selelct 字段列表 from 表名 Where 条件表达式;
例如:查询课程信息表course 中学分少于4的课程信息
Select *from coures where 学分<4;
1.3多条件查询
- 带And的多条件查询
格式:
Select 字段列表 from 表名 where 条件表达式1 And 条件表达式2;
在学生信息表Student 中查询‘01’班的女生有哪些
Select 学号,姓名,出生日期,from student
where 班级编号 =‘01’And 性别=‘女’;
- 带or的多条件查询
格式:
Select 字段列表 from 表名 where 条件表达式1 or 条件表达式2;
例如:在学生信息表student 中查询‘01班’,‘02班’,‘03班’的学生详细信息
Select *from student
where 班级编号='01'or班级编号='02'or班级编号='03';
用IN关键字也可以查询
Selct *from student
where 班级编号 in ('01','02','03');
1.4模糊查询
Mysql 中常用的通配符有两种:百分号“%” 和 下划线 “-” ;
"%" 可以匹配一个或者多个字符;
"_" 只匹配一个字符;
查询信息表student中姓名的第二个字是“蓉”的学生信息
select *from student where 姓名="_蓉%";
1.5空值查询
IS NULL 关键字可以用来判断字段的值是否为空值NULL
表达式 IS [NOT] NULL
1.6查询结果排序
Order By 子句用于对查询结果排序
升序(Asc) 降序(Desc)
默认升序(Asc)
格式:
Order by 字段1 [Asc|Desc];
例如:
查询学生课表choose 选修"1"号课程的成绩,并按成绩降序排列,如果学号相同则按学号排序。
Select 学号,课程,成绩 from choose
Where 课程号 =‘1’
order by 成绩 Desc ,学号;
1.7 LIMIT子句
查询表中的前几条或者中间菜几条连续的记录,可以使用 LIMIT 子句实现。
格式:
SELECT 字段列表
FROM 数据源
Limit[Start,]1ength;
start 表示从第几行记录开始检素,
length 表示检素记录的行数.
数据表中第一行记录的 start 值为
当查询结果集从第一行开始输出,start 可以省略。
例:
查询学生选课表中选修“1”号课程的前三名学生的学号、课程号、
SELECT 学号,课程号,成绩 FROM choose
WHERE 课程号="1"
ORDER BY 成绩 DESC,学号
Limit 3;
1.8去除重复的行
用Distinct 关键字可以去除查询结果中的重复记录.
格式:
Select Distinct 字段名 from 表名;
2.聚合函数
聚合函数:又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据。常用的聚合函数:
count(col): 表示求指定列的总行数
max(col): 表示求指定列的最大值
min(col): 表示求指定列的最小值
sum(col): 表示求指定列的和
avg(col): 表示求指定列的平均值