mysql存储过程的增删_mysql增删查改、存储过程

本文介绍了如何在MySQL中创建和使用数据库,创建及操作表,包括添加、删除和修改列。此外,还详细讲解了查询语句,如左连接、统计、排序等,并深入探讨了存储过程的创建、调用、删除,包括带参数的存储过程、控制结构的使用,以及通过存储过程批量插入数据的方法。
摘要由CSDN通过智能技术生成

1、  创建/使用数据库

mysql> create database me;

mysql> use me;

2、  创建表

mysql> create table Stu(Sno char(9) primary key,Sname char(20) unique,Ssex char(2),Sdept char(20));

mysql> insert into Stu(Sno,Sname,Ssex,Sdept) values('10001','one','boy','CS');

09a50278bed4384df39485caef0d3a23.png

3、  操作表操作列(列:alter/add/drop;表:alter/create/drop)

Alter table XX;

Alter column XX;

完整的:alter table XX alter column XX;

mysql> alter table Stu drop column Ssex;

4、  查看表结构

mysql> select * from Stu;

2f963c19e5d6368e18abc9357a2d1e7b.png

5、查询语句

5.1 左右连接

左右2张表数据没有一一对应,完整性不一致,要保留左边的表全部数据就用left join,右边没有值的会自动用空填充,反之用right join。

SELECT * FROM grade  a LEFT JOIN student b on a.id=b.id

5.2总数、最大值、最小值

有一列中存在相同值,对相同值汇总。总数:SELECT id,sum(score) FROM grade GROUP BY id;

有一列中存在相同值,找出这组中最大值。最高分:SELECT kemu,max(score) FROM grade GROUP BY kemu;

有一列中存在相同值,找出这组中最小值。最高分:SELECT kemu,min(score) FROM grade GROUP BY kemu;

有一列中存在相同值,找出这组平均值。平均分:SELECT kemu,avg(score) FROM grade GROUP BY kemu;

5.3排序

SELECT grade.score FROM grade ORDER BY score desc;;降序排列

SELECT grade.score FROM grade ORDER BY score asc;;升序排列

6、  存储过程(增/查/调用/删)

创建格式:

create procedure 存储过程名称(参数)

begin

……

……

end

执行格式:

call 存储过程名称(参数);

删除格式:

DROP PROCEDURE IF EXISTS 存储过程名称;

例:

mysql> delimiter // #修改结束标识

mysql> create procedure p1() #创建一个存储过程

begin

select * from Stu;

end//

mysql>mysql> show procedure status \G #查看

mysql> call p1(); #调用

mysql> drop procedure p1; #删除存储过程

6.1 参数,以下是带参数n的存储过程

mysql> delimiter //

mysql> create procedure p2(n int)

begin

select * from where n > Sage;

end//

mysql> call p2(5)// #调用

6.2   控制结构,if……else……

mysql> create procedure p2(n int,a char(4))

begin

if a='b' then

select * from where n > Sage;

else

select * from where n < Sage;

end if;

end//

mysql>call p3(5,’b’)// #调用

6.4 使用存储过程造批量数据举例

grade表中,id和num不能重复,然后用一个while循环让这个id持续加1

drop PROCEDURE if EXISTS grade;

CREATE PROCEDURE grade()

begin

DECLARE id1 int; #定义一个变量

set id1=1; #初始化一个值

while id1<=10

do

insert into grade(no,id,kemu,score) VALUES (id1,id1,"1","1");

set id1=id1+1;

end while;

end;

call grade();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值