用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 18:05:21 浏览: 467
好的,这是一个关于MySQL数据库的问题,属于技术问题,我可以回答。以下是创建表和函数的SQL语句:
创建学生表:
CREATE TABLE students (
s_id INT NOT NULL,
s_name varchar(255),
s_sex varchar(255),
s_birthday DATE,
s_admission_date DATE,
s_dept varchar(255),
s_class_id INT,
PRIMARY KEY (s_id));
创建课程表:
CREATE TABLE courses (
c_id INT NOT NULL,
c_name varchar(255),
c_credit INT,
c_dept varchar(255),
PRIMARY KEY (c_id));
创建选课表:
CREATE TABLE selections (
s_id INT,
c_id INT,
s_score INT,
PRIMARY KEY (s_id, c_id),
FOREIGN KEY (s_id) REFERENCES students(s_id),
FOREIGN KEY (c_id) REFERENCES courses(c_id));
创建班级表:
CREATE TABLE classes (
c_id INT NOT NULL,
c_name varchar(255),
c_dept varchar(255),
PRIMARY KEY (c_id));
创建函数,查询某个学生所选的课程及其成绩:
DELIMITER $$
CREATE FUNCTION fn_get_student_courses_score(sid INT)
RETURNS VARCHAR(1024)
DETERMINISTIC
BEGIN
DECLARE result TEXT;
SET result = (
SELECT CONCAT(c.c_name, ':', s.s_score, ', ')
FROM selections AS s
JOIN courses AS c ON c.c_id = s.c_id
WHERE s.s_id = sid);
RETURN result;
END $$
DELIMITER ;
以上就是答案,希望能对你有所帮助。
阅读全文