MySQL 课后习题解析与笔记——学生选课数据库相关操作

这篇具有很好参考价值的文章主要介绍了MySQL 课后习题解析与笔记——学生选课数据库相关操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


MySQL 课后习题解析与笔记——学生选课数据库相关操作

📋前言

这篇文章记录一下帮助粉丝朋友一起学习解决的 MySQL 课后习题,内容很基础,都是基础的数据库语句和操作,内容是关于学生选课数据库的一些操作。这里我用 MySQLNavicat 完成这些题目。


🎯题目解析

题目如下:

现有学生选课数据库:Student(Sno,Sname,Sage,Ssex,Sdept)、 Course(Cno,Cname, Teacher)、SC(Sno,Cno,Grade),试用SQL完成下列操作。
(1)创建 SC 表,注明主码和外码。
(2)检索刘军老师所授课程的课程号和课程名。
(3)检素年龄大于 23 的男学生的学号和姓名。
(4)检索学号为 95001 学生所学课程的课程名与任课教师名。
(5)检索课程平均成绩 90 分(含 90 分)以上的学生姓名和学号。
(6)删除学号为 95002 学生的选课记录。
(7)将学号为 95003 学生的年龄修改为 19 岁
(8)插入一条学生记录(95004,李玉荷,18,计算机系,女)。
(9)将 SC 表查询的权限授权给所有用户。
(10)创建数学系的学生视图。

因为是教材的课后习题,所以我们没有开箱即用的数据库和表,因此我们要先创建数据库,并且建相对应的三个表,分别是Student(Sno,Sname,Sage,Ssex,Sdept)、 Course(Cno,Cname, Teacher)、SC(Sno,Cno,Grade)。

1️⃣创建数据库

首先创建数据库 course_select ,可以通过 SQL 语句创建,也可以通过 Navicat 的可视化操作创建 (右键连接 => 新建数据库 =>输入数据库名、字符集、排序规则 => 确定即可)

CREATE DATABASE `course_select` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

MySQL 课后习题解析与笔记——学生选课数据库相关操作

2️⃣创建表

创建好数据库以后,我们根据题目的描述,创建对应的表以及表所需要的字段。同时插入一些默认数据,以及题目中所需要的数据,比如说年龄大于 23 、学号的命名规则(95001)、老师名字(如刘军老师)。

然后是关于表的创建 ,可以通过 SQL 语句创建,也可以通过 Navicat 的可视化操作创建 (下图是创建数据库的方法,右击表 => 新建表 =>在窗口输入内容,如字段名、类型、长度 => 保存 =>给表命名),但这里建议用 SQL 语句创建(巩固基础)。
MySQL 课后习题解析与笔记——学生选课数据库相关操作
创建的表和字段名为 Student(Sno,Sname,Sage,Ssex,Sdept)、 Course(Cno,Cname, Teacher)、SC(Sno,Cno,Grade) 。参考的 SQL 语句和插入的默认数据如下。

📑Student 表

-- 创建 Student 表
CREATE TABLE Student (
  Sno CHAR(8) NOT NULL,
  Sname VARCHAR(20),
  Sage INT,
  Ssex CHAR(2),
  Sdept VARCHAR(20),
  PRIMARY KEY (Sno)
);

-- 插入 student 表数据
INSERT INTO Student (Sno, Sname, Sage, Ssex, Sdept) VALUES 
  ('95001', '张可可', 20, '男', '计算机系'),
  ('95002', '李晓晓', 21, '男', '数学系'),
  ('95003', '黄珊', 22, '女', '英语系');

Navicat 新建查询,然后运行 SQL 语句创建表(下面两个表也是这样操作,不重复赘述)
MySQL 课后习题解析与笔记——学生选课数据库相关操作
MySQL 课后习题解析与笔记——学生选课数据库相关操作

📑Course 表

-- 创建 Course 表
CREATE TABLE Course (
  Cno CHAR(4) NOT NULL,
  Cname VARCHAR(20),
  teacher VARCHAR(20),
  PRIMARY KEY (Cno)
);
-- 插入 Course 表数据
INSERT INTO Course (Cno, Cname, Teacher) VALUES 
  ('001', '高等数学', '张三'),
  ('002', '大学英语', '李四'),
  ('003', '计算机体系结构', '刘军');

