新建院系表department(dname院系名称, nums人数),对s表按院系统计人数插入department表,为s表建立触发器“trigger insert student”,当插入一个学生记录后,同时更新department表中该学生所在院系学生人数。
时间: 2023-06-18 22:04:12 浏览: 97
用JDBC向Students表中插入数据
创建院系表department:
```
CREATE TABLE department (
dname VARCHAR(50) PRIMARY KEY,
nums INT
);
```
创建学生表s:
```
CREATE TABLE s (
sno VARCHAR(20) PRIMARY KEY,
sname VARCHAR(20),
ssex VARCHAR(10),
sage INT,
sdept VARCHAR(50)
);
```
向学生表s中插入示例数据:
```
INSERT INTO s VALUES
('101', '张三', '男', 20, '计算机科学与技术'),
('102', '李四', '女', 19, '计算机科学与技术'),
('103', '王五', '男', 21, '物理学'),
('104', '赵六', '女', 20, '物理学'),
('105', '钱七', '男', 22, '数学');
```
创建触发器trigger_insert_student,当插入一个学生记录后,同时更新department表中该学生所在院系学生人数:
```
CREATE TRIGGER trigger_insert_student AFTER INSERT ON s
FOR EACH ROW
BEGIN
UPDATE department SET nums = nums + 1 WHERE dname = NEW.sdept;
END;
```
测试触发器:
```
INSERT INTO s VALUES ('106', '孙八', '女', 18, '计算机科学与技术');
SELECT * FROM department;
```
可以看到,触发器成功更新了department表中“计算机科学与技术”院系的人数:
```
+-----------------------+------+
| dname | nums |
+-----------------------+------+
| 计算机科学与技术 | 3 |
| 物理学 | 2 |
| 数学 | 1 |
+-----------------------+------+
```
阅读全文