1.创建求任意两个数的平方和的存储函数sum fn()
2. 使用studentsdb数据库中的curriculum表、grade表。
(1)创建一个存储函数avg func,通过游标统计指定课程的平均分。
(2)执行存储函数avg func,查看“C语言程序设计” 课程平均分。
(3)刪除存储函数avg func。
3. 创建测试表test,包含一个字段date time,字段类型varchar(50);
创建触发器test trig,实现在student info表中每插入一条学生记录后,则自动在test表中追加一条插入成功时的日期时间。SYSDATE()函数用来获职当前的日期和时间。为stu表插入一条记录引发触发器,查看test表的内容。
4. 在curriculum表上创建触发器del trig,当curriculum表上删除一门课程时,级联删除grade表该课程的记录。
删除 curriculum表的一条记录,查看grade表相应记录是否被自动删除。
drop DATABASE if exists studentsdb;
CREATE DATABASE studentsdb;
USE studentsdb;
CREATE TABLE student_info(
学号 char(4) NOT NULL PRIMARY KEY,
姓名 char(8) NOT NULL,
性别 char(2),
出生日期 date,
家庭住址 varchar(50)
);
CREATE TABLE curriculum(
课程编号 char(4) NOT NULL PRIMARY KEY,
课程名称 varchar(50),
学分 int
);
CREATE TABLE grade(
学号 char(4) NOT NULL,
课程编号 char(4) NOT NULL,
分数 varchar(50),
constraint fk_sno foreign key(学号) references student_info(学号) on update cascade,
constraint fk_cno foreign key(课程编号) references curriculum(课程编号) on update cascade on delete cascade
);
INSERT INTO student_info VALUES('0001','张青平','男','2000-10-01','衡阳市东风路77号');
INSERT INTO student_info VALUES('0002','刘东阳','男','1998-12-09','东阳市八一北路33号');
INSERT INTO student_info VALUES('0008','张玲珑','女','1997-12-24','滨江市新建路97号');
INSERT INTO student_info VALUES('0003','马晓夏','女','1995-05-12','长岭市五一路763号');
INSERT INTO student_info VALUES('0004','钱忠理','男','1994-09-23','滨海市洞庭大道279号');
INSERT INTO student_info VALUES('0005','孙海洋','男','1995-04-03','长岛市解放路27号');
INSERT INTO student_info VALUES('0006','郭小斌','男','1997-11-10','南山市红旗路113号');
INSERT INTO student_info VALUES('0007','肖月玲','女','1996-12-07','东方市南京路11号');
INSERT INTO curriculum VALUES('0001','计算机应用基础',2);
INSERT INTO curriculum VALUES('0002','C语言程序设计',2);
INSERT INTO curriculum VALUES('0003','数据库原理及应用',2);
INSERT INTO curriculum VALUES('0004','英语',4);
INSERT INTO curriculum VALUES('0005','高等数学',4);
INSERT INTO grade VALUES('0001','0001',80);
INSERT INTO grade VALUES('0001','0002',91);
INSERT INTO grade VALUES('0001','0003',88);
INSERT INTO grade VALUES('0001','0004',85);
INSERT INTO grade VALUES('0001','0005',77);
INSERT INTO grade VALUES('0002','0001',73);
INSERT INTO grade VALUES('0002','0002',68);
INSERT INTO grade VALUES('0002','0003',80);
INSERT INTO grade VALUES('0002','0004',79);
INSERT INTO grade VALUES('0002','0005',73);
INSERT INTO grade VALUES('0003','0001',84);
INSERT INTO grade VALUES('0003','0002',92);
INSERT INTO grade VALUES('0003','0003',81);
INSERT INTO grade VALUES('0003','0004',82);
INSERT INTO grade VALUES('0003','0005',75);
INSERT INTO grade VALUES ('0003','0005',75);
select * from student_info;
select * from curriculum;
select * from grade;
-- select grade.分数, student_info.姓名,
-- curriculum.课程名称 from student_info ,curriculum, grade
-- where curriculum.课程编号 = grade.课程编号 and grade.学号 = student_info.学号;
-- set sql_safe_updates = 0;
-- SELECT 学号,AVG(分数) 平均成绩 FROM grade GROUP BY 学号;
-- SELECT 学号,姓名 FROM student_info WHERE 姓名 LIKE '刘%'
-- UNION
-- SELECT 学号,姓名 FROM student_info WHERE 姓名 LIKE '张%';
-- update curriculum set 课程编号 = '0011' where 课程编号 = '0001';
-- delete from curriculum where 课程编号 = '0001';
-- select * from student_info;
-- select * from curriculum;
-- select * from grade;
SET GLOBAL log_bin_trust_function_creators = 1;