MySQL权限与安全

MySQL 的权限系统主要用来对连接到数据库的用户进行权限的验证,以此来判断此用户是否属于合法的用户,如果是合法用户则赋予相应的数据库权限。 数据库的权限和数据库的安全是息息相关的,不当的权限设置可能会导致各种各样的安全隐患,操作系统的某些设置也会对 MySQL 的安全造成影响。 权限系统的工作原理 MySQL 权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证…

MySQL触发器

一、触发器简介 1、触发器简介 触发器是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,比数据库本身标准的功能有更精细和更复杂的数据控制能力。 2、触发器的优点 A、安全性 可以基于数据库的值使用户具有操作数据库的某种权利。可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据;可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10\%。 B…

MySQL事务

原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 一致性(Consistency)  一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设…

MySQL变量与游标

储存过程简介 MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。 存储过程的优点 (1).增强S…

MySQL存储过程及存储函数

储存过程简介 MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。 存储过程的优点 (1).增强S…

MySQL视图

视图介绍 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。 基表:用来创建视图的表叫做基表base table 视图优点: 1)简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。 …

MySQL流程控制

if语句 语法 IF CONDITION THEN … [ELSEIF CONDITION THEN] … [ELSE] … END IF 实践  CREATE PROCEDURE test_if(IN x INT)  BEGIN IF x>30 THEN SELECT 3; ELSEIF X>20 THEN SELECT 2; ELSEIF X&g…

MySQL对json的支持

Mysql自5.7以后,就支持json格式的数据。新增了很多的json相关的函数,json类型数据默认不允许为空。 新增json数据 首先,我们创建一个表,建表语句如下: CREATE TABLE json_tab( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, json_data json ) 插入数据有两种方式,一种是直接插入json数据格式的…

MySQL查询操作

一般查询 语法:SELECT [DISTINCT] 字段1,字段2,…,字段n FROM 表明 WHERE 子句 GROUP BY 子句 HAVING子句 ORDER BY 子句 LIMIT 子句 检索不同的行 DISTINCT 默认会检索所有的行,加DISTINCT后可以过滤相同的行 限制结果LIMIT 完全限定表明 SELECT scores.score FROM scores; …

MySQL增删改

插入数据 插入数据方式有:插入完整的行、插入行的一部分、插入多行、插入某些查询结果 — 插入完整的行 mysql> INSERT INTO user VALUES     -> (1,'GWX','e10adc3949ba59abbe56e057f20f883e','3232@QQ.COM','1589854125…