数据导入导出
数据导入
作用:将文件系统的内容导入到数据库中
语法格式:
load data infile "文件名"
into table 表名
fields terminated by "分隔符"
lines terminated by "分隔符"
步骤:
1、在数据库中创建对应的表
2、查看数据库的默认搜索路径
show variables like "secure_file_priv"
3、将系统文件拷贝到数据库的默认搜索路径中
sudo cp 源文件路径 /var/lib/mysql-files
数据导出
作用:将数据库表中的记录保存到系统文件里
语法格式:
select ... from 表名
into outfile "文件名"
fields terminated by "分隔符"
lines terminated by "分隔符"
注意:
1、导出的内容由SQL
查询语句决定
2、执行导出命令时路径必须指定在对应的数据库目录下
表的复制
语法格式:create table 表名 select 查询命令
只复制表结构:create table 表名 select ... where false;
注意:复制表的时候不会把表原有的键属性复制过来
嵌套查询
定义:把内层的查询结果作为外层查询的条件
语法格式:select 查询语句 where 条件(select查询语句);
多表查询
1、select 字段名列表 from 表名列表;
2、select 字段名列表 from 表名列表 条件;
连接查询
内连接
定义: 从表中删除与其他被连接表中没有匹配到的行
语法格式: select 字段名列表 from 表1 inner join 表2 on 条件;
外连接
-
左连接
- 定义: 以左表为主显示查询结果
-
语法:
select 字段名列表 from 表1 left join 表2 on 条件;
-
右连接
- 定义: 以右表为主显示查询结果
-
语法:
select 字段名列表 from 表1 right join 表2 on 条件;
数据备份
- 命令格式
mysqldump -u用户名 -p 源库名 > 路径/xxx.sql
- 源库命的的表示方式
-
-all-databases
备份所有库 -
库名
备份单个库 -
-B 库1 库2 ...
备份多个库 -
库名 表1 表2
备份指定库的指定表
-
数据恢复
- 命令格式
mysql -uroot -p 目标库名 < 路径/xxx.sql
- 从所有库的备份文件中恢复某一个库(
--one-database
)
mysql -uroot -p --one-database 目标库 < all_mysql.sql
- 注意
- 恢复库时如果恢复到原有库会将表中数据覆盖,新增的表不会删除
- 在恢复时如果要恢复的库不存在,则先要创建空库
ER模型
定义
ER模型即实体-关系模型,ER图即实体-关系图
实体
- 定义
现实世界中任何可以被认知、区分的事物
属性
- 定义
实体所具有的特性
关系
- 定义
实体之间的关系 - 分类
- 一对一关系
- 一对多关系
- 多对多关系
ER图的绘制
- 矩形框代表实体,菱形框代表关系,椭圆框代表属性
workbench
- MySQL图形化操作界面
事务与事务回滚
-
定义
一件事从开始发生到结束的整个过程 -
属性
- 原子性:一个事务是不可分割的工作单位,事务中的各个操作要么都做,要么都不做。
- 一致性:事务必须从一个一致性状态到另一个一致性状态。
- 隔离性:一个事务的执行的不能被其他并发事务干扰。
- 持久性:一个事务一旦提交,它对数据库的改变是永久性的。
-
事务及事务回滚的应用
- mysql中默认sql语句会自动commit到数据库
show variables like "autocommit";
- 事务应用
- 开启事务
mysql > start transaction;
此时autocommit
被禁用,sql命令不会对数据库中数据做修改
- 开启事务
- 终止事务
mysql > commit;
mysql > rollback;
- 注意
事务与事务回滚只针对对记录的操作:增加、删除、修改,对创建库、创建表是无效的
- mysql中默认sql语句会自动commit到数据库
Python数据库编程
python数据库接口(Python DB-API)
-
定义
为开发人员提供的数据库应用编程接口 -
支持的数据库服务软件
MySQL、Oracle、SQL_Server、Sybase、Mogodb ... -
python提供的操作MySQL的模块
模块名:pymysql -
pymysql的使用流程
- 建立数据库连接
- 创建游标对象
- 使用游标对象的方法和SQL语句操控MySQL数据库
- 提交commit
- 关闭游标
- 关闭数据库连接
-
建立数据库连接
- 语法格式
对象名(db) = pymysql.connect("主机地址","用户名","密码","库名",charset="utf-8")
- connect对象(db)的方法
- cursoe() 创建一个游标对象db.cursor()
- commit() 提交到数据库
- rollback() 回滚
- close() 关闭与数据库的连接
- cursor游标对象(cur)的方法
- execute() 执行sql命令
- fetchone() 取得结果集的第一条记录
- fetchmany(数字) 取得结果集的几条记录
- fetchall() 取得结果集的所有行
- close() 关闭游标对象
- 语法格式
网友评论