美文网首页
MySQL(三)

MySQL(三)

作者: 遇明不散 | 来源:发表于2019-01-14 13:01 被阅读8次

    数据导入导出

    数据导入

    作用:将文件系统的内容导入到数据库中
    语法格式:
    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;
      • 注意
        事务与事务回滚只针对对记录的操作:增加、删除、修改,对创建库、创建表是无效的

    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() 关闭游标对象

    相关文章

      网友评论

          本文标题:MySQL(三)

          本文链接:https://www.haomeiwen.com/subject/ytfddqtx.html