网课平台创建(补档)

1. 创建网络课程数据库和六个表:
CREATE DATABASE 网络教学平台;

USE 网络教学平台;

CREATE TABLE 章节表 (
  章节ID INT PRIMARY KEY,
  章节名称 VARCHAR(255),
  试题数量 INT
);

CREATE TABLE 题库表 (
  试题ID INT PRIMARY KEY,
  试题内容 TEXT,
  标准答案 TEXT,
  题型 VARCHAR(255),
  难度 VARCHAR(255),
  章节ID INT,
  FOREIGN KEY (章节ID) REFERENCES 章节表(章节ID)
);

CREATE TABLE 班级表 (
  班级ID INT PRIMARY KEY,
  班级名称 VARCHAR(255),
  班级人数 INT,
  教师ID INT
);

CREATE TABLE 学生表 (
  学生ID INT PRIMARY KEY,
  学生帐号 VARCHAR(255),
  学生姓名 VARCHAR(255),
  口令 VARCHAR(255),
  班级ID INT,
  FOREIGN KEY (班级ID) REFERENCES 班级表(班级ID)
);

CREATE TABLE 试卷总表 (
  试卷总表ID INT PRIMARY KEY,
  学生ID INT,
  开始时间 DATETIME,
  结束时间 DATETIME,
  状态 VARCHAR(255),
  分数 INT,
  FOREIGN KEY (学生ID) REFERENCES 学生表(学生ID)
);

CREATE TABLE 试卷明细表 (
  试卷明细ID INT PRIMARY KEY,
  试卷总表ID INT,
  试题ID INT,
  答案 TEXT,
  得分 INT,
  FOREIGN KEY (试卷总表ID) REFERENCES 试卷总表(试卷总表ID),
  FOREIGN KEY (试题ID) REFERENCES 题库表(试题ID)
);
 

2. 创建触发器:


DELIMITER //
CREATE TRIGGER insert_学生_update_班级
AFTER INSERT ON 学生表
FOR EACH ROW
BEGIN
  UPDATE 班级表
  SET 班级人数 = 班级人数 + 1
  WHERE 班级ID = NEW.班级ID;
END;
//
DELIMITER ;
```

3. 编写存储过程:

```sql
DELIMITER //
CREATE PROCEDURE insert_学生表(IN p_学生帐号 VARCHAR(255), IN p_学生姓名 VARCHAR(255), IN p_口令 VARCHAR(255), IN p_班级ID INT)
BEGIN
  INSERT INTO 学生表 (学生帐号, 学生姓名, 口令, 班级ID)
  VALUES (p_学生帐号, p_学生姓名, p_口令, p_班级ID);
END;
//
DELIMITER ;
 

4. 在学生表中依据学生姓名建立索引:


CREATE INDEX index_学生姓名 ON 学生表 (学生姓名);
 

5. 建立班级学生视图:


CREATE VIEW v_班级_学生 AS
SELECT c.班级名称, s.学生帐号, s.学生姓名, s.口令
FROM 班级表 c
JOIN 学生表 s ON c.班级ID = s.班级ID;
 

6. 编写存储过程:

```sql
DELIMITER //
CREATE PROCEDURE delete_试卷(IN p_试卷总表ID INT)
BEGIN
  DELETE FROM 试卷明细表
  WHERE 试卷总表ID = p_试卷总表ID;
END;
//
DELIMITER ;

 

 

第四题没有记录搜索不出来
``` 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值