mysql增删查改、存储过程

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');

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;

 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;;升序排列

5.4查看

 show DATABASES; 查看所有的库

show TABLES; 查看所有的表

show create table 表名; 查看建表语句

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();

  

 

posted @ 2018-03-12 21:17  给明天的自己  阅读(511)  评论(0编辑  收藏  举报