MySQL存储过程练习

2024-05-14 08:33:22 浏览数 (2)

DDL

代码语言:javascript复制
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `createDate` datetime DEFAULT NULL,
  `userName` varchar(20) DEFAULT NULL,
  `pwd` varchar(36) DEFAULT NULL,
  `phone` varchar(11) DEFAULT NULL,
  `age` tinyint(3) unsigned DEFAULT NULL,
  `sex` char(2) DEFAULT '男',
  `introduce` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 
CREATE TABLE `result` (
  `rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '成绩编号',
  `testName` varchar(255) DEFAULT NULL COMMENT '测试名称',
  `score` double(4,2) DEFAULT NULL COMMENT '成绩',
  `studentId` int(11) DEFAULT NULL COMMENT '学生id',
  PRIMARY KEY (`rid`),
  KEY `studentId` (`studentId`),
  CONSTRAINT `result_ibfk_1` FOREIGN KEY (`studentId`) REFERENCES `student` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

DML

代码语言:javascript复制
insert into student values(0,'2024-02-25 10:10:10','赵灵儿','123',
'15612345678',16,'女','逍遥哥哥,你终于找到我了。');
insert into student values(0,'2024-02-25 10:10:10','王语嫣','123',
'15612345678',17,'女','慕容复,我和你不共戴天。');
insert into student values(0,'2024-02-25 10:10:10','龙姑娘','123',
'15612345678',22,'女','我想过过过儿过过的日子。');
insert into student values(0,'2024-02-25 10:10:10','杨过','123',
'15612345678',18,'男','一遇杨过误终身。');
insert into student values(0,'2024-02-25 10:10:10','杨逍','123',
'15612345678',27,'男','杨过跟程英的大儿子。');
insert into student (userName,age,introduce)values('黄衣女子',26,'杨过与龙姑娘的大女儿。');
 
insert into result values(0,'政治',96,1);
insert into result values(0,'地理',86,5);
insert into result values(0,'政治',77,3);
insert into result values(0,'英语',99,3);
insert into result values(0,'历史',22,6);
insert into result values(0,'化学',69,2);
insert into result values(0,'Java',79,5);
insert into result values(0,'Java',67,6);
insert into result values(0,'政治',97,2);
insert into result values(0,'物理',76,6);
insert into result values(0,'物理',82,2);
insert into result values(0,'化学',56,4);

DQL

代码语言:javascript复制
# 存储过程的框架
delimiter $$ # 分隔符开始
# 声明存储过程函数·函数名应该符合标识符命名规范
create procedure update_student_info(
in p_userName varchar(20),
in p_introduce varchar(200)
)
# 开始撰写存储过程
begin
# sql语句·DML操作
update student set introduce=p_introduce where userName=p_userName;
end $$ # 分隔符终止
delimiter ; # 分隔符结束
# 使用存储过程(调用存储过程)
-- call add_student_info('米梦霞','13612345678','女','温婉淑娴的可爱小女生。');
-- call add_student_info('权冠宇','13612345628','女','没事甩葱的二次元娃娃。');
call update_student_info('米梦霞','不会化妆的,但没事喜欢化妆的女娃娃。');
call update_student_info('权冠宇','二次元小怪兽');
select * from student where introduce like '%娃娃%' or introduce like '%兽%';

0 人点赞