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

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

      

  • 相关阅读:
    P1996 约瑟夫问题
    GIS Experience (十):OSM数据获取
    GIS Experience (九):高德室内地图建筑信息提取
    GIS Experience (十):Python地理空间数据分析
    GIS Experience (八):ArcGIS Desktop GP服务发布及调用
    GIS Experience (七):QGIS安装及使用教程
    GIS Experience (六):ArcGIS实践操作问题集
    GIS Experience (五):GeoServer安装及使用教程
    Spark集群框架搭建【VM15+CentOS7+Hadoop+Scala+Spark+Zookeeper+HBase+Hive】
    GIS Experience (四):ArcGIS Enterprise 10.6 (Windows)安装及部署图解
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/8552021.html
Copyright © 2020-2023  润新知