存储过程题目
system_users 表
id
username
password
- 创建存储过程实现传入用户名和密码,插入到users表中
users 表
id
name
phone
birthday
-
创建存储过程实现传入女神的编号,返回女神的名称和女神的电话
-
创建存储过程实现传入两个女神的生日,返回大小,两个生日之间相差的天数
答案
-- 1.创建存储过程实现传入用户名和密码,插入到users表中
DELIMITER $$
CREATE PROCEDURE create_user(IN p_username VARCHAR(100), IN p_password VARCHAR(100))
BEGIN
INSERT INTO system_users(`username`, `password`) VALUES(p_username,p_password);
END $$
DELIMITER ;
CALL create_user("root", "123456789");
-- 2.创建存储过程实现传入女神的编号,返回女神的名称和女神的电话
DELIMITER $$
CREATE PROCEDURE get_god(IN p_id INT, OUT p_name VARCHAR(255), OUT p_phone VARCHAR(255))
BEGIN
SELECT `name`, `phone` INTO p_name, p_phone FROM users WHERE id=p_id;
END $$
DELIMITER ;
CALL get_god(1, @a, @b);
SELECT @a, @b;
-- 3.创建存储过程实现传入两个女神的生日,返回大小,两个生日之间相差的天数
-- 如何计算两个日期相差几天
-- SELECT TIMESTAMPDIFF(DAY,'2021-05-20 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- SELECT TIMESTAMPDIFF(DAY,'2021-05-20 00:00:00','2021-05-19 00:00:00')
DELIMITER $$
CREATE PROCEDURE get_days(IN p_dt1 VARCHAR(100), IN p_dt2 VARCHAR(100), OUT dd INT)
BEGIN
SELECT TIMESTAMPDIFF(DAY,p_dt1, p_dt2) INTO dd;
END $$
DELIMITER ;
CALL get_days('2021-05-10 00:00:00','2021-05-19 00:00:00', @days);
SELECT @days;