视图的好处,它可以横纵分割表,在视图上的可以执行与在表上一至的操作,如:Insert、Update、Delete。这些操作与在表上的相应操作大至相同,不过也有些不同之处。在视图上进行操作的列是只属于视图的列,这些列不一定包含对应表中的所有列,所以在执行Insert操作或Update操作时,如果视图中有未被包含的列,并且这些列是Not NULL的,那么在视图上执行相应的Insert操作或Update操作时就会失败,还有在视图上如果使用了Group By、Distinct等操作时,不能执行Insert或Update操作。还有一点需要注意的是,如果视图中包含的不只是一个表,那么执行Insert或Update一次只能对视图中的某个表进行操作,也就是说,如果视图中包含了两个表A、B,那么就需要对视图执行两次Insert或Update操作,一次操作表A的各个列,一次操作表B的各个列。
语法:
Create View View_Name [columnname,……]
AS Select Statement [WITH CHECK OPTION] [WITH ENCRYPTION]
举例说明:
Use SomeDataBase Go –这句与MySQL的一样,就是表示要进入某个数据库
Create View SomeView –创建一个视图SomeView
As
Select * from UserInfo [WITH ENCRYPTION]
–在Select 语句后加上With Encryption 表示对视图进行加密,这样其它用户查看这个视图时,就看不到视图中的内容。
GO
事务:
在MS SQL Server中对事务的操作一共有四个,它们是:
Begin Transaction、Commit、Rollback和Save Transaction。
索引:
索引有四种,唯一索引、簇索引、非簇索引和复合索引。
表扫描一般用在大表返回绝大多数数据或小表查询某些数据时使用。在大表中查询有限量数据,一般使用索引。
索引其实是一种与表中的列相绑定的对象。
使用索引的时机:
1.经常被查询搜索的列。
2.在Order by子句中使用的列。
3.是外键或主键的列。
4.该列的值唯一的列。
不能使用或不适合使用索引的情况:
1.在查询中很少被引用的列。
2.数据类型为bit、text和Image等的列不能建立索引。
语法:
Create [UNIQUE][CLUSTERED|NONCLUSTERED] Index index_name
On TableName (Column [,…n])
举例说明:
Create UNIQUE CLUSTERED Index SomeIndex On UserInfo (UserName)
这就是在表UserInfo的列UserName上建立的一个唯一簇集索引。 |