MySQL 课后习题解析与笔记——学生选课数据库相关操作
MySQL 课后习题解析与笔记——学生选课数据库相关操作

📑SC 表

-- 创建 SC 表
CREATE TABLE SC (
  Sno CHAR(8) NOT NULL,
  Cno CHAR(4) NOT NULL,
  Grade FLOAT,
  PRIMARY KEY (Sno, Cno),
  FOREIGN KEY (Sno) REFERENCES student(Sno),
  FOREIGN KEY (Cno) REFERENCES Course(Cno)
);

-- 插入 SC 表数据
INSERT INTO SC (Sno, Cno, Grade) VALUES 
  ('95001', '001', 90),
  ('95001', '002', 85),
  ('95002', '001', 70),
  ('95002', '003', 80),
  ('95003', '002', 95),
  ('95003', '003', 90);

MySQL 课后习题解析与笔记——学生选课数据库相关操作
MySQL 课后习题解析与笔记——学生选课数据库相关操作
创建完这三个表以及插入数据以后,先熟悉每个表的结构以及各个表之间的联系,然后再审题,具体看题目需要完成哪些操作。


🎯完整答案

在完成上面的步骤以后,我们可以开始做题。接下来我们来看看这十道题目的答案。

(1)创建 SC 表,注明主码和外码。
这题在上面创建表的时候已经算是完成了,所以就不多赘述了(这里的主码、外码就是指主键和外键,我是这样理解的)。

CREATE TABLE SC (
  Sno CHAR(8) NOT NULL,
  Cno CHAR(4) NOT NULL,
  Grade FLOAT,
  PRIMARY KEY (Sno, Cno),
  FOREIGN KEY (Sno) REFERENCES student(Sno),
  FOREIGN KEY (Cno) REFERENCES Course(Cno)
);

(2)检索刘军老师所授课程的课程号和课程名。

SELECT Cno, Cname
FROM Course
WHERE teacher = '刘军';

MySQL 课后习题解析与笔记——学生选课数据库相关操作
(3)检素年龄大于 23 的男学生的学号和姓名。
这里没有查询到年龄大于 23 岁的男学生,是因为插入数据的时候忘记插入大于 23 岁的默认数据了,因此插入一条大于 23 岁的学生数据再做测试 。
MySQL 课后习题解析与笔记——学生选课数据库相关操作
插入数据后,测试成功。
MySQL 课后习题解析与笔记——学生选课数据库相关操作
(4)检索学号为 95001 学生所学课程的课程名与任课教师名。

SELECT Course.Cname, Course.teacher
FROM Course, SC
WHERE SC.Sno = '95001' AND SC.Cno = Course.Cno;

MySQL 课后习题解析与笔记——学生选课数据库相关操作
(5)检索课程平均成绩 90 分(含 90 分)以上的学生姓名和学号。

SELECT student.Sno, student.Sname
FROM student, SC
WHERE student.Sno = SC.Sno
GROUP BY student.Sno, student.Sname
HAVING AVG(SC.Grade) >= 90;

MySQL 课后习题解析与笔记——学生选课数据库相关操作
(6)删除学号为 95002 学生的选课记录。

DELETE FROM SC
WHERE Sno = '95002';

MySQL 课后习题解析与笔记——学生选课数据库相关操作
(7)将学号为 95003 学生的年龄修改为 19 岁。

UPDATE student
SET Sage = 19
WHERE Sno = '95003';

MySQL 课后习题解析与笔记——学生选课数据库相关操作
(8)插入一条学生记录(95004,李玉荷,18,计算机系,女)。

INSERT INTO student(Sno, Sname, Sage,Sdept, Ssex)
VALUES ('95004', '李玉荷', '18','计算机系', '女');

MySQL 课后习题解析与笔记——学生选课数据库相关操作
(9)将 SC 表查询的权限授权给所有用户。(参考)

GRANT SELECT ON SC TO PUBLIC;

(10)创建数学系的学生视图。

CREATE VIEW math_students AS 
SELECT Sno, Sname, Sage, Ssex
FROM student
WHERE Sdept = '数学系';

MySQL 课后习题解析与笔记——学生选课数据库相关操作


📝最后

