一、存储过程
1、定义:一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行

   
此前在校学习期间,只是知道数据库很重要,但是并未主动去学习了解。现在的学习过程中学了一遍mysql,就简单的做一个总结吧。

先检查是否存在已安装的MySQL

2、优点:①将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用
           ②批量处理:SQL+循环,减少流量,也就是“跑批”
      ③统一接口,确保数据的安全

    首先记住三个概念:

# yum list installed | grep mysql

3、>存储过程就是具有名字的一段代码,用来完成一个特定的功能。
   >创建的存储过程保存在数据库的数据字典中。

   
1.数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
  

若存在删除:

4、基本创建格式

    2.SQL :结构化查询语言(Structured Query Language)

yum remove 软件名称

1 delimiter//    -- 将SQL语句的结束标记设置为//
2 DROP PROCEDURE IF EXISTS testprint; -- 如果存在该名字的存储过程则删除
3 CREATE PROCEDURE testprint() -- 创建一个名字为testprint的存储过程,    -- 括号里面可以传参数:CREATE PROCEDURE mytest(in sid INT,in suid INT)
4 BEGIN    -- 代码部分开始
5 SELECT '你好,成都' as infos; -- 存储过程的代码部分
6 END;    -- 代码部分结束
7 //    -- 结束标记
8 delimiter; -- 编写编译结束后将SQL语句的结束标记还原

    3.MySQL:关系型数据库管理系统

CentOS 7的yum源中没有正常安装mysql时的mysql-sever文件,需要去官网上下载 

5、调用

   
database中存储着各种数据,sql语句用于从database中找出我们需要的数据,mysql是一种应用软件,通过语句对database进行操作。

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum install mysql-community-server
 -- 调用无参存储过程
CALL testprint();

-- 调用有参数的存储过程
set @stuid = 1;
SET @subid = 1;
CALL mytest(@stuid,@subid);    

    MySQL我使用的是5.6版本,通过管理员身份打开cmd后,启用mysql服务为:net
start mysql56,关闭服务为:net stop mysql56。登录:mysql -h localhost -u
root -p     回车后输入密码:123456(用户名和密码在安装时进行设置)

成功安装之后重启mysql服务

 


 # service mysqld restart

6、存储过程的参数
存储过程可以有0个或多个参数,用于存储过程的定义。
3种参数类型:
   IN输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
  
OUT输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
  
INOUT输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)
建议:>输入值使用in参数;
>返回值使用out参数;
>inout参数就尽量的少用。
例子:
1)、传入学生和科目id ,得到该学生该科目的成绩

    下面将会从四个方面进行总结:

初次安装mysql是root账户是没有密码的

 1 delimiter $$ 
 2 DROP PROCEDURE IF EXISTS mytest;
 3 CREATE PROCEDURE mytest(in sid INT,in suid INT)
 4 BEGIN
 5 UPDATE score SET score.scscore=scscore+5 
 6 WHERE score.sid = sid AND score.suid = suid;
 7 END;
 8 $$
 9 delimiter;
10 
11 set @stuid = 1;
12 SET @subid = 1;
13 CALL mytest(@stuid,@subid);

    1.数据定义语言(DDL)

澳门微尼斯人手机版,设置密码的方法

 

    2.数据操作语言(DML)

# mysql -u root
  mysql> set password for 'root'@'localhost' = password('666');
  mysql> exit

2)、– 传入学生序号,获取显示该学生的姓名

    3.数据查询语言(DQL)

搞定!

 1 delimiter $$ 
 2 DROP PROCEDURE IF EXISTS getstuname;
 3 CREATE PROCEDURE getstuname(in sid INT,out stuname VARCHAR(100))
 4 BEGIN
 5 SELECT student.sname into stuname FROM student WHERE student.sid = sid;
 6 END;
 7 $$
 8 delimiter;
 9 
10 set @stuid = 2;
11 CALL getstuname(@stuid,@stuname);
12 SELECT @stuid as sid,@stuname AS stuname;

    4.函数

mysql在安装完成后mysql.user表中有多个用户,建议清除除root以外的其他用户,保证安全和不必要的bug

 

 
  本篇小结大部分是语句格式,如果需要代码实现的截图,以及部分额外知识点标注,可以下载安装xmind软件后,下载云盘里的思维导图进行查看。

mysql> delete from mysql.user where host != 'localhost' or user !='root';
mysql> exit

链接: 密码:qrie

ximd内容如下:

澳门微尼斯人手机版 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注