mysql创建一个成绩表包含以下内容:score(id-编号,sno-学生编号, cname-课程名称, grade-成绩)
时间: 2023-06-15 13:05:42 浏览: 110
可以使用以下SQL语句在MySQL中创建一个名为score的表,并包含id、sno、cname和grade四个字段:
```
CREATE TABLE score (
id INT AUTO_INCREMENT PRIMARY KEY,
sno INT NOT NULL,
cname VARCHAR(50) NOT NULL,
grade FLOAT NOT NULL
);
```
其中,id是自增长的主键,sno表示学生编号,cname表示课程名称,grade表示成绩。注意,各个字段的数据类型要根据实际需要进行调整。
相关问题
(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查询所有课程的信息
(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;
```
利用批处理交件完蔣如下建立与直询视图的任务。 在 score 数据车中建立一个视图(yiemscgre),能品示成绩表中的全部信息以及学生姓名、斑级名、课程名。 用 seleat 语句及视图 yiewscare 查询“王“姓学生的姓名,课程名称和成绩
以下是批处理代码:
```
REM 创建视图 yiewscare
echo CREATE VIEW yiewscare AS SELECT score.*, student.sname, course.cname, grade.gname FROM score, student, course, grade WHERE score.sno = student.sno AND score.cno = course.cno AND student.grade = grade.gno; > create_view.sql
mysql -u username -p password < create_view.sql
REM 查询姓“王”的学生的成绩信息
echo SELECT student.sname, course.cname, score.score FROM yiewscare WHERE student.sname LIKE '王%'; > query.sql
mysql -u username -p password < query.sql
```
其中,先创建了一个名为 `yiewscare` 的视图,通过 `JOIN` 操作将成绩表、学生表、课程表和年级表进行关联,从而可以查询到学生姓名、班级名、课程名和成绩。然后使用 `SELECT` 语句从该视图中查询姓“王”的学生的姓名、课程名称和成绩,通过 `LIKE` 操作实现模糊匹配。最后将查询语句写入 `query.sql` 文件中,通过 `mysql` 命令执行该文件来查询结果。
阅读全文