/*
View视图:一个表或多个表的查询定义,是一张展示结果的虚拟表。
只有在调用的时候才会获取数据。
视图的作用,优点:
1.限制对数据的访问
2.让复炸查询变得简单
3.提供数据的独立性
4.可以完成对相同数据的不同显示
*/
-- 创建视图:子查询可以是任意的select语句
create view ViewName
as
select * from student;
-- 带列名的视图
create view ViewName2(vsid,vsname)
AS
select sid,sname from student;
-- with check option
-- 对视图进行更新,插入,删除时保证行满足视图子查询中的条件表达式。
create view ViewName3(vsid,vsname)
AS
select sid,sname from student
where sid between 1 and 100
with check option; -- 每次对视图插入,修改,删除时,都会自动加上where后的条件。
-- 基于视图创建视图
create view ViewName4(vsname)
AS
select vsname from ViewName3
where vsid in (1,2,3,4)
with check option;
-- 删除视图
drop view ViewName3;
-- 级联删除
drop view ViewName3 cascade; -- 删除v3以及v3所导出的所有视图
-- 查询视图:和一般查询表一样
-- 更新视图,删除视图,插入视图最终都在基本表上进行,要加上with check OPTION
-- 并且要把基本表的非空列都加上。
/*
索引index:通过对数据添加索引,加快查找速度
数据库索引类型:顺序文件上的索引,B+树的索引,散列(hash)索引,位图索引
*/
-- 给一列/多列建立唯一索引
create unique index indexName1 on student(sid)
create unique index indexName2 on student(sid DESC,sname ASC) -- 索引查询优先顺序,排序
-- 更新表的索引
ALTER TABLE `表名` DROP INDEX 索引名;
ALTER TABLE `表名` ADD UNIQUE 索引名 (`column2`, `column1`) USING BTREE;
ALTER TABLE `表名`
DROP INDEX 索引名,
ADD UNIQUE 索引名 (`column2`, `column1`) USING BTREE;
-- 删除索引
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
mysql数据库note5:View视图和索引index
最新推荐文章于 2024-07-09 11:15:46 发布