★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,。
一、实验目的
1.掌握SQL查询语句的一般格式 。
2.掌握简单数据查询操作。
3.熟练掌握各种查询条件的表示。
4.掌握排序和分组操作在SQL语句中的实现。
5.掌握集函数的使用。
二、实验要求
借助SQL语言用各种查询条件完成指定的查询操作。
★温馨提示:以下内容均已经过测试,不过难免会有疏漏,但是代码实现大多数思路及实现经测验都是正确的。本节内容在命令行上实现,之后实验内容均在navicat数据库管理工具上实现
三、实现内容及步骤
(1)查询全体学生的学号和姓名。
SELECT sno,sname
FROM student;
(2)查询全体学生的详细记录。
SELECT *
FROM student;
(3)查询软件学院的学生姓名、年龄、系别。
SELECT sname,sage,sinstitue
FROM student
WHERE sinstitue='计软学院';
(4)查询所有选修过课程的学生学号(不重复)。
SELECT DISTINCT sno
FROM sc
WHERE cno is NOT NULL;
(5)查询考试不及格的学生学号(不重复)。
SELECT DISTINCT sno
FROM sc
WHERE grade<60;
(6)查询不是软件学院、计算机系的学生性别、年龄、系别。
SELECT ssex,sage,sdept
FROM student
WHERE sinstitue NOT LIKE '计软学院' AND sdept NOT LIKE '计科';
(7)查询年龄18-20岁的学生学号、姓名、系别、年龄。
SELECT sno,sname,sdept,sage
FROM student
WHERE sage BETWEEN 18 AND 20;
(8)查询姓刘的学生情况。
SELECT *
FROM student
WHERE sname LIKE '刘%';
(9)查询姓刘或姓李的学生情况。
SELECT *
FROM student
WHERE sname LIKE '刘%' OR sname LIKE '李%';
(10)查询姓刘且名字为两个字的学生情况。
SELECT *
FROM student
WHERE sname LIKE '刘_';
(11)查询1983年以后出生的学生姓名。
SELECT sname
FROM student
WHERE YEAR(scome)>1983;
(12)创建表 studentgrad(sno,mathgrade,englishigrade,chinesegrade)
计算学生各科总成绩并赋予别名。
SELECT mathgrade + englishgrade + chinesegrade AS '总成绩'
FROM studentgrade;
(13)利用内部函数 year()查找软件学院学生的出生年份。
SELECT YEAR(scome)
FROM student
WHERE sinstitue = '计软学院';
(14)利用字符转换函数实现字符联接。Select sname + ‘年龄为’+cast(sage as char(2))+’岁’ From student;
SELECT CONCAT(sname,'年龄为',CAST(sage AS char(2)),'岁')
FROM student;
(15)查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。
SELECT *
FROM student
ORDER BY sdept ASC,sage DESC;
(16)查询学生总人数。
SELECT COUNT(DISTINCT sno)
FROM student;
(17)查询选修了课程的学生人数。
SELECT COUNT(DISTINCT sno)
FROM sc
WHERE cno IS NOT NULL;
(18)查询选修了7号课程的学生总人数和平均成绩。
SELECT COUNT(sno) AS '总人数',AVG(grade) AS '平均成绩'
FROM sc
WHERE cno = '1';
(19)查询选修6号课程学生的最好成绩。
SELECT MAX(grade)
FROM sc
WHERE cno='6';
(20)查询每个系的系名及学生人数。
SELECT sdept,COUNT(sno)
FROM student
GROUP BY sdept;
(21)查找每门课的选修人数及平均成绩。
SELECT cno,COUNT(sno),AVG(grade)
FROM sc
GROUP BY cno;
(22)查找没有先修课的课程情况。
SELECT *
FROM course
WHERE cpno IS NULL;
四、实验总结
1、掌握了SQL查询语句的一般格式,简单数据查询操作。
2、能够熟练地进行各种查询条件的表示。
3、基本掌握了排序和分组操作在SQL语句中的实现、以及集函数的使用。
2022.6.14记录:Code_流苏(CSDN)
如有任何疑问,评论回复,看到即回,欢迎大家多多交流学习!
★以上实验内容仅供参考。