网站建设学,网站被k怎么恢复,电商网站模块介绍,龙口建网站首选公司一、数据库编程
1.触发器
解释#xff1a;触发器#xff08;trigger#xff09;能够在sql里面自动执行#xff0c;当设定好某个条件#xff0c;当条件满足时#xff0c;sql将自动执行某些语句 #xff0c;其中触发器里面有关键字NEW和OLD代表修改前和修改后的值
-- 创…一、数据库编程
1.触发器
解释触发器trigger能够在sql里面自动执行当设定好某个条件当条件满足时sql将自动执行某些语句 其中触发器里面有关键字NEW和OLD代表修改前和修改后的值
-- 创建触发器Tr_1功能是当对表sc的grade 值进行修改时若分数减少了20%则将此次操作记录到另一个表sc_u中
DELIMITER //CREATE TRIGGER Tr_1
AFTER UPDATE ON sc
FOR EACH ROW
BEGINDECLARE old_grade INT;DECLARE new_grade INT;SET old_grade OLD.grade;SET new_grade NEW.grade;IF ((old_grade - new_grade) / old_grade 0.2) THENINSERT INTO sc_u (Sno, Cno, grade_change)VALUES (OLD.Sno, OLD.Cno, old_grade - new_grade);END IF;
END //DELIMITER ;-- 创建触发器当插入的p_name不是为‘jack’时自动修改为‘jack’
DELIMITER //
CREATE TRIGGER T
BEFORE INSERT ON test1
FOR EACH ROW
BEGIN IF NEW.p_name ! jack THENSET NEW.p_name jack;END IF;
END; //DELIMITER;2.存储过程
解释MySQL存储过程procedure是一组预先编写并存储在数据库中的SQL语句集合类似于程序中的函数。
2.1 无参数
// 查询所有学生的信息无参数
DELIMITER //
CREATE PROCEDURE getall()
BEGINSELECT * FROM student;END //
DELIMITER;// 调用
call getall();2.2 有参数
// 查询所有学生的信息有参数
DELIMITER //
CREATE PROCEDURE getallbyid(IN na CHAR(30))BEGINSELECT * FROM student WHERE Snona;
END //DELIMITER ;// 调用
CALL getallbyid(5351424);2.3 带有返回值
// 统计同年龄个数带返回值
DELIMITER //
CREATE PROCEDURE gos(IN age INT, OUT num INT)
BEGINSELECT COUNT(sage) INTO num FROM student WHERE sageage;END //
DELIMITER ;// 调用
CALL go(18,a);
SELECT a;3.函数
-- 没有in out
DELIMITER //
CREATE FUNCTION godlll(age INT) RETURNS INT NO SQL
BEGINDECLARE n INT;SELECT COUNT(sage) INTO n FROM student WHERE sage age;RETURN n;
END //
DELIMITER ;select godlll(18);