1. Maîtriser le langage de programmation SQL et les spécifications de programmation pris en charge par un SGBD grand public, et normaliser la conception des procédures stockées #🎜 ; 🎜##🎜 🎜#
Le contenu suivant a été testé, mais il y aura inévitablement des omissions, mais la plupart des idées et de la mise en œuvre du code ont été testées et sont correctes. 3. Contenu et étapes de mise en œuvre
delimiter// CREATE PROCEDURE sp_avggrade() COMMENT '查询每门课程学生的平均成绩的功能' BEGIN SELECT cno as 课程号,avg(grade)as 平均成绩 FROM sc GROUP BY cno; end// delimiter;
(1) Créez une procédure stockée sp_course_avggrade pour implémenter la requête en entrant le numéro de cours. paramètre Fonction pour spécifier la note moyenne du cours du numéro de cours ;call sp_avggrade();Copier après la connexion
3. Créez une procédure stockée avec des paramètres d'entrée et de sortie
(1) Créez une procédure stockée sp_sdept _student pour implémenter le paramètre de numéro de département saisi par l'utilisateur , La fonction pour trouver le nombre d'étudiants dans le collège et le sortir sous forme de variabledelimiter// CREATE PROCEDURE sp_course_avggrade(IN c_no CHAR(2)) COMMENT '通过输入课程编号参数查询指定课程编号的课程平均成绩的功能' BEGIN SELECT cno,AVG(grade) FROM sc WHERE cno=c_no; END// delimiter;
delimiter// CREATE PROCEDURE sp_sdept_student2(IN _sdept CHAR(10),OUT num int) BEGIN SELECT COUNT(sno) INTO num FROM student WHERE _sdept = sdept; END// delimiter;
SET @num=10; CALL sp_sdept_student2('计科',@num); SELECT @num AS '人数';
delimiter// CREATE TRIGGER delete_stu BEFORE DELETE ON student FOR EACH ROW BEGIN DELETE FROM sc WHERE sc.sno=old.sno; END// delimiter;
Vérification(1)
#🎜🎜 #delimiter// CREATE TRIGGER scgrade BEFORE INSERT ON sc FOR EACH ROW BEGIN IF new.grade>100 or new.grade < 0 THEN SIGNAL SQLSTATE '45000' SET message_text='录入成绩不符合规定,拒绝插入'; END IF; END// delimiter;
verification(2)
DELETE FROM student WHERE sno='201513';
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!