sql学习总结(6)——索引和视图技术

索引是一种特殊类型的数据库对象,保存数据库表中一列或多列的排序结果,因此有效使用索引可以提高数据的查询效率;视图是从一张表或多张表或视图中导出的表(虚表),为查看和存取数据提供了另外一种方法。

索引优点:加速数据检索;加速连接、order by、group by;查询优化器依赖于索引起作用;强制实行的唯一性。

索引缺点:创建索引花费的时间和占用的存储空间;减慢数据修改的速度(每次修改都要维护索引)。

视图优点:简化操作;定制数据;合并分割数据;安全性。

视图缺点:性能不高(DBMS处理查询时,先将其转换对底层源表的查询);数据修改受限。

6.1创建索引

语法格式:

create [unique] [clustered] [nonclustered] index index_name on [table | view] ( column [asc | desc],...)  (默认为非簇索引,升序)

create unique clustered index pk_簇索引 on 职工备份(职工ID)

exec sp_helpindex 职工备份

其中,unique表示唯一索引,clustered指明索引为簇索引(主键),索引名为“pk_簇索引”,一个表只能有一个簇索引。

创建唯一索引

create unique nonclustered index ix_唯一索引 on 职工备份(职工号 asc)

创建普通索引

create index ix_普通索引 on 职工备份(工资 desc)

6.2编辑索引

删除普通索引语法结构:

drop index ‘表名.索引名 | 视图.索引名’,[,...n]    利用该语句可以同时删除多个普通索引

删除主键或唯一索引语法结构:

alter table 表名

drop constraint ‘主键|唯一索引名’

重命名索引

exec sp_rename ‘仓库备份.IX_仓库备份’,’modifyindex’,’index’

6.3创建视图

语法格式:

create view view_name as select_statement

create view db_sqlview6

as

select *,职工评语=

case

when 工资>2000 and 金额<1500 then ‘工资给多了’

when 工资<2000 and 金额>1500 then ‘工资给少了’

else

‘工资合理’

end

from db_sqlview4

6.4修改视图和删除视图

语法格式:

alter view view_name as select_statement

drop view view_name

6.5通过视图添加、更新和删除数据

只有来源于一张表的视图才可以添加、更新和删除数据,本质是其对应的数据库表,操作和表一样。

insert into db_myview(仓库号,城市,面积,创建时间) values(‘wh1’,’郑州’,888,’2008-8-8’)

时间: 2024-10-06 18:43:13

sql学习总结(6)——索引和视图技术的相关文章

Sql Server事物、索引、视图

事务概念: 事务是一种机制,它包含了一组数据库操作命令,而且将所有的命令作为一个整体向数据库提交或撤销. 这组命令要么执行,要么都不执行,所以事务是一个不可分割的逻辑工作单元. 事务的特点: 1.原子性:事务作为一个完整性的操作,其各元素是不可分割的,要么全部执行,要么撤销所有的操作,事务的单元不可能出现部分成功的情况. 2.一致性:事务完成前后,数据必须保持完全一致的状态.即在事务开始或完成后,数据库中存储的数据都必须保持一致的状态. 3.隔离性:事务是相对独立的,在一个事务对数据进行修改时,

sql学习总结(1)——数据库技术

1.1创建数据库 1.1.1创建默认数据库 create database db_sqldata     (db_sqldata是数据库名) 1.1.2创建指定数据库文件位置的数据库 create database Mydatabase1 on ( name=Mydatabase1_data, filename=’e:\mydata\Mydatabase1_data.mdf’, size=4, maxsize=10, filegrowth=10% ) log on ( name=Mydataba

SQL Server索引 - 索引(物化)视图 &lt;第九篇&gt;

一.索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中).其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法.在第一个索引(必须是针对一组唯一值的聚集索引)之后,通过使用来自第一个索引的聚集键作为参考点,SQL Server还能在视图上建立额外的索引.其限制如下: 视图必须使用SCHEMABINDING选项: 如果视图引用

SQL Server(六)——索引、视图和SQL编程

1.索引 添加索引,设计界面,在任何一列前右键--索引/键--点击进入添加某一列为索引 2.视图 视图就是我们查询出来的虚拟表 创建视图:create view 视图名 as SQL查询语句,分组,排序,in 等都不能写 视图的用法: select * from 视图名 3.SQL编程 (1)定义变量:declare @变量名 数据类型 例:declare @a int (2)变量赋值:set @变量名 = 值 例:set @a=10 set @a = 10  --赋值,不打印 select @

sql学习笔记(20)----------MySQL 索引优化全攻略

所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找.而用的最多,并且是mysql默认的就是二叉树算法 BTREE,通过BTREE算法建立索引的字段,比如扫描20行就能得到未使用BTREE前扫描了2^20行的结果,具体的实现方式后续本博客会出一个算法专题里面会有具体的分析讨论; Explain优化查询检测 EXPLAIN可以帮助开发人员分析SQL问题,explain显示了mysql如何使用索引来处理select语

sql学习总结(9)——事务处理和优化查询技术

9.1事务的设置与提交 较低的隔离级别可以增加并发,但会出现脏数据,降低数据的正确性.较高的隔离级别可以保证数据的正确性,但会降低并发,即影响程序的运行速度,并且易死锁. SQL Server支持4种隔离级别:未提交读(read uncommitted)相当于NOLOCK.提交读(read committed)默认选项值.可重复读(repeadable read).可串行读(serializable). 设置事务隔离级别 set transaction isolation level repea

9月18日,SQL学习基础1

数据库管理和应用 Oltp是小型的管理,OLAP是大型的管理 开发的内容如触发器 数据库管理系统(Database Management System,简称为DBMS)是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立.查询.更新以及各种数据库控制等. DBMS总是基于某种数据模型,这些模型可以分为层次模型.网状模型.关系模型.面向对象模型等. Microsoft SQL Server 2008系统由4个主要部分组成.这4个部分被称为4个服务,这

转载: SQL Server中的索引

http://www.blogjava.net/wangdetian168/archive/2011/03/07/347192.html 1 SQL Server中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度.索引包含由表或视图中的一列或多列生成的键.这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行. 表或视图可以包含以下类型的索引: 聚集索引 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行.索引定义中包含聚集索

Sql学习总结(一)

—周学习总结 1.在建表是定义的数据类型和我们插入数据时数据类型不一致 2.注意join 和 left join在运用中的差别. 3.group by 原则:select 后面的所有列中,没有聚合函数的列,必须出现在group by 后面. 4.当我们在统计排名的时候,如果出现相同的排名要记得使用 with ties. 5.order by 默认升序排序,也可以用ASC标识,降序desc. 6.distinct 去重复 7.批插入 insert into table_name select