源数据库及表请转到“学习笔记02”
一、查询整表或指定列
select * from course --返回整表所有数据
select c_id as '课程id','课程名'=c_name from course
--返回整表的c_id和c_name两列数据,“课程id”和“课程名”为显示的列名,as可省略
二、指定条件查询
select * from course
where c_id >=2
--返回c_id大于2的课程信息
三、查询结果去重,取前几位及排序
--1、去重:
insert into course values('思想品德',5),('思想品德',5)
--先往course表添加两条相同数据
select c_name,t_id from course
--返回全部数据,含两条'思想品德'数据
select distinct c_name,t_id from course
--返回非重复数据,只显示1条'思想品德'数据
--此外,请勿将标识列或者主键列一起选择,因为主键及标识列数据肯定是不重复的。
--2、排序及取前几位
select top 3 * from course order by c_id desc
--order by 列名1,列名2 desc/asc :以目标列作降序/升序排列,其中asc可省略;
--对多列进行排序时,先以列1为准,再排列2
--top 3 :选择前面3条的数据
四、聚合函数及分组查询
--1、聚合函数count\sum\avg\max\min
select count(*) from student
--返回数据表的总行数
--2、group by分组查询
select s_id,c_id,s_score from score
group by s_id,c_id,s_score
having s_score>=60
--返回按s_id,c_id,s_score分组,且成绩大于等于60的信息,select后面的字段必须包含在group by里或者在聚合函数里
--group by后面如果加条件,不能用where,而是用having
select s_id,avg(s_score) from score
group by s_id
--返回每个学生的平均成绩