Mysql进阶4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql进阶4相关的知识,希望对你有一定的参考价值。
级联动作
1、cascade :数据级联更新
当主表删除记录或者更改被参考字段的值时,从表会级联更新
2、restrict(默认)
当主表删除或者更新被参考字段的值时,如果从表中有相关联记录则不允许主表删除或更新,必须先删除从表中相关联记录
3、set null
当主表删除或者更新被参考字段值时,从表中相关联记录的外键字段值自动设置为NULL
4、no action(同restrict)
on delete no action on update no action
同restrict,都是立即检查外键限制
6、删除外键
alter table 表名 drop foreign key 外键名;
注意:
1、外键名的查看方式
show create table 表名;
7、在已有表中添加外键
alter table 表名 add foreign key(参考字段名) references 被参考表名(被参考字段名)
on delete 级联动作
on update 级联动作
注意:
在已有表中添加外键时,会收到表中原有数据的限制
数据备份(mysqldump,在Linux终端下操作)
1、命令格式
mysqldump -u用户名 -p 源库名 > 路径/XXX.sql
2、示例
1、备份day03库,放到用户主目录下mydata/day03.sql
3、源库名的表示方式
--all-databases 备份所有库
库名 备份单个库
-B 库1 库2 库3 备份多个库
库名 表1 表2 备份指定库的指定表
4、练习
1、备份所有库all_mysql.sql
2、备份MOSHOU和day02库为md2.sql
3、备份MOSHOU库下的sanguo、hero两张表sh.sql
数据恢复
1、命令格式
mysql -u用户名 -p 目标库名 < 路径/XXX.sql
2、从所有库的备份文件中恢复某一个库
mysql -u用户名 -p --one-database 库名 < all_mysql.sql
3、注意
1、恢复库时如果恢复到原库会将表中数据覆盖,新增的表不会删除
2、在数据恢复时如果要恢复的库不存在,则先要创建空库
事务和事务回滚
1、定义
一件事从开始发生到结束的整个过程
2、作用
确保数据的一致性
3、属性
1、原子性:一个事务是不可分割的工作单位,事务中的各个操作要么都做,要么都不做
2、一致性:事务必须从一个一致性状态到另一个一致性状态
3、隔离性:一个事务的执行不能被其他并发的事务干扰
4、持久性:一个事务一旦提交,它对数据库中数据的改变是持久性的
4、事务及事务回滚的应用
1、MySQL中默认的SQL语句结果会自动commit到数据库
show variables like "autocommit";
2、事务应用
1、开启事务
mysql> start transaction;
mysql> ... 一句或多句SQL命令
##此时autocommit被禁用,SQL命令不会对数据库中数据做修改
2、终止事务
mysql> commit; | rollback;
3、注意
事务和事务回滚只针对于对表记录的操作:增删改有效,对库和表的操作无效
5、案例
1、背景
你:建行卡
你朋友:工行卡
你在建行的自动提款机上给你朋友转账5000元
2、过程
表1:CCB
create table CCB(
name char(20),
money int
);
insert into CCB values("转钱",100000);
表2:ICBC
create table ICBC(
name char(20),
money int
);
insert into ICBC values("借钱",0);
python数据库编程
1、python数据库接口(Python DB-API)
1、定义
为开发人员提供的数据库应用编程接口
2、支持的数据库服务软件
MySQL、Oracle、SQL_Server、Sybase、MongoDB ...
3、Python提供的操作MySQL的模块
pymysql
4、pymysql的使用流程
1、建立数据库连接
2、创建游标对象
3、使用游标对象的方法和SQL语句操作数据库
4、提交commit
5、关闭游标对象
6、关闭数据库连接
5、建立数据库连接
1、语法
对象名=pymysql.connect
("主机地址","用户名","密码","库名",charset="utf8",port=3306)
2、connect对象(db)支持的方法
1、cursor() 创建一个游标对象
2、commit() 提交到数据库(增删改)
3、rollback() 回滚
4、close() 关闭数据库连接
3、关于cursor对象支持的方法
1、execute(op) 执行基本SQL命令
2、fetchone() 取得结果集的第一行记录
3、fetchmany(size)取得结果集的size行记录
4、fetchall() 取得结果集的所有行
5、close() 关闭游标对象
属性:
rowcount 返回数据条数或影响行数
以上是关于Mysql进阶4的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情
我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?
我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?
MySQL基础-05DQL语言(数据查询语言)-进阶4常见函数
MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子