什么是视图?
视图是一张虚拟的表,视图中不存放数据,其结构和数据是建立在对表的查询基础上,
表示一张表的部分数据或多张表的综合数据。
视图的用途
筛选表中的行
防止未经许可的用户访问敏感数据
降低数据库的复杂程度
将多个物理数据库抽象为一个逻辑数据库
视图注意事项
使用视图修改数据会有许多限制,
一般在实际开发中视图仅用作查询
对视图数据进行添加、更新和删除操作直接影响所引用表中的数据
当视图数据来自多个表时,不允许添加和删除数据
创建视图:
CREATE VIEW view_name
AS
<SELECT 语句>;
#创建视图
USE student
CREATE VIEW vw_student AS
SELECT s.studentno,studentname,subjectname,studentresult,examdate
FROM student AS s
INNER JOIN result AS r ON r.`subjectNo`=s.`studentNo`
INNER JOIN SUBJECT AS sub ON sub.`subjectNo`=r.`subjectNo`
删除视图:DROP VIEW [IF EXISTS] view_name;
DROP VIEW IF EXISTS view_student;
查看视图:
SELECT 字段1, 字段2, …… FROM view_name;
SELECT * FROM vw_result
查看全部视图:
USE information_schema;
SELECT * FROM views
什么是索引?
索引是一种有效组合数据的方式,为快速查找到指定记录
索引的作用
大大提高数据库的检索速度
改善数据库性能
MySQL索引按存储类型分类
B-树索引:InnoDB、MyISAM均支持
哈希索引
常用的索引类型
普通索引:基本索引类型
允许在定义索引的列中插入重复值和空值
唯一索引:索引列数据不重复
允许有空值;
主键索引:主键列中的每个值是非空、唯一的
一个主键将自动创建主键索引
复合索引:将多个列组合作为索引
全文索引:支持值的全文查找
允许重复值和空值
空间索引:对空间数据类型的列建立的索引
创建索引
CREATE INDEX `index_student_studentName`
ON `student`(`studentName`);
删除索引
DROP INDEX index_name ON table_name;
查看索引
SHOW INDEX FROM table_name;
查看数据一个数据库中的全部索引
USE myschool;
SHOW INDEX FROM `student
创建索引的基本原则
按照下列标准选择建立索引的列
频繁搜索的列
经常用作查询选择的列
经常排序、分组的列
经常用作连接的列(主键/外键)
请不要使用下面的列创建索引
仅包含几个不同值的列表中仅包含几行
数据库备份
mysqldump -u usrname(用户名称) -h host(登陆主机名) -p password(用户密码)
dbname(需要备份的数据)tbname(需要备份的表名)>filename.sql(备份后的名称)
例如: mysqldump –u root –p myschool student > d:\backup\myschool_20160808.sql
恢复数据库
1 :mysql –u username用户名 –p [dbname]数据库名 < filename.sql 备份文件名
2 :source filename; #source命令恢复数据库
CREATE DATABASE myschoolDB2; #创建数据库
USE myschoolDB2; #选择数据库
source d:\backup\myschool_20160808.sql; #恢复数据库