MySQL上机第二章-单表查询

一、上机目的:

                              熟悉数据表查询(单表查询)


二、上机要求

                             基于实验一创建的表,完成下列单表查询


(1) 查询全体教师的教师号、姓名和职称

SELECT Tno 教师号, Tn 姓名, Prof 职称 FROM T;

(2)查询学生的全部信息

SELECT * FROM S;

(3)查询选修了课程的学生号

SELECT DISTINCT Sno FROM SC;

(4)查询全体学生的姓名、学号和年龄。

SELECT Sn 姓名,Sno 学号,Age 年龄 FROM S;

(5)查询选修课程号为’C3’的学生的学号和成绩。

SELECT Sno,CNo,Score FROM SC WHERE CNo='C3';

(6)查询成绩高于70分的学生的学号、课程号和成绩。

SELECT Sno,CNO,Score FROM SC WHERE Score >70;

(7)查询选修了C3或C4且分数大于等于60分学生的学号、课程号和成绩.

SELECT Sno,CNo,Score FROM SC WHERE Score>60 AND CNo IN ('C3','C4');

(8)查询岗位津贴在1000~1500元之间的教师的教师号、姓名及职称。

SELECT TNo,TN,Prof FROM T WHERE Sal BETWEEN 1000 AND 1500;

(9)查询岗位津贴不在1000~1500之间的教师的教师号、姓名及职称。

SELECT TNo,TN,Prof FROM T WHERE Sal NOT BETWEEN 1000 AND 1500;

(10)查询选修C3或C4的学生的学号、课程号和成绩。

SELECT Sno,CNo,Score FROM SC WHERE CNo IN('C3','C4');

(11)查询没有选修C3,也没有选修C4的学生的学号、课程号和成绩。

SELECT Sno,CNo,Score FROM SC WHERE CNo NOT IN('C3','C4');

(12)查询所有姓“王”的教师的教师号和姓名。

SELECT TNo,TN FROM T WHERE TN LIKE('王%%');

(13)查询姓名中第二个汉字是“雪”的教师的教师号和姓名。

SELECT TNo,TN FROM T WHERE TN LIKE('%雪%');

(14)查询姓名中第三个符号是“%”的学生学号和姓名。

SELECT Sno,Sn FROM S WHERE Sn LIKE('__%%');

(15)查询没有考试成绩的学生的学号和相应的课程号。

SELECT Sno,CNo FROM SC WHERE Score IS NULL;

(16)求学号为S5的学生的总分和平均分。

SELECT SUM(Score)SUMScore,AVG(Score)AVGScore FROM SC WHERE Sno='S5';

(17)求选修C1号课程的最高、最低分及之间相差的分数

SELECT MAX(Score)-MIN(Score) 差值 FROM SC WHERE CNo='C1';

(18)求学校中共有多少个系。

SELECT COUNT(DISTINCT Dept) Dept FROM T;

