• MySQL--基本操作


    文来自对实验楼的实验文档和相应操作过程的整理。

    涉及的内容为:索引、视图、导入和导出、备份和恢复。

    一、索引

      索引是一种与表有关的结构,相当于书的目录,可以根据目录中的页码快速找到所需的内容。

      当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。这样做消耗大量数据库系统的时间,并造成大量磁盘I/O操作。。而如果在表中已建立索引,在索引中找到复合查询条件的索引值,通过索引值就可以大大加快查询速度。对一张表中的某个列建立索引,有以下两种语句:

      i)ALTER TABLE 表名 ADD INDEX 索引名 (列名);    

      如:ALTER TABLE employee ADD INDEX idx_id (id); //括号是同时存在哈

      ii)CREATE INDEX 索引名 ON 表名 (列名);        

      如:CREATE INDEX idx_name ON employee (name);

      使用SHOW INDEX FROM 表名; 查看刚才新建的索引。

    二、视图

      视图是从一个或多个表中导出来的表,是一种虚拟存在的表。它就像一个窗口,通过这个窗口可以看到系统专门提供的数据。视图是虚拟的表:

      1)数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中;

      2)使用视图查询数据时,数据库系统会从原来的表中取出相应的数据;

      3)视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变;

      4)在使用视图时,可以把它当作一张表。

      创建视图的语句格式为:

      CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名;  

           注意后面是一个SELECT语句,所以视图也可以建立在多张表上,只需在使用SELECT语句中使用子查询和连接查询。

      查看视图语句为:SELECT * FROM 视图名;  //和普通的表一样

     三)导入和导出

      1)导入

      导入操作,可以把一个文件里的数据保存进一张表。导入语句格式为:

      LOAD DATA INFILE '文件路径'  INTO TABLE 表名;  

      如:LODA DATA INFILE '/tmp/SQL6/in.txt' INTO TABLE employee;

      2)导出

      导出与导入时相反的过程,时把数据库某个表中的数据保存到一个文件中。导出语句基本格式为:

      SELECT 列1,列2 INTO OUTFILE '文件路径和文件名'  FROM  表名;    

      注:语句中“文件路径”之下不能已经有同名文件。

      如:把整个employee表中数据导出到/tmp目录下,导出文件命名为out,txt。语句为:

      SELECT * INTO OUTFILE '/tmp/out,txt'  FROM employee;

    四)备份和恢复

      1)备份

      备份和导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部保存为一个文件。

      mysqldump是MySQL用于备份数据库的实用程序。它主要产生一个SQL脚本文件,其中包括从头重新创建数据库所必需的命令CREATE INSERT等

      使用mysqldump备份的语句是:

      i)mysqldump -u root 数据库名>备份文件名;    //备份整个数据库

      ii)mysqldumo -u root 数据库名  表名>备份文件名;  //备份整个表

      如:mysql -u root mysql_shiyan>bak.sql    //没有冒号

      注意:备份文件不是在MySQL控制台上操作的,要退出。是在Xfce 终端

      2)恢复

       整个过程和备份类似,在恢复数据库之前,要先创建一个新的空的数据库test。语句如下:

      mysql -u root test < bak,sql;

  • 相关阅读:
    Laravel8 + yansongda/laravelpay 3.1 遇到的问题
    Linux线程02
    Linux线程03
    链表
    02范围for语句,new内存分配,nullptr
    Linux线程01
    01auto关键字,头文件防卫,引用,常量
    (2020行人再识别综述)Person ReIdentification using Deep Learning Networks: A Systematic Review
    (2022 IVC 行人再识别综述)Deep learningbased person reidentification methods: A survey and outlook of recent works
    <a>标签的href传参带中文
  • 原文地址:https://www.cnblogs.com/love-yh/p/7096691.html
Copyright © 2020-2023  润新知