MySQL数据库实验二:单表查询

实验二   单表查询

一、实验目的

理解SELECT语句的操作和基本使用方法。

二、实验环境

是MS SQL SERVER 2005的中文客户端。

三、实验示例

1、查询全体学生的姓名、学号、所在系。

SELECT Sname,S#,Sdept

FROM S;

2、查询全体学生的详细记录。

SELECT  *

FROM S;

3、查全体学生的姓名及其出生年份。

SELECT Sname,2011-Sage    /*假定当年的年份为2011年*/

FROM S;

4、查询选修了课程的学生学号。

    SELECT S#   FROM SC;

       等价于:

       SELECT ALL  S#  FROM SC;

指定DISTINCT关键词,去掉表中重复的行

      SELECT DISTINCT S#

    FROM SC;

5、 查询所有年龄在20岁以下的学生姓名及其年龄。

     SELECT Sname,Sage

FROM    S   

WHERE Sage < 20;

6、  查询考试成绩有不及格的学生的学号。

    SELECT DISTINCT S#

    FROM  SC

    WHERE Grade<60;

7、 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄

      SELECT Sname,Sdept,Sage

FROM     S

WHERE   Sage BETWEEN 20 AND 23;

8、查询所有姓刘学生的姓名、学号和性别。

      SELECT Sname,S#,Ssex

      FROM S

      WHERE  Sname LIKE ‘刘%’;

9、查询姓"欧阳"且全名为三个汉字的学生的姓名。

      SELECT Sname

      FROM   S

      WHERE  Sname LIKE '欧阳__';

10、 某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。

        SELECT S#,C#

      FROM  SC

      WHERE  Grade IS NULL

11、查询计算机系年龄在20岁以下的学生姓名。

     SELECT Sname

       FROM  S

       WHERE Sdept= 'CS' AND Sage<20;

12、 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

        SELECT S#,Grade

        FROM  SC

        WHERE  C#= ' 3 '

        ORDER BY Grade DESC;

13、查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。

        SELECT  *

        FROM  S

        ORDER BY Sdept,Sage DESC; 

14、 计算1号课程的学生平均成绩。

          SELECT AVG(Grade)

          FROM SC

          WHERE C#= ' 1 ';

15、 求各个课程号及相应的选课人数。

     SELECT C#,COUNT(S#)

     FROM    SC

     GROUP BY C#; 

16、 查询选修了3门以上课程的学生学号。

     SELECT S#

     FROM  SC

     GROUP BY S#

     HAVING  COUNT(*) >3;

四、实验内容与步骤

1、检索LIU老师所授课程的课程号和课程名。

2、检索年龄大于23岁的男学生的学号和姓名。

3、在表C中统计开设课程的教师人数。

4、 统计每个学生选修课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。

5、 在表SC中检索成绩为空值的学生学号和课程号。

6、 检索姓名以L打头的所有学生的姓名和年龄。

7、查询年龄不在20~23岁之间的学生姓名、系别和年龄

8、查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

9、查询所有不姓刘的学生姓名。

10、查所有有成绩的学生学号和课程号。

转载于:https://www.cnblogs.com/gaosheng-221/p/6171822.html

你可能感兴趣的:(MySQL数据库实验二:单表查询)