(19)统计有成绩同学的人数。(成绩为0的同学也计算在内,没有成绩(即为空值)的就不计算。

SELECT COUNT(DISTINCT Sno) FROM SC WHERE Score IS NOT NULL;

(20)求计算机系学生的总数。

SELECT COUNT(Sno) FROM S WHERE Dept LIKE('计算机');

(21)查询各个教师的教师号及其任课的门数。

SELECT TNo,COUNT(CNo) FROM TC GROUP BY TNo;

(22)查询选修两门以上课程的学生的学号和选课门数。

SELECT Sno,COUNT(CNo) FROM SC GROUP BY Sno HAVING COUNT(CNo)>2;

(23)查询选修C2的学生学号和成绩,并按成绩升序排列。

SELECT Sno,Score FROM SC WHERE CNo='C2' ORDER BY Score;

(24)查询选修C2、C3、C4或C5课程的学号、课程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列。

SELECT Sno,CNo,Score FROM SC
WHERE CNo IN('C2','C3','C4','C5')
ORDER BY Sno ASC,Score DESC;

(25)查询选课在三门及以上(包含三门)且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出

SELECT Sno,SUM(Score) FROM SC 
WHERE Score > 60
GROUP BY Sno HAVING COUNT(Sno)>=3
ORDER BY SUM(Score) DESC;

注意:

第16题 SUM(Score)SUMScore 后面的SUMScore是为后面查询出来的列命名 你可以设置为任一名字并不一定要跟博主一样以此类推

第24题 由于MySQL默认是升序,但是为了区分还是在Sno后面加上了ASC(升序),由于学号相同再按成绩降序排列 因此在Score后面添加              DESC 表示降序


第二章练习到此结束......明天将进行第三章练习的更新,禁止摘抄,违权必究,摘录文章发表要 表明出处

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当你需要从MySQL数据库中查询单个表格的数据时,你可以使用SELECT语句。SELECT语句的基本语法如下: ``` SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件; ``` 其中,列名是指要查询的表格的列,可以是一个或多个,用逗号隔开。表名是指要查询的表格的名称。WHERE子句是可选的,用于指定查询条件,可以根据需要添加。 例如,如果要查询名为"users"的表格中年龄大于等于18岁的用户的姓名和年龄,可以使用以下语句: ``` SELECT name, age FROM users WHERE age >= 18; ``` 这将返回一个包含所有符合条件的用户姓名和年龄的结果集。 ### 回答2: MySQL数据库是一种功能强大的关系型数据库管理系统,被广泛应用于各种Web应用,尤其是对于大型数据集的处理。在MySQL中,单表查询是一种非常基本的操作,也是我们在日常开发中最常见的操作之一。 单表查询主要包括以下几种方式:选择数据、排序数据、分组数据、聚合数据、过滤数据等。 选择数据是指根据需求从单表中选择需要的数据,可以使用SELECT语句进行查询。SELECT语句的基本语法为SELECT column_name1,column_name2,...FROM table_name WHERE condition;,其中column_name表示需要查询的列名,table_name表示需要查询的表名,condition表示查询条件。例如:SELECT name,age FROM student WHERE age>=18; 排序数据是指根据某个列的值进行排序,可以使用ORDER BY语句进行排序。ORDER BY语句的基本语法为ORDER BY column_name1,column_name2,...[ASC|DESC];,其中ASC表示升序排列,DESC表示降序排列。例如:SELECT name,age FROM student WHERE age>=18 ORDER BY age DESC; 分组数据是指将相同属性值的行放在一起,可以使用GROUP BY语句进行分组。GROUP BY语句的基本语法为GROUP BY column_name1,column_name2,...;,其中column_name表示需要分组的列名。例如:SELECT COUNT(*) AS num,age FROM student WHERE age>=18 GROUP BY age; 聚合数据是指在数据集合上进行特定的计算,可以使用聚合函数进行计算。常见的聚合函数包括COUNT、SUM、AVG、MAX、MIN等。例如:SELECT COUNT(*) AS num FROM student WHERE age>=18; 过滤数据是指根据某个条件从单表中筛选出需要的数据,可以使用WHERE语句进行过滤。WHERE语句的基本语法为WHERE condition;,其中condition表示筛选条件。例如:SELECT name,age FROM student WHERE age>=18 AND gender='男'; 除了以上基础查询方式,MySQL还提供了更多高级查询方式和函数,包括多表查询、子查询、连接查询、索引等,可以根据具体需求进行使用。 总的来说,单表查询MySQL中最基础、最常见的查询操作之一。掌握了单表查询的基本语法和常用函数,可以让我们更高效地从单表查询、处理数据,提高我们的开发效率。 ### 回答3: MySQL是一种关系型数据库管理系统,它可以执行各种数据库操作,包括单表查询。在单表查询中,我们可以通过使用MySQL中的SELECT语句查询单个表格中的数据。在MySQL中,我们可以使用SELECT语句来实现以下操作: 1. 查询所有记录:我们可以使用SELECT * FROM table_name;语句来查询一个表中的所有记录。这将返回一个包含所有记录的结果集。 2. 查询指定列:如果我们只需要查询一部分列,可以使用SELECT column1, column2 FROM table_name;语句来查询指定列。这个语句将只返回包含指定列的结果集。 3. 条件查询:我们可以使用WHERE子句来限制SQL语句只查询符合条件的记录。例如,SELECT column1, column2 FROM table_name WHERE condition;。 4. 排序:我们可以使用ORDER BY子句对查询结果进行排序。例如,SELECT column1, column2 FROM table_name ORDER BY column1 ASC;将按升序排列列1的值。 5. 分组:我们可以使用GROUP BY子句将结果集按照指定列进行分组。例如,SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;将结果集按照列1进行分组,并计算每组中列2的计数。 6. 连接查询:如果我们需要在多个表格之间进行查询,可以使用JOIN子句将多个表格进行关联。例如,SELECT column1, column2 FROM table_name1 JOIN table_name2 ON table_name1.column1 = table_name2.column1;将使用列1将表格1和表格2进行关联,并将所有匹配的记录返回给结果集。 7. 子查询:我们可以在另一个查询的WHERE子句中使用子查询来执行条件查询。例如,SELECT column1, column2 FROM table_name1 WHERE column1 IN (SELECT column1 FROM table_name2 WHERE condition);将在一个表格中搜索具有满足条件的列1的所有记录。 综上所述,MySQL数据库提供了多种灵活的单表查询功能,可以帮助我们快速高效地查询数据库中的数据。我们可以根据自己的需求选择并组合这些功能实现各种复杂的查询任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值