(1)创建数据库“studentDB”,默认字符集为utf8mb4。 (2)完成student表创建代码编写,student表结构如下。 字段名 数据类型和约束 备注 sno 整型,无符号,主键,自增 学号 sname 字符串(3),不为空,默认空字符串 姓名 sex 字符串(1),不为空,默认值‘男’ 性别 birthday 日期类型 出生日期 Class 字符串(5),不为空,默认空字符串 班级 remark 字符串(50) 备注 (3)向student表中插入如下数据。 学号 姓名 性别 出生日期 班级 备注 1 张雷 男 1995-01-20 网络11 null 2 李四 男 1993-12-12 网络11 null 3 李维 女 1994-11-12 软件11 null (4)修改student表中学号为“3”的数据记录,把其班级更改为“网络13”、性别改为“男”。 (5)查询student表中的所有信息,并以中文名显示标题列。 (6)查询student表中姓‘张’的学生信息 (7)查询student表中1994年出生的学生信息 (8)查询所有男生的学号、姓名、班级、课程编号、课程名称、成绩。 (9)查询成绩在90分以上的学生姓名 (10)查询“MySQL数据库”课程的最高分。 (11)创建视图v_view:以课程编号分组统计选修的人数和平均分。(12)创建存储过程p_coure查询所有课程的信息
时间: 2024-01-22 20:02:29 浏览: 115
《数据库系统概论》第三章例题 Student Course SC 三张 基础表 源代码
(1)创建数据库:
```
CREATE DATABASE studentDB DEFAULT CHARACTER SET utf8mb4;
```
(2)创建student表:
```
CREATE TABLE student (
sno INT UNSIGNED NOT NULL AUTO_INCREMENT,
sname VARCHAR(3) NOT NULL DEFAULT '',
sex VARCHAR(1) NOT NULL DEFAULT '男',
birthday DATE,
class VARCHAR(5) NOT NULL DEFAULT '',
remark VARCHAR(50),
PRIMARY KEY(sno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
(3)向student表中插入数据:
```
INSERT INTO student (sno, sname, sex, birthday, class, remark) VALUES
(1, '张雷', '男', '1995-01-20', '网络11', null),
(2, '李四', '男', '1993-12-12', '网络11', null),
(3, '李维', '女', '1994-11-12', '软件11', null);
```
(4)修改student表中学号为“3”的数据记录:
```
UPDATE student SET class='网络13', sex='男' WHERE sno=3;
```
(5)查询student表中所有信息,并以中文名显示标题列:
```
SELECT
'学号' AS 'sno',
'姓名' AS 'sname',
'性别' AS 'sex',
'出生日期' AS 'birthday',
'班级' AS 'class',
'备注' AS 'remark'
UNION ALL
SELECT sno, sname, sex, birthday, class, remark FROM student;
```
(6)查询student表中姓‘张’的学生信息:
```
SELECT * FROM student WHERE sname LIKE '张%';
```
(7)查询student表中1994年出生的学生信息:
```
SELECT * FROM student WHERE YEAR(birthday) = 1994;
```
(8)查询所有男生的学号、姓名、班级、课程编号、课程名称、成绩:
```
SELECT
student.sno,
student.sname,
student.class,
score.cno,
course.cname,
score.grade
FROM
(student JOIN score ON student.sno = score.sno)
JOIN course ON score.cno = course.cno
WHERE
student.sex = '男';
```
(9)查询成绩在90分以上的学生姓名:
```
SELECT student.sname FROM student JOIN score ON student.sno = score.sno WHERE score.grade > 90;
```
(10)查询“MySQL数据库”课程的最高分:
```
SELECT MAX(grade) FROM score WHERE cno = '001';
```
(11)创建视图v_view:
```
CREATE VIEW v_view AS
SELECT
score.cno,
COUNT(DISTINCT score.sno) AS '选修人数',
AVG(score.grade) AS '平均分'
FROM
score
GROUP BY
score.cno;
```
(12)创建存储过程p_course查询所有课程的信息:
```
CREATE PROCEDURE p_course()
BEGIN
SELECT * FROM course;
END;
```
阅读全文