视图:我们对经常查询的一些表数据 组合在一个视图中 避免了每次都要执行Sql语句来组合查询 视图并不存储数据
查询视图时 数据看似是在一张表数据里面
注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。
一 . 创建视图:2种方式
1.图形界面创建
2.SQL语句创建
图形创建 : 需要让表之间相互关联 下面是生成的sql语句 真正执行时 是执行的下面的Sql语句执行
语句创建:
Create view 视图名称 as
执行连表查询的Sql语句
Ps:
Create view MobileMsg --视图名称
as
select Nam.品牌名称,Mob.型号,Mob.价格 from dbo.手机表 as Mob inner join dbo.品牌表 as Nam
on Mob.型号=Nam.型号 --执行的sql语句
--这里两张表有关联关系
--手机表的型号 和 品牌表中的型号 有关联
二. 修改和删除视图
命令修改:
语法: alter View 视图名称 as 修改好的sql语句
--例:
alter view MobileMsg
as
select Nam.品牌名称,Mob.型号 from dbo.手机表 as Mob inner join dbo.品牌表 as Nam on Mob.型号=Nam.型号
命令删除:
drop view
也可以通过管理器来修改删除~
三. 通过视图修改数据
insert into dbo.MobileMsg values (96,'小米')
以下情况不能往视图中插入数据:
1.图形界面 修改
2.SQL修改
四. 索引 数据库数据多的情况~~~ 提高查询效率
概念:比如在表中的某一列创建一个索引 索引指向了数据某一个数据 在数据查询时先搜索索引 索引会告诉数据的具体位置 类似于书的目录~
可以在表中创建索引,以便更加快速高效地查询数据。
用户无法看到索引,它们只能被用来加速搜索/查询。
注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
索引优点:
五.创建索引
1.图形
2.SQL语句
语法:
CREATE
UNIQUE | CLUSTERED | NONCLUSTERED
--三个参数或的关系 可以不加 默认是可以重复的 不聚集索引
-- 分别是 唯一性索引 | 聚集索引 (一个表只能一个) | 非聚集索引(可以多个)
INDEX index_name --索引名称
ON
table_name (column_name) --指向具体的表中的列
图形创建:
聚集索引一个表只能有一个 设置表的主键时会自动创建
因为有聚集索引 这里创建一个非聚集索引
对我们表中的 “价格列” 创建了非聚集索引 数据多的时候 输入价格查询 会效率提高很多~
SQL语句创建索引:
CREATE NONCLUSTERED
INDEX StudentName
ON
dbo.学生信息表(学生人数)
--创建了一个非聚集索引 名字叫StudentName
--索引的表是学生信息表 其中要索引的列是 学生人数 dbo.学生信息表(学生人数)
六.查看 删除索引
1.通过右击索引直接删除
2.通过 drop index 表名称.索引名称 通过语句删除操作~
drop index dbo.学校表.StudentName
七.全文索引和目录 (适用于表的数据量特别大的情况)
索引针对数据的列提高查询效率 全文索引针对数据表提高查询的速度
1. 图形创建全文索引
选择要索引的列 下一步 直到完成
8.架构 架构可以包含数据表和视图等数据库对象 可以在创建用户时将架构的权限赋予给用户实现权限管理
1.图形创建
右击 新建架构的命令
选择架构所有者
选择角色权限
2.SQL创建架构
create schema admins AUTHORIZATION guest
--创建架构 架构名称admins 关键字 架构所有者~~
具体的权限可以在图形界面里面配置~~~
九.修改和删除架构
右击表设计 选择架构~~~ 选择我们创建好的架构 将表加入到架构中 然后在创建架构时已经赋予了用户权限
架构默认就是 admins 我们创建好的架构~
删除架构
现将架构中的对象 修改掉 比如表1在架构中 先修改表1的架构将其架构改为dbo 然后 再删除架构~~~
十.聚集索引和非聚集索引
聚集索引:
非聚集索引: