MySQL学习使用[9天系列 学习笔记 Day08]

系列文章目录

MySQL学习使用[9天系列 学习笔记]
Day01了解和创建数据库
(附上链接Day01:
https://blog.csdn.net/besthtml/article/details/128055581?
Day02创建、查看和删除表
https://blog.csdn.net/besthtml/article/details/128066352?
Day03更新数据和简单查询
https://blog.csdn.net/besthtml/article/details/128069269?
Day04模糊查询、结果排序和限制输出行
https://blog.csdn.net/besthtml/article/details/128085013?
Day05统计函数和其他函数的使用
https://blog.csdn.net/besthtml/article/details/128086178?
Day06分组统计和限制分组输出
https://blog.csdn.net/besthtml/article/details/128092918
Day07嵌套查询和连接查询
https://blog.csdn.net/besthtml/article/details/128099111
Day08视图、索引、备份和恢复
https://blog.csdn.net/besthtml/article/details/128108602?
Day09事务
https://blog.csdn.net/besthtml/article/details/128115542?


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

通过Day01了解数据库的创建,Day02了解了创建、查看和删除表,Day03了解了更新数据和简单查询,Day04了解模糊查询、结果排序和限制输出行,Day05学习了统计函数和其他函数的使用Day06了解了分组统计和限制分组输出。Day07嵌套查询和连接查询

Day01传送门https://blog.csdn.net/besthtml/article/details/128055581
Day02传送门https://blog.csdn.net/besthtml/article/details/128066352?
Day03传送门https://blog.csdn.net/besthtml/article/details/128069269?
Day04传送门https://blog.csdn.net/besthtml/article/details/128085013?
Day05传送门https://blog.csdn.net/besthtml/article/details/128086178?
Day06分组统计和限制分组输出https://blog.csdn.net/besthtml/article/details/128092918
Day07嵌套查询和连接查询
https://blog.csdn.net/besthtml/article/details/128099111


提示:以下是本篇文章正文内容,下面案例可供参考

一、视图

站在不同的角度去看同一份数据。
MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。 行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。 数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。 使用视图查询数据时,数据库会从真实表中取出对应的数据。 因此,视图中的数据是依赖于真实表中的数据的。 一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。,对视图对象进行增删改查,原表也会被操作 视图可以从原有的表上选取对用户有用的信息,那些对用户没用,或者用户没有权限了解的信息,都可以直接屏蔽掉,作用类似于筛选。 这样做既使应用简单化,也保证了系统的安全。

创建视图语法 create view 视图名称 as (select···)【as后面所跟必须是DQL语句】
删除视图 drop view 视图名称。
查看视图show tables;
(Tips:可以将视图操作当成表的操作)
例 创建视图v1,用于查看青山出版社的图书。

create view v1 as  
SELECT *  FROM library.book  where pubcomp='青山出版社';

例 创建视图v2,用于查看借书未还的图书借阅记录,包括读者编号、读者姓名、图书编号、图书名、借阅日期、应还日期。

create view v2   as
SELECT b.rid,r.rname,b.bid,b1.bname,b.lenddate,b.willdate
FROM borrow b JOIN book b1
on b.bid=b1.bid
JOIN reader r
ON b.rid=r.rid
WHERE IFNULL(b.returndate,0)=0;

例 创建视图v3,用于查看超期未还的图书借阅记录,包括读者编号、读者姓名、图书编号、图书名、借阅日期、应还日期。

 create view v3    as
SELECT b.rid,r.rname,b.bid,b1.bname,b.lenddate,b.willdate
FROM borrow b JOIN book b1 on b.bid=b1.bid
JOIN reader r ON b.rid=r.rid
JOIN penalty p   ON b.bid=p.bidd
WHERE p.ptype=1;

例 查看编号为‘001’的读者有没有超期未还的借阅情况。

select * from v3 where rid='010';

例 删除v1视图。

drop view v1;

二、索引

索引就是在数据库表的字段上添加的,为了提高效率,相当于目录,缩小扫描范围)
在任何数据库当中,主键上都会自动添加索引对象,在mysql当中,一个字段上如果有unique约束的话,也会自动创建索引。
创建索引语法格式:create index 索引名称 on 表名(字段名);
删除索引语法格式:drop index 索引名称 on 表名;
查看索引:show index from 表名;
例 在book表中创建一个基于出版社升序、价格降序的索引i_book。

create index i_book on book(pubcomp asc,price desc);

例 删除book表上的i_book索引。

drop index i_book on book;

二、备份和恢复

进行数据库和表的备份和恢复
在Day01我们提到过sourc和mysqldump命令(必须在bin目录下操作),在这里我们巩固并在学习新的命令

例使用mysqldump命令将library数据库中的图书表(book)、读者表(reader)备份到文件d:\ex\myschool_2020.sql中。

 mysqldump -u root -p library book reader>d:\ex\myschool_2020.sql;

(2)使用source命令方式还原图书表、读者表到school数据库。

source d:\ex\myschool_2020.sql;

例.(1)使用select…into outfile语句导出图书表(book)中的记录,导出文件位于目录d:\ex,名称为book_out.txt。

使用select...into outfile之前我们需要查看secure_fille_priv参数,因为outfile参数指定的文件所在的路径需要mysql访问权限。
查看secure_fille_priv参数
show variables like '%secure_file_priv%';

查看路径后找到my.ini(一般为隐藏文件)修改到指定路径即可,也可将路径删除,写命令时写入想要存储路径即可。
最后重启MySQL服务。重启MySQL服务在右键点击此电脑打开管理找到服务和应用程序点击服务,找到MySQL右键点击重启即可。
select…into outfile语法格式:select 列名 from 表名[into outfile] ‘目标文件’ [options]

select * from book
into outfile ' d:\ex\book_out.txt';

例(2)使用load data infile语句导入book_out.txt中的数据到library数据库。

我们首先需要将先查看功能是否开启。
show global variables like 'local_infile';
如果功能关闭,把它开启一下,1为开启,0为关闭。
set global local_infile=1;

LOAD DATA INFILE 'book_out.txt' INTO TABLE book ;

总结

提示:这里对文章进行总结:

例如:以上就是Day08要讲的内容,了解了一下学习视图、索引、备份和恢复。Day09将学习事务。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值