您的当前位置:首页sql 数据查询

sql 数据查询

2020-10-09 来源:乌哈旅游
sql 数据查询

例1.11 查询全体学生的详细记录。这是一个无条件的选择查询,其命令为: SELECT * FROM Students;

其结果为表1.3中的全部数据。

例1.12 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。这是一个无条件的投影查询,其命令为:

SELECT Sname, Sno, Sdept FROM Students;

例1.13 查询全体学生的姓名(Sname)、出生年份及学号(Sno)。由于SELECT子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式,故可以查询经过计算的值。其命令为:

SELECT Sno, Sname, 2001-Sage FROM Students;

例1.14 查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。其命令为:

SELECT Sname, ’Birth:’ Title, 1996-Sage BirthYear, LOWER(Sno) Lsno FROM Students;

例1.15 查询选修了课程的学生学号。其命令为: SELECT DISTINCT Sno FROM Reports; 2 条件查询

例1.16 查询数学系全体学生的学号(Sno)和姓名 (Sname)。其命令为: SELECT Sno, Sname FROM Students WHERE Sdept='数学';

例1.17 查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

SELECT Sname, Sage FROM Students

WHERE Sage>=18 AND Sage<=22;

例1.18 查询年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

SELECT Sname, Sage FROM Students

WHERE Sage BETWEEN 18 AND 22;

例1.19 查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。其命令

为:

SELECT Sname, Sage FROM Students

WHERE Sage NOT BETWEEN 18 AND 22;

例1.20 查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。其命令为:

SELECT Sno, Sname, Ssex FROM Students

WHERE Sdept IN ('自动化', '数学', '计算机'); 等价于:SELECT Sname, Ssex FROM Students

WHERE Sdept='自动化' OR Sdept='数学' OR Sdept='计算机';

例1.21 查询既不是信息系、数学系、也不是计算机系的学生的姓名(Sname)和性别(Ssex)。其命令为:

SELECT Sname, Ssex FROM Students

WHERE Sdept NOT IN ('自动化', '数学', '计算机');

例1.22 查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。其命令为:

SELECT Sname, Sno, Ssex FROM Students

WHERE Sname LIKE '刘%';

例1.23 查询姓“刘”且全名为4个汉字的学生的姓名(Sname)和所在系(Sdept)。其命令为:

SELECT Sname, Sdept FROM Students

WHERE Sname LIKE '刘____';

例1.24 查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。 SELECT Sname, Sage FROM Students

WHERE Sname NOT LIKE '刘%';

例1.25 查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。其命令为:

SELECT Cno, Credits FROM Courses

WHERE Cname LIKE 'DB\\_设计' ESCAPE '\\';

例1.26 查询以\"DB_\"开头,且倒数第2个汉字字符为“设”的课程的详细情况。其命令为:

SELECT * FROM Courses

WHERE Cname LIKE 'DB\\_%设__'ESCAPE'\\';

例1.27 假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。其命令为:

SELECT Sno, Cno FROM Reports

WHERE Grade IS NULL;

例1.28 查询所有有成绩的学生学号(Sno)和课程号(Cno)。其命令为: SELECT Sno, Cno FROM Reports

WHERE Grade IS NOT NULL; 3 查询结果排序

例1.29 查询选修了C03号课程的学生的学号(Sno)和成绩(Grade),并按成绩降序排列。其命令为:

SELECT Sno, Grade FROM Reports WHERE Cno='C03' ORDER BY Grade DESC;

例1.30 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。其命令为:

SELECT * FROM Students

ORDER BY Sdept, Sage DESC; 4 集函数的使用

例1.31 查询学生总人数。其命令为: SELECT COUNT(*) FROM Students;

例1.32 查询选修了课程的学生人数。其命令为: SELECT COUNT(DISTINCT Sno) FROM Reports;

例1.33 计算选修C01号课程的学生平均成绩。其命令为: SELECT AVG(Grade) FROM Reports

WHERE Cno='C01';

例1.34 查询选修C01号课程的学生最高分数。其命令为: SELECT MAX(Grade) FROM Reports WHERE Cno='C01'; 5 查询结果分组

例1.35 求各个课程号(Cno)及相应的选课人数。其命令为: SELECT Cno , COUNT(Sno) CntSno FROM Reports GROUP BY Cno;

例1.36 查询选修了3门或3门以上课程的学生学号(Sno)。其命令为: SELECT Sno FROM Reports GROUP BY Sno HAVING COUNT(Cno)>

因篇幅问题不能全部显示,请点此查看更多更全内容