数据库系统实验4:SQL语言——SELECT查询操作



* 数据库系统实验4:SQL语言——SELECT查询操作
<https://blog.csdn.net/hzwai/article/details/80445638#数据库系统实验4sql语言select查询操作>
* 实验环境 <https://blog.csdn.net/hzwai/article/details/80445638#实验环境>
* 实验内容 <https://blog.csdn.net/hzwai/article/details/80445638#实验内容>
* 步骤及过程 <https://blog.csdn.net/hzwai/article/details/80445638#步骤及过程>
* 首先按以下SQL语句创建测试用的jxgl数据库
<https://blog.csdn.net/hzwai/article/details/80445638#首先按以下sql语句创建测试用的jxgl数据库>
* 使用SQL语句表达以下查询
<https://blog.csdn.net/hzwai/article/details/80445638#使用sql语句表达以下查询>


实验环境

windows10操作系统,使用MySQL 5.5 Command Line完成实验

实验内容

实验课教材(MySQL数据库技术与实验指导)第73页“实验内容与要求”第1题
基于jxgl数据库,使用SQL语句表达以下查询

* 检索年龄大于23岁的男学生的学号和姓名
* 检索至少选修一门课程的女学生姓名
* 检索王林不学的课程的课程号
* 检索至少选修两门课程的学生学号
* 检索全部学生都选修的课程的课程号和课程名
* 检索选修了所有3学分的每门课程的学生平均成绩
步骤及过程

首先按以下SQL语句创建测试用的jxgl数据库
CREATE DATABASE jxgl; use jxgl; CREATE TABLE IF NOT EXISTS student( sno CHAR(7)
NOT NULL, sname VARCHAR(16), sage SMALLINT CHECK(sage>=16 AND sage<=45), ssex
CHAR(2) DEFAULT '男' CHECK(ssex='男' OR ssex='女'), sdept CHAR(2), PRIMARY KEY
(sno) ) ENGINE=InnoDB; INSERT INTO student VALUES ('2005001', '钱横', 18, '男','Cs'
), ('2005002', '王林', 19, '女','Cs'), ('2005003', '李民', 23, '男','Is'), ('2005004',
'赵欣然', 16, '女','Ma'); CREATE TABLE IF NOT EXISTS course( cno CHAR(2) NOT NULL,
cnameVARCHAR(20), cpno CHAR(2), ccredit SMALLINT, PRIMARY KEY(cno) )
ENGINE=InnoDB; INSERT INTO course VALUES ('1', '数据库系统', '5', 4), ('2', '数学分析',
'', 2), ('3', '信息系统导论', '1', 3), ('4', '操作系统原理', '6', 3), ('5', '数据结构', '7', 4
), ('6', '数据处理基础', '', 4), ('7', 'C语言', '6', 3); CREATE TABLE IF NOT EXISTS sc(
snoCHAR(7) NOT NULL, cno CHAR(2) NOT NULL, grade SMALLINT, PRIMARY KEY(sno,
cno),FOREIGN KEY(sno) REFERENCES student(sno), FOREIGN KEY(cno) REFERENCES
course(cno) ) ENGINE=InnoDB; INSERT INTO sc VALUES ('2005001', '1', 87), (
'2005001', '2', 67), ('2005001', '3', 90), ('2005001', '4', 90), ('2005001', '5'
,90), ('2005001', '6', 90), ('2005001', '7', 90), ('2005002', '2', 95), (
'2005002', '4', 88), ('2005003', '3', 88), ('2005003', '4', 88), ('2005004', '4'
,88);
使用SQL语句表达以下查询

* 检索年龄大于23岁的男学生的学号和姓名 SELECT sno, sname FROM student WHERE sage>23 AND ssex=
'男';
* 检索至少选修一门课程的女学生姓名 SELECT student.sname FROM student, sc WHERE student.ssex=
'女' AND student.sno=sc.sno GROUP BY student.sno HAVING count(*)>=1;
* 检索王林不学的课程的课程号 SELECT cno FROM course WHERE NOT EXISTS (SELECT * FROM
student, scWHERE sc.sno=student.sno AND sc.cno=course.cno AND student.sname='王林'
);
* 检索至少选修两门课程的学生学号 SELECT student.sno FROM student, sc WHERE student.sno=sc.sno
GROUP BY student.sno HAVING count(*)>=2;
* 检索全部学生都选修的课程的课程号和课程名 SELECT cno, cname FROM course WHERE NOT EXISTS (SELECT
*FROM student WHERE NOT EXISTS (SELECT * FROM sc WHERE sno=student.sno AND
cno=course.cno));
* 检索选修了所有3学分的每门课程的学生平均成绩 SELECT AVG(grade) FROM course, sc WHERE
course.cno=sc.cnoAND course.ccredit=3;

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信