SQL2008R2
【例】查询全体学生的学号和姓名
SELECT Sno,Sname FROM STUDENT;
【例】查询全体学生的详细记录
SELECT * FROM STUDENT;
(3)查询经过计算的值
【例】查询全体学生的姓名及其出生年份
SELECT Sname,2017-Sage 'DATE OF BIRTH'FROM STUDENT;
【例】查询全体学生的姓名,出生年份和所在院系,要求用小写字母表示系名
SELECT Sname,'DATE OF BIRTH' ,LOWER(Sdept) FROM STUDENT;
【例】SELECT DISTINCTSno FROM SC;
表3.6 常用的查询条件
比较 > ,<,>=,<=,<>,!>,!<
确定范围 BETWEEN AND, NOT BETWEEN AND
确定集合 IN,NOT IN
字符匹配 LIKE ,NOT LIKE
空值 IS NULL,IS NOT NULL
多重条件 AND ,OR ,NOT
【例】SLECT Sname FROM WHERE Sdept=‘CS’;
SLECT Sname FROM WHERE Sage<20;
SLECT Sname FROM WHERE Grade<60;
SELECT Sname,Sdept FROM STUDENT WHERE Sage BETWEEN 20 AND 25;
SELECT Sname,Sex IN('CS','MA','IS');
% 代表任意长度包括0个长度,
_代表单个字符
EXCAPE'\' 代表\后面的_或者% 是查询字符,不是匹配字符
【例】
查询学号是20121512系列的学生信息
SELECT * FROM STUDENT WHERE Sno LIKE '20121512_';
查询所有刘姓的学生信息
SELECT * FROM STDENT WHERE Sname LIKE '刘%';
查询DB_Design 课程的课程号和学分
SELECT Cno,Grade FROM COURE WHERE Cname LIKE 'DB\_Design' ESCAPE '\';
查询DB_开头,且倒数第三个字符为i的课程的详细情况
SELECT * FROAM SC WHERE Cname LIKE "DB\_%i_ _" EXCAPE '\'
SELECE Sno,Cno FROM SC WHERE GRADE IS NOT NULL;
SELECT Sname FROAM STUDENT WHERE Sdept ='CS'AND Sage>20;
SELECT Sno,GradeFROM SC DRDER BY Grade ASC(DESC) // 升序和降序
COUNT (*) 统计元组个数
COUNT ([DISTINCT|ALL]<列名>) 统计一列中的值的个数
SUM([DISTINCT|ALL]<列名>) 计算一列中值的总和(此列必须为数值项)
AVG([DISTINCT|ALL]<列名>) 计算一列中值的平均数(此列必须为数值项)
MAX([DISTINCT|ALL]<列名>) 找出一列中最大的数值
MIN([DISTINCT|ALL]<列名>) 找出一列中最大的数值
【例】
查询学生总人数
SELECT COUNT(*) FROM STUDENT;
计算选修了一号课程的学生平均成绩
SELECT Sno,AVG(Grade) FROM SC WHERE Cno='1';
查询学生201215012选修课程的总学分数
SELECT SUM(Grade) FROM SC WHERE Sno='201215012'
【例子】
求各个课程号及相应的选课人数
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
求选修了三门以上课程的学生学号
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(Sno)>3
查询平均成绩大于等于90,学生学号和平均成绩
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVE(Grade>90)