这就是 MySQL 课后习题——学生选课数据库相关操作的全部内容了,内容很基础,都是基础的数据库语句和操作,通过这个练习,可以熟悉 MySQLNavicat 使用。
MySQL 课后习题解析与笔记——学生选课数据库相关操作
文章来源地址https://www.toymoban.com/news/detail-475662.html

到了这里,关于MySQL 课后习题解析与笔记——学生选课数据库相关操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP 课后习题解析与笔记——流程控制语句习题

    这篇文章记录一下帮助粉丝朋友解决的 PHP 课后习题,内容很基础,是关于 PHP 流程控制语句的使用练习,题目内容如下图的两题。这里我用 vscode 编译器和 Wampserver 完成这些题目。 php编写函数实现:输入一个整数,判断它能否被 3、5、7 整除,并输出以下信息之一: 能同时被

    2024年02月09日
    浏览(34)
  • 大学生选修选课系统|基于Springboot的大学生选修选课系统设计与实现(源码+数据库+文档)

    大学生选修选课系统目录 目录 基于Springboot的大学生选修选课系统设计与实现 一、前言 二、系统功能设计  三、系统实现  1、用户信息管理 2、 课程信息管理 3、排课信息管理 4、公告信息管理  四、数据库设计 1、实体ER图   五、核心代码   六、论文参考 七、最新计算机

    2024年03月11日
    浏览(61)
  • 基于JavaWeb实现的学生选课系统(源码+数据库)

    本项目是一套基于JavaWeb实现的学生选课系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse 确保可以运行! 该系统功能完善、界面美观、

    2024年02月08日
    浏览(65)
  • 《数据库系统概论》王珊版课后习题

    1.数据、数据库、数据库管理系统、数据库系统的概念 (1)数据(Data):数据是数据库中存储的基本对象, 是描述事物的符号记录 。数据有多种表现形式,它们都可以经过数字化后存入计算机。数据的种类有数字、文字、图形、图像、声音、正文等。 (2)数据库(DB):

    2024年02月07日
    浏览(37)
  • 实验一 关系数据库标准语言SQL 课后习题/头歌

    任务要求 建立demo数据库 并显示所有数据库 第2关:创建表 任务要求 设有一个demo数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CI

    2024年02月05日
    浏览(42)
  • (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    本文适合 有一定JAVA编程基础(听过一点课的同学) 的同学“食用”,源代码都在文末 源代码(点击跳转) ,第四部分是各个模块的实现,新建一个工程把下面代码添加进去,然后在数据库里按id-username-password和id-name-sex-telephone-number-birthday-note创建两个表,在Connect.java里面将us

    2024年02月04日
    浏览(36)
  • 数据库课程设计-学生选课管理系统(实训报告+答辩ppt+源码+sql文件+打包好的程序)springboot项目-javaweb

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。 如果对你有帮助,请给一个小小的star⭐ 源码加vx : ChenZhen_7 (实训报告+答辩ppt+源码+sql文件+打包好的程序 无套路 免费获取! 不放

    2024年02月11日
    浏览(53)
  • 【UML】-- 顺序图练习题含答案(自动售货机、学生选课、提款机、购买地铁票、洗衣机工作)

    根据下面的叙述,绘制一幅关于顾客从自动售货机中购买物品的顺序图。 顾客( User )先向自动售货机的前端( Front )投币; 售货机的识别器( Register )识别钱币; 售货机前端( Front )根据 Register 的识别结果产生商品列表; 顾客选择商品; 前端控制的出货器( Dispense

    2023年04月18日
    浏览(91)
  • mysql 创建学生表、课程表、学生选课表

    数据库系统概论(第五版)79页提供的三个表,为了我们上机操作容易,下面创建这三个表 学生-课程数据库中包含以下三个表 学生表:Student( Sno ,Sname,Ssex,Sage,Sdept) 课程表:Course( Cno ,Cname,Cpno,Ccredit) 学生选课表:SC( Sno , Cno ,Grade) 关系的主码加粗表示,各个表中的数据实例: St

    2024年02月11日
    浏览(24)
  • JavaSwing+MySQL的学生选课系统

    点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88101629?spm=1001.2014.3001.5503 Jdk:1.8 MySQL:5.7 功能:可以进行选课与查看学生基本资料 在这里插入图片描述

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包