索引和视图
树图思维导图提供 索引和视图 在线思维导图免费制作,点击“编辑”按钮,可对 索引和视图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f286d67a0e0e97eadbd0fbb0af4b51af
索引和视图思维导图模板大纲
概述:数据库索引是为了提高查询速度而对表字段附加的一种标识。简单来说,索引其实是一种数据结构。数据库的索引类似于书籍的索引。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
适合建立索引的情况
经常在where条件中作为查询条件的字段可以建立索引; 外键关联列可以建立索引; order by排序后面的字段可以建立索引; group by分组后的字段可以建立索引;
不太适合建立索引
经常增、删、改的字段不适合建立索引,每次执行,索引需重新建立; 数据过滤性很差的字段不适合建立索引,如性别字段; 当表数据量过少的时候不太适合建立索引,因为索引占用存储空间;
数据库为什么要设计索引?
为了快速查询
sql创建索引
使用create table 语句 在创建表时创建索引
create table 表名( 字段1 数据类型 【约束】, 字段2 数据类型 【约束】, 字段3 数据类型 【约束】 [unique(唯一索引)\fulltext(全文索引)\SPATIAL(空间索引)] <index\key(都是用来指定索引)> [索引名] (属性名)[(长度)..] -- 索引名:就是索引的名字,不设置的话就是普通索引。属性名:字段名。长度:指定索引的长度,必须是字符串类型才可以使用 );
案例:为student 表的sno 字段创建唯一索引 id_sno。
create table student( 字段1 数据类型 【约束】, 字段2 数据类型 【约束】, 字段3 数据类型 【约束】 unique index id_sno (sno) );
使用create index 语句 在现有表中创建语句
create [unique(唯一索引)\fulltext(全文索引)\SPATIAL(空间索引)] index <索引名> on <表名> (属性名【(长度)】【,】);-- 索引名:就是索引的名字不设置的话就是普通索引。属性名:字段名。长度:指定索引的长度,必须是字符串类型才可以使用
案例:为student 表的sbirthday 字段创建一个普通索引 id_birtid_birth
create index id_birth on student (sbirthday);
使用 alter table 语句创建索引
alter table 表名 add [unique(唯一索引)\fulltext(全文索引)\SPATIAL(空间索引)] index <索引名> on <表名> (属性名【(长度)】【,】);-- 索引名:就是索引的名字,不设置的话就是普通索引。属性名:字段名。长度:指定索引的长度,必须是字符串类型才可以使用
删除索引
sql语句:drop index <索引名> on <表名>;
删除student 表上的 id_name 索引
drop index id_name on student;
王宁使用 SQL语句创建索引来解决问题
create unique index id_sno on student_new(sno); -- 使用where 语句查询sno=1000000的记录 select * from student_new where sno=1000000;
发现:大大的提高了查询速度
什么是视图
视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。 视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。
使用create view 语句创建视图 :
create [or replace] view view_name(视图名) [(Colum [,..])] as select (select语句) [with [cascaded\local(都是 检查依赖视图中的规则以保持一致性)] check option (强制满足select 的要求,不满足的会被踢走)] --视图名:v_字段名 也是可以的。 select语句 :字面意思,select * from 表名
创建一个名为sc_view2的视图,从数据库gradem的sc表中查询出成绩小于80分的所有学生的学号、课程号、成绩等信息
CREATE or REPLACE view sc_view2 as select * from sc where degree<80; )--除了前面的CREATE or REPLACE view sc_view2 as 的不一样,剩下的就是select查询语句
下面情况的视图不可以执行insert、update和delete操作: 1)多表连接 2)包含distinct 3)包含聚合函数 4)包含groupby 5)包含orderby 6)包含union、unionall 7)包含子查询等
查询视图
DESCRIBE 视图名; (DESCRIBE 一般情况下可以简写成 DESC,输入这个命令的执行结果和输入 DESCRIBE 是一样的。)
删除视图
可以使用 DROP VIEW 语句来删除视图。DROP VIEW <视图名1> [ , <视图名2> …]
删除单条数据
delete from 视图名 where 限制条件 ;
视图的修改
update 视图名set 字段=‘新值 ’where 限制条件
树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc
树图思维导图提供 光和影 在线思维导图免费制作,点击“编辑”按钮,可对 光和影 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:2f4c9606f70a3f8d98ec4d65695dc3d1