用mysql数据库创建学生表(students),包含字段:学生编号(s_id)、学生姓名(s_name)、性别(s_sex)、出生日期(s_birthday)、入学日期(s_admission_date)、所属院系(s_dept)、班级编号(s_class_id)。 创建课程表(courses),包含字段:课程编号(c_id)、课程名称(c_name)、学分(c_credit)、所属院系(c_dept)。 创建选课表(selections),包含字段:学生编号(s_id)、课程编号(c_id)、成绩(s_score)。 创建班级表(classes),包含字段:班级编号(c_id)、班级名称(c_name)、所属院系(c_dept)。创建函数,查询某个学生所选的课程及其成绩。
时间: 2023-06-04 13:04:20 浏览: 142
好的,这是一个关于MySQL数据库的问题,我可以为你提供答案。
以下是创建学生表的SQL语句:
CREATE TABLE students (
s_id int NOT NULL PRIMARY KEY,
s_name varchar(20) NOT NULL,
s_sex varchar(2) NOT NULL,
s_birthday date NOT NULL,
s_admission_date date NOT NULL,
s_dept varchar(20) NOT NULL,
s_class_id int NOT NULL
);
以下是创建课程表的SQL语句:
CREATE TABLE courses (
c_id int NOT NULL PRIMARY KEY,
c_name varchar(20) NOT NULL,
c_credit int NOT NULL,
c_dept varchar(20) NOT NULL
);
以下是创建选课表的SQL语句:
CREATE TABLE selections (
s_id int NOT NULL,
c_id int NOT NULL,
s_score int NOT NULL,
PRIMARY KEY (s_id, c_id),
FOREIGN KEY (s_id) REFERENCES students(s_id),
FOREIGN KEY (c_id) REFERENCES courses(c_id)
);
以下是创建班级表的SQL语句:
CREATE TABLE classes (
c_id int NOT NULL PRIMARY KEY,
c_name varchar(20) NOT NULL,
c_dept varchar(20) NOT NULL
);
以下是查询某个学生所选课程及其成绩的函数:
CREATE FUNCTION get_students_selections(sid int)
RETURNS TABLE(s_name varchar(20), c_name varchar(20), s_score int) AS
$$
BEGIN
RETURN QUERY SELECT students.s_name, courses.c_name, selections.s_score
FROM students
JOIN selections ON students.s_id = selections.s_id
JOIN courses ON selections.c_id = courses.c_id
WHERE students.s_id = sid;
END;
$$
LANGUAGE plpgsql;
你可以将以上代码复制到MySQL命令行或者MySQL客户端中执行即可创建相应的表或者函数。
阅读全文