数据库(二): 视图、触发器、事务、存储过程、函数

/*
Mysql:
1. Mysql登录:
-u username -p password // 本地登录
-h server_ip -P port -u username -p password // 远程登录

2. Mysql服务器架构:
API(C,JDBC,Python)
--------------------------------
连接池
--------------------------------
SQL接口, SQL解析器, SQL优化器,缓存池
--------------------------------
可插入式存储引擎
各种数据库
--------------------------------

3. Mysql存储引擎: 如何增删查改数据, 建立表
InnoDB: 支持事务
MyISAM: 不支持事务
Memory: 存储的数据都放在内存中

*/

/*
视图:
1. 特性:
1) 是一张虚拟的表, 其本质是sql语句获得的动态数据集
2) 可以直接当成表来用, 视图也是存储在数据库中的
3) 过分依赖视图会造成程序强耦合

2. 操作
1) create view 视图名称 as sql查询语句 // 创建视图
2) alter view 视图名称 as sql查询语句 // 修改视图
3) 使用视图同使用表(修改视图会导致原表修改)
4) drop view 视图名称 // 删除视图
*/

/*
触发器:
1. 作用:
可以定制用户对表增、删、改操作前后的行为
2. 用法:
1) 创建触发器
delimiter//
CREATE TRIGGER 触发器名称 BEFORE/AFTER INSERT/DELETE/UPDATE ON 表名称 FOR EACH ROW
BEGIN
NEW # 表示即将新增的行, 可通过NEW.field访问属性
OLD # 表示即将删除的行
# 函数 + sql语句
END//
delimiter;

2) 删除触发器
DROP TRIGGER 触发器名称
*/

/*
事务:
1. 事务的特性
1> 原子性, 不可分割,要么提交(发生),要么不提交(不发生)
2> 一致性, 事务前后数据的完整性必须保持一致。 所有记录都能保证满足当前数据库中的所有约束,则可以说当前的数据库是符合数据完整性约束
3> 隔离性, 多并发事务之间数据相互隔离
4> 持久性, 事务对数据的改变是永久的

2. mysql中的事务操作
start transaction // 开启一个事务
rollback // 事务回滚,回滚到上次提交之后
commit // 提交事务结束
savepoint // 设置回滚点
insert into test2 (name)values('wu');
savepoint insert_wu;
###...

rollback to insert_wu; // 返回到 insert into test2 (name)values('wu'); 执行之后

3. pymysql中的事务操作
try:
cursor.execute('sql') // 可能出错的sql语句
raise Exception
except Exception:
conn.rollback() // 数据库中回滚到上一次commit之后
conn.commit() // 回滚也要提交
*/

/*
存储过程:
1. 程序与数据库结合使用的方式:
1) mysql: 存储过程 + 程序:

转载于:https://www.cnblogs.com/lancelotxly/p/10856113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值