存储过程

就是函数,存储过程往往是为了实现某个单一的功能而临时存在的。

存储过程与函数的区别

1.实现功能不一样,存储过程是为实现某个单一功能而设计,函数是为了解决某类型的问题而存在

2.存储过程没有返回值,函数必须有返回值

3.存储过程与函数的参数不一样

4.存储过程往往是对表数据进行操作,而函数不是

存储过程语法

create procedure 过程名字(参数列表)

begin

//过程体,跟函数体一样

end

定义存储过程

mysql触发器触发语句(mysql事务触发器函数过程)(1)

调用存储过程

语法:call 过程名(参数列表)

mysql触发器触发语句(mysql事务触发器函数过程)(2)

调用

错误:out和inout类型的参数必须使用变量来进行传递,不能直接使用值

mysql触发器触发语句(mysql事务触发器函数过程)(3)

正确:

mysql触发器触发语句(mysql事务触发器函数过程)(4)

执行后对外部变量查看

mysql触发器触发语句(mysql事务触发器函数过程)(5)

mysql用户管理

当前都是采用root,超级管理员权限对数据库进行操作。

当数据库比较大,而且分工非常明确的时候,通常会创建一些用户(登录用户)来交不同层次的数据用户,他们拥有的权限是不一样的。

用户权限管理。对用户的增删改查(包括权限)

查看数据库的用户信息:mysql->user表

select user,host,password from user;

三个字段的意思:

user:用户名

host:允许登录的主机

password:加密后密码

mysql触发器触发语句(mysql事务触发器函数过程)(6)

创建用户

语法:create user 用户名 identified by ‘密码’;

用户名:用户名不单止用户名字还应该包括主机名:’username’@’主机名’

主机名:可以是域名,可以是IP,也可以是类似通配符:’192.168.3.%’;’%’所有电脑都可以访问

密码:该处密码是明文,系统会自动使用password()函数进行加密

mysql触发器触发语句(mysql事务触发器函数过程)(7)

如果需要进行通配,那么需要使用%分号,不能使用*号

mysql触发器触发语句(mysql事务触发器函数过程)(8)

代表局域网内的用户可以访问

但是,这个时候,用户只有登录的权限,没有对应数据库的查看和操作权限

mysql触发器触发语句(mysql事务触发器函数过程)(9)

给用户分配权限

语法:grant 权限列表 on 数据库.数据表 to 用户

权限列表

mysql触发器触发语句(mysql事务触发器函数过程)(10)

语句

mysql触发器触发语句(mysql事务触发器函数过程)(11)

有一种简单的方式给全部权限给用户

语法:grant all privileges on 库.表 to 用户

mysql触发器触发语句(mysql事务触发器函数过程)(12)

效果

mysql触发器触发语句(mysql事务触发器函数过程)(13)

回收权限

语法:revoke 权限列表 on 库.表 from 用户

mysql触发器触发语句(mysql事务触发器函数过程)(14)

用户管理:用户是由用户名和主机名组成

用户管理的时候,要根据具体需求分配权限。

忘记密码

普通的密码忘记,只需要管理员进入到系统,对mysql库中的user表进行更新

update user set password = password(‘新密码’) where user=’用户名’ and host = ‘主机名’;

root用户忘记密码了该怎么办?

1.重装,最简单暴力的操作(一定要注意数据的保护),一般不采用这种方式

2.重置root用户密码

重置root用户密码

1.停止mysql服务

mysql触发器触发语句(mysql事务触发器函数过程)(15)

2.重新启动mysql服务端,但是不能使用服务管理,需要使用bin目录下的mysqld.exe

语法:mysqld.exe –skip-grant-tables 重启mysql服务,但是跳过权限管理

mysql触发器触发语句(mysql事务触发器函数过程)(16)

mysql触发器触发语句(mysql事务触发器函数过程)(17)

3.直接使用客户端进入,而不需要密码

语法:mysql回车

mysql触发器触发语句(mysql事务触发器函数过程)(18)

查看当前用户

mysql触发器触发语句(mysql事务触发器函数过程)(19)

4.进入到mysql数据库修改root用户的密码

语法:update user set password = password(‘新密码’) where user=’root’ and host = ‘localhost’;

5.对权限进行刷新操作

语法:flush privileges;

6.退出系统,重启mysql服务器,就可以使用新密码登录

注意:

1.在修改root密码的时候,千万要保证其他用户进不去(防火墙)

2.修改密码的时候一定要指定具体用户和主机名

索引

索引指的是一个二进制文件,保存的是二叉树结构。能够快速的定位到要查找的数据。类似书的目录结构。

mysql有以下几种索引:

主键索引,唯一键索引,普通索引,全文索引(优化关键字,分词技术sphinx)

,