DDL语句
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
createdDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UserName VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
age INT NOT NULL,
sex ENUM('男', '女') NOT NULL,
introduce TEXT
);
DML语句
INSERT INTO student (UserName, phone, age, sex, introduce) VALUES
('诺米', '13800138000', 22, '男', '诺米公子,玉树临风,貌若潘安,才高八斗,举世无双。'),
('李白', '13900139000', 30, '男', '李白贤士,飘逸出尘,诗酒风流,才华盖世,名满天下。'),
('貂蝉', '13700137000', 25, '女', '貂蝉佳人,闭月羞花,婀娜多姿,倾国倾城,艳绝四海。'),
('关羽', '13600136000', 35, '男', '关羽武将,威震华夏,义薄云天,英勇善战,世之豪杰。'),
('李清照', '13500135000', 28, '女', '李清照才女,文采斐然,诗词传世,才情出众,名垂青史。'),
('项羽', '13400134000', 32, '男', '项羽英雄,气吞山河,勇猛无敌,威震四方,名垂千古。');
分析DDL和DML创建一个名为get_student_introduce的存储过程,要求查询【诺米】的简介信息,需要写明完整的注释
-- 创建存储过程 get_student_introduce,用于获取特定学生的简介信息
DELIMITER //
CREATE PROCEDURE get_student_introduce(IN target_username VARCHAR(50))
BEGIN
-- 声明变量来存储查询结果
DECLARE student_introduce TEXT;
-- 使用SELECT INTO语句将查询结果赋值给变量
SELECT introduce INTO student_introduce
FROM student
WHERE UserName = target_username;
-- 输出查询到的简介信息
SELECT student_introduce AS 诺米的简介信息;
END //
DELIMITER ;
CALL get_student_introduce('诺米');
分析DDL与DML创建一个名为add_student_info的存储过程,要求传入4个参数依次为userName,phone,age,introduce,写明注释内容,帮助更好理解。
DELIMITER //
CREATE PROCEDURE add_student_info(
IN p_userName VARCHAR(50), -- 用户名参数
IN p_phone VARCHAR(20), -- 电话号码参数
IN p_age INT, -- 年龄参数
IN p_introduce TEXT -- 简介参数
)
BEGIN
-- 声明变量来存储性别,这里假设我们有一个默认值,比如'男'
-- 如果需要根据某些条件设置性别,则需要在存储过程内实现逻辑
DECLARE default_sex ENUM('男', '女') DEFAULT '男';
-- 插入一条新的学生记录到student表中
INSERT INTO student (UserName, phone, age, sex, introduce)
VALUES (p_userName, p_phone, p_age, default_sex, p_introduce);
-- 如果需要,可以添加额外的逻辑,比如错误处理或返回插入的ID等
-- 例如:SELECT LAST_INSERT_ID() INTO @new_id;
-- 存储过程执行完毕
END //
DELIMITER ;