找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

mysql之视图、引索、外键、存储

[复制链接]
一、视图:
①视图是一个虚拟表(逻辑表),它不在数据库中以存储数据的形式保存(本身不包含数据),还是在使用视图的时候动态生成。

②视图的作用?
1.数据库中的数据查询非常复杂,例如多表、子查询、编写语句较多、并能且这种查询被重复使用,那么我们可以创建视图,避免每次写sql语句会出现错误,提高查询效率。
2.为了安全,在公司中,有些字段位保密字段,那么可以创建视图,限制对某些字段的操作。

③视图的优缺点?
1.提高查询效率(复杂数据可以通过创建视图避免多次编写sql语句出现的错误)
2.安全(保密字段可以通过创建视图来限制用户操作)
3.简单(不需要关心后面关系结构);

1.性能差(把试图查询结果转换成对表的查询)
2.修改限制(修改视图数据,必须把它转换为对基础表的修改)
3脱敏测试(加密测试)通常情况下,数据库是敏感的,脱敏测试不是每一个用户都能进行访问,但是某些用户需要读取部分数据,这时可以指定条件创建视图


④视图的使用
(1) show tables;显示所有的表(先查看数据库中的基本表)
(2)创建视图:
格式 create view 视图名 as (sql 语句)
(3)show create view hz11
(4)drop  view hz11
(5) select from hz11
(6)创建视图之后,无需重复合表,语句简单。

⑤视图的特点
1.是由基本表产生的虚拟图
2.视图的创建和删除不影响基础表
3视图的更新与数据删除直接影响基础表(单表)
4.基础表修改数据,视图也修改





二、索引的介绍
1.什么是索引
一个索引在存储的表中的数据的结构或
是在表的字段名上创建
索引包含了一个列的值

2.索引的作用
(1)保证数据记录的唯一性
(2)实现表与表之间的参照
(3)减少排序和分组的时间(如在使用order by ,group by 查询语句进行数据检索)
(4)可以利用索引快速访问数据库中特定的信息(matter)

3.索引的缺点
(1)索引要占物理内存
(2)对表进行增删改查,索引也要进行维护

4.索引的分类
(普通索引) :index mul  最基本的索引 无任何限制
(主键索引) :primary key pri  是一种唯一索引,不能为空
(唯一索引):unique uni 是一种唯一索引,可为空
全文索引
组合索引
单列索引
聚焦索引

5.索引的使用
格式1: show index from table
格式2: show keys from table

6.建立索引
建表后建立索引
(1)建立普通索引 index
key_name 索引名 column_name 字段名
creat index jj on ded (name)

7.索引用来做什么
创建索引的时间
主键索引和唯一索引的区别
主键索引只有一个
唯一索引可以有多个
主键索引删除 直接drop primary key
删除其他索引 drop index 索引名


三、外键
1、外键的定义:
让一张表记录的数据不要太过于冗余,在数据库中对表的关系进行解耦,尽量让表的数据单一化。
2、外键作用
外键的作用:保持数据的一致性和完整性
3、mysql 数据库中存储引擎?
innodb  (外键要使用innodb存储引擎)
myisam(默认)
4、查看存储引擎
格式:show  table  status  from   库名  where name="表名"  ;
案例:show  table  status  from   hz10  where name="emp"  ;


四、存储
(1)什么是存储过程?
h存储过程是实现某个特定功能的sql 语句的集合,编译 后的存储过程会保存 在数据库中,通过存储过程的名称可以反复的调用执行。
(2)存储过程的优点?
1、存储创建后,就可以反复非调用和使用,不需要重新写复杂的sql语句
2、创建、修改存储过程不会对数据有任何的影响
3、存储过程可以通过参数和返回值  
4、存储过程可以通过加入控制语句,加强sql语句的功能性和灵活性
5、对于的那个的增删改查语句,可以直接封装在一个函数体当中,或者封装在一个集合当中,存储过程一旦创建就可以直接调用,而且可以重复调用
6、单个sql语句每次执行都要数据库进行编译,而存储过程创建只需要编译一次,后续就可调用
7、创建存储过程,可以重复进行调用,可以减少开发人员的工作量
8、防止sql注入
9、造数据
(3)存储的基本格式:
delimiter //  #分隔符/定格符
create   procedure   存储名称(  in或out 或 inout)
BEGIN  #开始
              执行语句块1
            执2语句块1
end            #结束
//             #分隔符
先执行创建存储,在调用使用call
call   存储名()   调用存储
基本使用的语句:
(1)查看单个存储过程的项详情
格式:show  create   procedure  存储名;
show  create   procedure  hz1 ;
(2)查看所有已经创建的存储过程详情
格式:show  PROCEDURE  STATUS ;
show  PROCEDURE  STATUS ;
(3)查询数据库创建的存储过程
格式:show  PROCEDURE  STATUS where  db="数据库名" ;
show  PROCEDURE  STATUS where  db="hz10" ;
(4)删除存储
格式:drop  procedure   存储名称 ;
drop  procedure hz2 ;



分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册