zoukankan      html  css  js  c++  java
  • 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();
    

      

  • 相关阅读:
    29Mybatis_整合ehcache以及应用场景
    28Mybatis_查询缓存-二级缓存-二级缓存测试-
    27Mybatis_一级缓存的实际应用场景
    解析分布式锁之Zookeeper实现(一)
    程序员的十年工作创业血泪史,万字长文,仔细读完,受益匪浅
    2018 Java线程热门面试题,你知道多少?
    看阿里P9架构师如何向你定义架构及架构师
    程序员30 岁之后:如何实现质的突破?
    强者自救,圣者渡人
    干货:通过双十一等项目实战看架构技术
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/8552021.html
Copyright © 2011-2022 走看看