其他分享
首页 > 其他分享> > zb_视图与索引

zb_视图与索引

作者:互联网

目录

视图

/*视图(虚拟表)*/
CREATE [OR REPLACE] VIEW 视图名[列]
AS
SELECT 
[WITH CHECK OPTION] /*子句用来限制通过改视图修改的记录要符合SELECT语句的指定条件*/
/*OR REPLACE替换已有的同名视图*/
SHOW CREATE VIEW 视图名;/*查看视图的定义语句*/
DESCRIBE 视图名;/*视图相关信息*/
# alter view v1(,,) as select...;/*修改视图*/
# drop view if exists v1,v2;/*删除视图*/
---------------------------------------------------------------
/*创建视图v1,来查看stuinfo中所有女生的基本信息*/
create or replace view v1 as 
select * from stuinfo where stusex = '女' with check option;
/*创建v2,查看选课表中所有学生的学号及平均成绩*/
create or replace view v2(stuno,avg_stuscore) as
select stuno,avg(stuscore) from stumarks group by stuno;
/*创建v3,用来查看所有学生的学号,姓名,课程名及成绩*/
create or replace view v3(学号,姓名,课程名,成绩) as 
select i.stuno,stuname,cname,stuscore
from stuinfo i join stumarks m on i.stuno=m.stuno 
join stucourse c on m.cno=c.cno;
-----------------------------------------------------------
#  使用视图检索,更新基本表中的数据
select avg_stuscore from v2 where stuno='S003';/*查询v2视图中S003学生的平均成绩*/
insert into v1(stuno,stuname,stusex) valuse('S200','刘强','男');/*插入*/
update v1 set stubirth='' ehere stuno ='';/*修改*/
delete from v1 where stuno='';/*删除*/

索引

/*索引,提高数据查询速度*/
UNIQUE//唯一索引
# 使用CREATE INDEX 语句在已存在的表上创建索引
CREATE [UNIQUE] INDEX 索引名 ON  表名(字段名)
# 创建表的同时建立普通索引
CREATE TABLE t1(
    字段名 数据类型 完整性约束条件,
 	......,
	 [UNIQUE] INDEX 索引名(字段名(长度)
);/*索引名默认是字段名*//*长度是指的是使用列前的多少个字符创建索引*/
# 使用ALTER TABLE 语句在已存在表上创建索引,修改表时创建*/
ALTER TABLE 表名 ADD [UNIQUE] INDEX 索引名(字段名)
ALTER TABLE t1 ADD INDEX multidx(id,name);/*给已有的t1表的id及name字段上建立多列索引*/
ALTER TABLE 表名 ADD UNIQUE(列名);  /*唯一索引*/
ALTERTABLE  table _ name  ADD PRIMARY KEY (列名); /*主键是一种特殊的唯一索引*/

标签:INDEX,stuno,v1,创建,zb,索引,视图
来源: https://www.cnblogs.com/naitiam/p/16315883.html