mysql save之前回退_mysql必知必会03

视图

创建视图:

CREATE VIEW viewname AS select语句

查看视图:

SHOW CREATE VIEW viewname

删除视图:

DROP VIEW viewname

更新视图:

先用drop再用create

CREATE OR REPLACE VIEW

不能使用视图情况:

分组

联结

子查询

聚合函数

distinct

导出计算列

使用视图:

select * from viewname where ..

存储过程:为以后的使用而保存的一条或多跳mysql语句集合

使用原因:

简化复杂的操作

保证数据的完整性,防止错误

简化对变动的管理

提高性能

灵活

创建存储过程

CREATE PROCEDURE processname(

OUT p1 DECIMAL(8,2),//OUT用来从存储过程传出的一个值

IN pa DECIMAL(8,2), //IN用来从存储过程传入的一个值

INOUT ph DECIMAL(8,2), //INOUT对存储过程传入和传出

)

BEGIN

select语句;

END;

DELIMITER

CREATE PROCEDURE processname()

BEGIN

select语句;

END

DELIMITER;

# delimiter 作为新的语句结束分隔符

执行存储过程

CALL processname(@参数1,@参数2,...)

# 执行之后需要select查一下

使用存储过程

select @参数1,@参数2..;

查看存储过程

SHOW CREATE PROCEDURE processname;

查看过程状态:

SHOW PROCEDURE STATUS LIKE processname;

# like用于过滤

删除存储过程

DROP PROCEDURE processname;

游标

游标:需要在检索出来的行中前或后退一行或多行

# 只能用于存储过程和函数

使用:

必须声明定义,定义要使用的select语句

一旦声明,必须打开游标以供使用

对于填有数据的游标,根据需要去除各行

游标结束使用时必须关闭游标

创建游标:DECLARE

CREATE PROCEDURE processname()

BEGIN

DECLARE cursorname CURSOR

FOR

select语句;

END;

打开游标

OPEN cursorname;

关闭游标:

CLOSE cursorname;

使用游标数据:

FETCH cursorname INTO o;

触发器:mysql响应delete、insert、update中任意语句而自动执行的一条mysql语句

需要的信息:

唯一的触发器名

触发器关联的表

触发器应该响应的活动

触发器何时执行

创建:CREATE TRIGGER

示例:

CREATE TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW SELECT 'Product added';

# 仅支持表,视图和临时表不支持触发器

删除:DROP TRIGGER newproduct

使用:

INSERT触发器

在insert触发器中,可引用一个名为NEW的虚拟表,访问被插入的行

在BEFORE INSERT触发器中,NEW中的值也可以被更新

对于AUTO_INCREMENT列,NEW在INSERT执行之前包含0,在INSERT执行之后包含新的自动生成值

示例:CREATE TRIGGER neworder AFTER INSERT ON orders FOR EACH ROWS SELECT NEW.order_num;

DELETE触发器

在DELETE触发器代码中,可引用一个名为OLD的虚拟表,访问被删除的行

OLD中的值全部都是只读的,不能更新

UPDATE触发器

在DELETE触发器代码中,可引用一个名为OLD的虚拟表访问以前的值,引用一个名为NEW的虚拟表访问新更新的值

在BEFORE UPDATE出发其中,NEW中的值可能被更新

OLD中的值全都是只读的,不能更新

管理事务处理

事务处理可以用来维护数据库的完整性,它保证呈批的mysql操作要么完全执行,要么完全不执行

InnoDB支持事务,MySAM不支持

术语:

事务:transaction

回退:rolllback

提交:commit

保留点:savepoint 指事务处理中设置的临时占位符,可以对它发布回退

控制事务处理

开始:START TRANSACTION

使用ROLLBACK

使用COMMIT

使用保留点:SAVEPOINT savename;

回退部分事务处理:ROLLBACK TO savename;

更改默认的提交行为:

SET autocommit=0; # 设置为不自动提交

全球化和本地化

字符集和校对顺序

字符集:字母和符号的集合

编码:某个字符集成员的内部表示

校对:规定字符如何比较的指令

使用字符集和校对顺序

查看字符集:

SHOW CHARACTER SET;

SHOW VARIABLES LIKE 'character%';

查看所支持校对的完整列表

SHOW COLLATION

SHOW VARIABLES LIKE 'colltaion%';

安全管理

访问控制:需要给用户提供他们所需的访问权且仅提供他们所需的访问权

管理用户:

查询用户:

use mysql;

select user from user;# 查询用户账号

创建用户账号:

CREATE USER ben IDENTIFIED BY 'P@$$w0rd'

# IDENTIFIED BY 'P@$$w0rd'给出一个口令 //识别

重命名:rename user ben to bforta;

删除用户账号:drop user bforta

设置访问权限 grant

查询赋予用户账号的权限

show grants for bforta

# usage on *.*:表示根本没有权限

设置访问权限需要给出的信息

要授予的权限

被授予访问权限的数据库或表

用户名

示例:grant select on database.* to user;

撤销特定的权限:

示例:revoke select on database.* to user;

控制访问权限的层次:

整个服务器:grant all和revoke all

整个数据库:on database.*

特定的表:on database.table;

特定的列

特定的存储过程

更改口令:

set password for user =password('password');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值