1.基本查询
(1)查询学生表中全体学生的所有信息。
SQL语句:
SELECT * FROM Student;
(2)检索全体学生的学号、姓名。
SQL语句:
SELECT Sno, Sname FROM Student;
2.查询时改变列标题的显示
检索全体学生的学号、姓名、性别信息,并分别加上“学号”、“姓名”、“性别”的别名信息。
SELECT Sno 学号, Sname 姓名, Ssex 性别 FROM Student;
3.条件查询
(1)查询成绩大于90分的学生的学号及课程号、成绩。
SQL语句:
SELECT Sno, Cno, Grade FROM SC WHERE Grade > 90;
(2)查询成绩介于85~90分的学生的学号及课程号、成绩。
SQL语句:
SELECT Sno, Cno, Grade FROM SC WHERE Grade BETWEEN 85 AND 90;
(3)查询选修了课程号为“2”,且成绩大于88的学生的学号。
SQL语句:
SELECT Sno FROM SC WHERE Cno = '2' AND Grade > 88;
4.基于IN子句的数据查询
从课程表中查询出“数学”、“PASCAL语言”的所有信息。
SQL语句:
SELECT * FROM Course WHERE Cname IN ('数学', 'PASCAL语言');
5.基于Like子句的查询
(1)从学生表中分别检索出姓张的所有同学的资料;检索名字的第二个字是“红”或“虹”的所有同学的资料。
SQL语句:
SELECT * FROM Student WHERE Sname LIKE '张%';
SELECT * FROM Student WHERE Sname LIKE '_红%' OR Sname LIKE '_虹%';
(2)如果用户查询的匹配字符串本身就含有%或_,比如在课程表中,添加一门课程为Visual_Basic,其它相关信息自取。若要查询名为Visual_Basic的课程的学分,则SQL语句为:
(提示:使用ESCAPE短语)
SELECT Ccredit FROM Course WHERE Cname LIKE 'Visual\_Basic' ESCAPE '\';
6.使用top关键字查询
分别从课程表中检索出前5个的课程信息。
SQL语句:
SELECT TOP 5 * FROM Course;
或者
SELECT * FROM Course LIMIT 0,5;
7.消除重复行
检索出学生已选课程的课程号,要求显示的课程号不重复。
SQL语句:
SELECT DISTINCT Cno FROM SC;
8.查询经过计算的值
查询全体学生的姓名及其出生年份,要求为计算值取别名“出生年份”。(提示:用系统函数获取当前的年份减去年龄即为出生年份。)
SQL语句:
SELECT Sname, YEAR(CURRENT_DATE()) - Sage AS '出生年份' FROM Student;
9.使用ORDER BY语句对查询的结果进行排序
升序的关键字是ASC,降序的关键字是DESC,系统默认的是升序排列。
显示所有学生的基本信息,并按学生的年龄的升序排列。
SQL语句:
SELECT * FROM Student ORDER BY Sage ASC;
10.使用Group BY子句进行查询
如果要在数据检索时对表中数据按照一定条件进行分组汇总或求平均值,就要使用Group BY子句并使用集合函数。
(1)汇总总分大于200分的学生的学号及总成绩。
SQL语句:
SELECT Sno, SUM(Grade) AS '总成绩' FROM SC GROUP BY Sno HAVING SUM(Grade) > 200;
(2)查询各个课程号相应的选课人数。
SQL语句:
SELECT Cno, COUNT(*) AS '选课人数' FROM SC GROUP BY Cno;
11.使用聚合函数
(1)查询学生总人数。
SQL语句:
SELECT COUNT(*) AS '学生总人数' FROM Student;
(2)计算“2”号课程的学生平均成绩、最高分、最低分。
SQL语句:
SELECT AVG(Grade) AS '平均成绩', MAX(Grade) AS '最高分', MIN(Grade) AS '最低分' FROM SC WHERE Cno = '2';