视图
创建视图
- 方法一:右键数据库——视图——新建视图(选中想显示的信息或者把有关的信息连接起来)
- 方法二:使用函数
create view V_studentInfo
as select a.姓名,a.性别,a.民族,a.家庭住址,B.班级名
from 学生信息 a,班级信息 B
where a.所属班级=B.班级编号
修改视图
alter view V_studentinfo
as
select a.学号,a.姓名,b.班级名,c.姓名 as 辅导员
from 学生信息 a join 班级信息 b
on a.所属班级=b.班级编号
join 辅导员信息 c
on c.辅导员编号=b.辅导员
删除视图
- 方法一: 右键——删除
- 方法二:使用函数
drop VIEW V_studentinfo
通过视图修改数据
注意事项:
SELECT 列表中含有DISTINCE
SELECT列表中含有表达式,如计算列,函数
在FROM子句中引用多个表
引用不可更新的视图
GROUP BY 或 HAVING 子句
例如:通过视图添加一条记录到数据库中
select * from v_stu
insert into v_stu
values('2009101005', '李菲', '女', '1986-09-09')
索引
索引概述
索引是一个独立的、物理的数据库结构,它是某个表中一列或者若干列的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。从某种程度上,可以把数据库看做一本书,把索引看作书的目录
索引一旦创建,将由数据库自动管理和维护。例如,在向表中插入、更新或者删除一条记录时,数据库会自动在索引中作出相应的修改。
优点:
- 保证数据记录唯一性
- 加快数据检索速度
- 加快表与表之间的链接速度
- 在使用ORDER BY和GROUP BY 子句中进行检索数据时,显著减少查询中分组和排序的时间
- 检索数据过程中使用优化隐藏器,提高系统性能
创建索引
- 方法一:右键数据库——表——新建索引
- 方法二:使用函数
CREATE
[UNIQUE](唯一) [CLUSTERED](聚集) [NONCLUSTERED](非聚集)
INDEX index_name
ON
table_name|view_name
列名
例如:
create nonclustered index i_classname
on 班级信(班级名)
删除索引
- 方法一:右键——删除
- 方法二:使用函数
DROP INDEX 学生信息.i_name
聚集索引,非聚集索引
- 聚集索引:电话簿,按姓氏排列数据,一个表只能包含一个聚集索引,但该索引可包含多个列
- 含有大量非重复值的列
- 使用BETWEEN,>,>=,<,<=返回一个范围值的列
- 被连续访问的列
- 返回大型结果集的查询
- 经常被使用连接或GROUP BY子句的查询访问的列
非聚集索引
和聚集索引的区别
- 数据行不按非聚集索引键的顺序排序和存储
- 非聚集索引的叶层不包含数据页,相反,叶节点包含索引行
架构
创建架构(容器) 包含一些数据表,视图......
- 方法一:右键数据库——安全性——架构——新建架构
- 方法二:使用函数
create schema admi AUTRORIZATION teacher