DDL
CREATE TABLE student (
id INT AUTO_INCREMENT PRIMARY KEY,
createDate DATE NOT NULL,
userName VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
age INT NOT NULL,
sex ENUM('男', '女') NOT NULL,
introduce TEXT
); ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DML
INSERT INTO student (createDate, userName, phone, age, sex, introduce) VALUES
('2023-10-01', '张先生', '13800138000', 25, '男', '张先生是计算机科学系的一名学生,对编程有浓厚兴趣。'),
('2023-10-02', '李小姐', '13900139000', 23, '女', '李小姐热爱学习新技术,对人工智能方向特别感兴趣。'),
('2023-10-03', '王同学', '13700137000', 22, '男', '王同学是编程社团的成员,积极参与各类技术交流活动。'),
('2023-10-04', '赵女士', '13600136000', 24, '女', '赵女士拥有扎实的编程基础,善于解决复杂的技术问题。'),
('2023-10-05', '陈同学', '13500135000', 26, '男', '陈同学对算法和数据结构有深入的理解,是一名优秀的编程爱好者。');
DQL
-- 创建存储过程get_userName_introduce,用于查询用户名为“张先生”的学生介绍信息
DELIMITER //
CREATE PROCEDURE get_userName_introduce()
BEGIN
-- 声明变量来存储查询结果
DECLARE introduce_text TEXT;
-- 执行SELECT查询,从student表中获取userName为'张先生'的学生的introduce字段内容
-- 将查询结果赋值给变量introduce_text
SELECT introduce INTO introduce_text
FROM student
WHERE userName = '张先生';
-- 检查是否找到了匹配的用户名
-- 如果introduce_text不为NULL,则输出介绍信息;否则,输出未找到对应信息
IF introduce_text IS NOT NULL THEN
-- 输出“张先生”的介绍信息
SELECT introduce_text AS '张先生的介绍信息';
ELSE
-- 如果没有找到对应信息,则输出提示信息
SELECT '未找到张先生的介绍信息' AS '提示信息';
END IF;
END //
DELIMITER ;
CALL get_userName_introduce();