zoukankan      html  css  js  c++  java
  • 事务、视图、索引、备份和恢复

    事务

    事务是指将一系列数据操作捆绑成为一个整体进行统一管理(事务是一个整体,他们同生共死,要么都执行,要么都不执行)。

    事务特性:

     1.原子性:事物的各元素不可分割

     2.一致性:事务完成后,数据必须处于一致状态

     3.隔离性:两个事务彼此隔离,是无关的,一个执行成功,不影响另外一个事务执行的结果

     4.持久性:事务完成后,数据库中数据永久保存

    执行事务的语法:

    1.开始事务

    begin 或  start transaction; 

    2.提交事务

    commit;

    3.回滚(撤销)事务

    rollback;

    use mybank;
    /*--设置结果集以GBK编码格式显示*/
    set names gbk;
    /*--开始事务(指定事务从此处开始,后续的sql的语句是一个整体)--*/
    begin;
    /*要执行的SQL语句*/
    /*提交事务,写入硬盘,永久保存*/
    commit;
    

      

    设置自动提交关闭或开启

    set autocommit=0|1

    值为0:关闭自动提交

    值为1:开启自动提交

    视图

    是一张虚拟表,本质上保存的是sql语句。一般封装的是查询的sql

    视图的好处:

    结果更明显。不用我们关注到底这个视图的结果集是有几张基本表互联检索出来的

    获取数据更明显

    安全性更高

    1.创建视图:

    create view 视图名
     as 
     <select语句>
    

    2.删除视图

    drop view [if exists] 视图名;
    

    3.查看视图

    select 字段1,字段2...... from view_Name
    

      

    存储过程
    基础架构
    delimiter $$ create procedure usp_stulist()(存储的名字) begin select * from student; end $$
    delimit(空格) ;

     权限:

    create user wmj identified by '1'(任何人都可以访问)
    create user wmj @'localhost' identified by '1'(只有本机可以访问)
    把什么权限给谁:
    grant 具体权限名称 update ,delete,insert on myschool.student to 表名
    

    索引

    是一种有效组合数据的方式,为了快速查找到指定记录
    1.其实数据库中的数据是按页存放的

    2.其实索引也是按页存放的,所以本质上也占硬盘空间,占得空间比较少,可以忽略

    索引分类:

    1.普通索引 :允许在定义索引的列中插入重复值和空值

    2.唯一索引:不允许两行具有相同的索引值

    3.主键索引:主键中的每个值是非空、唯一的,主键索引是唯一索引的特殊类型

    4.复合索引:在创建索引时,并不是只能对一列创建索引,与创建主键一样,可以将多列组合作为索引。只在查询中使用了组合索引最左边字段时,索引才会被使用,即第一个字段作为前缀的集合

    5.全文索引:在定义索引的列上支持列的全文查找

    6.空间索引:对空间数据类型的列建立的索引

    创建索引:

    create [unique  fulltext spatial] index index_name on table_name (column_name[length]........)

    删除索引

    drop index index_name on table-name

    查看索引

    show index from table-name
    

    建立索引的原则
    1.在列基数比较少的列上,不适合创建索引
    2.在不经常使用的列上,建立索引没有意义
    3.在频繁搜索的列上,适合建立索引

    其实,索引是把双刃剑(利弊共存),如果使用不当,反而会降低检索速度

    备份

    mysqldump -u root -h host -p root
    dbname[tbname1[,tbname2......]]>filename.sql

    恢复数据库

    mysql -u root -p [dbname]<filename.sql

    表数据导出文本文件

    语法:select columnlist from tablename [where contion] into outfile 'filename' [option]

    文本文档导入表数据

    语法:load data infile filename into table tablename [option]

  • 相关阅读:
    php中向mysql插入数据
    W3Cschool菜鸟教程离线版下载链接
    Call to undefined function mysqli_connect()
    Windows下MySQL 5.6安装及配置详细图解
    请不要再责怪你的程序员“太慢”
    工欲善其事必先利其器
    PHP正则表达式
    matlab画柱状图
    matlab 把数组中的NaN去除掉
    建模2017A题 角度lingo代码
  • 原文地址:https://www.cnblogs.com/luoxionghenku/p/8465750.html
Copyright © 2011-2022 走看看