求解,关于SQL给表创建索引和视图的问题,各位帮帮忙
SQL里给表创建索引后,怎么用索引?为什么一定要用索引呢?还有在什么情况下才给表创建视图呢?为什么要创建视图?创建后又怎么用视图呢?问题太多了,望各位见谅哈,最好易懂,举...
SQL里给表创建索引后,怎么用索引?为什么一定要用索引呢?还有在什么情况下才给表创建视图呢?为什么要创建视图?创建后又怎么用视图呢?问题太多了,望各位见谅哈,最好易懂,举例子更好,谢啦
展开
4个回答
展开全部
索引的使用是数据库自动完成的,不需要特别调用!使用索引可以加快查询速度,可以参考以下的百度百科说明:
使用索引可快速访问表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。
在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。
在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。
一般数据库在建立时的默认索引是主键,但是在使用查询过程中有些字段往往作为经常的检索条件,比方说入库时间、姓名、种类等。如果不基于主键的查询经常发生的话,在这些查询字段上建立索引可以加快查询速度,提交程序的反应性能!
对于视图,一个是简单方便查询,同时也提高安全性,可参考百度百科介绍
* 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
* 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:
使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。
* 逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。
使用索引可快速访问表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。
在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。
在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。
一般数据库在建立时的默认索引是主键,但是在使用查询过程中有些字段往往作为经常的检索条件,比方说入库时间、姓名、种类等。如果不基于主键的查询经常发生的话,在这些查询字段上建立索引可以加快查询速度,提交程序的反应性能!
对于视图,一个是简单方便查询,同时也提高安全性,可参考百度百科介绍
* 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
* 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:
使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。
* 逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
简单来说,索引就是为了加快查询速度。如果把数据库看成一本书的话,索引就是这本书的目录。经常为表关联或设定查询条件的列设置索引,索引不用你去刻意的用。假如你在col_a列上设置了索引,那么,如果你的sql中的条件为where col_a = 'aaa',数据库会自动快速查找。不过,索引不宜过多,数据库会自动使用并维护索引,插入、删除、更新表后数据库都要自动更新索引。
通常,我们只对一张表或几张相关联的表中的某些字段感兴趣,我们可以创建视图存储这些字段。视图是一个"逻辑表",只有定义没有数据,是一张“虚表”。你可以把它当成一张表来用,可以认为在你的sql中数据库自动把视图名变成定义视图的sql。另外,查询视图没有什么限制,尽量不要对视图进行插入/更新/删除操作
通常,我们只对一张表或几张相关联的表中的某些字段感兴趣,我们可以创建视图存储这些字段。视图是一个"逻辑表",只有定义没有数据,是一张“虚表”。你可以把它当成一张表来用,可以认为在你的sql中数据库自动把视图名变成定义视图的sql。另外,查询视图没有什么限制,尽量不要对视图进行插入/更新/删除操作
追问
那如果在视图里面删除一列,原始表里面也会同样删除一列吗?为什么?
追答
不会。你可以把视图和原表看成两张表,只不过他们的数据是共享的。插入、删除、更新视图的数据,其实就是对原表数据进行相应的操作。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我简单的说
索引:在查询时,用索引字段,会较快找到相关信息,提高效率(类似目录功能)。
视图:查询多表时,就可以创建视图。方便调用吧(个人理解)。至于怎么用,就跟查询表一样(select * from v_table),
索引:在查询时,用索引字段,会较快找到相关信息,提高效率(类似目录功能)。
视图:查询多表时,就可以创建视图。方便调用吧(个人理解)。至于怎么用,就跟查询表一样(select * from v_table),
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
索引可以简单的理解为排序的条件 个人认为是用二分法去匹配的
视图是用语句查询出来的数据的集合 好处都是提升效率
视图是用语句查询出来的数据的集合 好处都是提升效率
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询