MySQL视图,索引,数据导入与导出,备份和恢复
2017-05-31 本文已影响133人
c4a1d989518e
视图
MySQL中的视图,是为了MySQL中的数据的展示的。是从一个表或者若干个表中,抽离出我们关心的数据,然后集中形成一个表,名叫视图。这样,我们之间看这个视图就好了,不用去一个一个的翻找不同的表,或者庞大的表。
构建视图的语句是
CREATE VIEW 视图名 (列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表;
从这句语句中就可以看出视图是用来干什么的。举个例子:
这是表中的数据,如果我们只关注name,age,phone,这三列数据,那么就可以用这个语句:
CREATE VIEW v_emp (v_name,v_age,v_phone) AS SELECT name,age,phone FROM employee;
查看:
建立索引
索引是用来建立MySQL的目录的,为了更方便的查询,普通的查询,是要全表搜索,一一取出数据与我们的条件进行对比,如果表中的数据比较庞大,一个普通的查询操作就要用到大量的磁盘消耗。建立索引就可以避免这样的情况发生,会提高检索效率。
如何建立索引,建立索引的语句是:
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
或者另一个语句:
CREATE INDEX 索引名 ON 表名 (列名);
这两个都可以,尝试一下,
ALTER TABLE employee ADD INDEX idx_id (id);
CREATE INDEX idx_name ON employee (name);
这两句的意思,是为employee这个表中的id和name分别建立名为idx_id和idx_name的索引。
查看employee这个表中,所有的索引:
SHOW INDEX FROM employee;
导入数据库
比如说,此时有一个in.txt文件
这里面记录着一些数据,我们想要把这个数据导入到employee这个表中,语句是:
LOAD DATA INFILE '文件路径' INTO TABLE 表名;
这个in.txt文件在Desktop/in.txt
,所以用这个方法就好:
LOAD DATA INFILE 'Desktop/in.txt' INTO TABLE employee;
执行以后,再查看
数据的导出
有了导入就有导出,导出的语句为:
SELECT 列1,列2 INTO OUTFILE `路径+文件名` FROM 表名;
举例
SELECT * INTO OUTFILE `Desktop/out.txt` FROM employee;
备份与恢复
备份与导出有什么区别?导出只是导出数据,表的关系啊,和约束等都不能导出只能用备份。
备份用mysqldump命令,命令语句为:
mysql -u root 数据库名>备份名;
mysql -u root 数据库名 表名>备份名;
举例:
mysql -u root mysql_shiyan employee>test.sql;
然后备份成功后就可以在相应目录找到test.sql文件了。
如何恢复呢?
打开mysql后,要先打开mysql,然后执行
source /Desktop/test.sql