SQL Server之视图
2015-10-04 22:29
281 查看
视图是从一个或者多个表导出的,用来导出视图的表称为基表,导出的视图又称为虚表。
在数据库中,至存储视图的定义,不存放视图对应的数据,这些和数据仍然存放在原来的额基表中。
视图的优点:
1,方便不用户的查询和处理,简化数据操作
2,简化用户的权限管理,增加安全性。
3,便于数据共享。
4,屏蔽数据库的复杂性。
5,可以重新组织数据。
-------------------- 又说了一堆废话
--------
----------------------创建视图-------------------------------------
关于创建视图,基于图形化的界面操作,就不罗嗦了。
下面是关于使用SQL语句创建视图。
1,语法格式:
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute>[ ,…n ] ]
AS select_statement
[ WITH CHECK OPTION ]
说明:
view_name:视图名称。
scheme:数据库架构名
column:列名,此为视图中包含的列
WITH子句:列出视图的属性
select_statement:定义视图的SELECT子句,可在该语句中使用多个表或者视图
WITH CHECK OPTION:指出在视图上进行的修改都符合select_statement所指定的准则。
下面是该语法的一个示例:
在stsc数据库中创建st2_comm视图,包括学号,姓名,课程号,成绩,且专业为通信。
USE stsc
GO
CREATE VIEW st2_comm
AS
SELECT student.stno, student.stname, score.cno, score.grade
FROM student, score
WHERE student.stno=score.stno AND student.specialist= '通信'
WITH CHECK OPTION
GO
---------------------------查询视图---------------------------------------
查询视图和查询表的SQL语句的结构是一样的,只需将表名换成视图名即可,比如下面的这个示例:
例如:查询st_comm视图:
USE stsc
SELECT *
FROM st_comm 再比如,查询学号,姓名,课程名:
USE stsc
SELCT stno, stname, cname
FROM st_comm---------------------更新视图---------------------------------------
注意:对视图的更新会更新到基表中的数据,但是,有时对视图的更新操作是无法完成对基表的更新。(不明白,回过头去看看这篇文章的开头,说了一堆关于视图的废话)
1,插入数据,同样的,同向表中插入数据的SQL语句的结构是一样的;
比如,向视图st_cp中插入一条记录('2015', '晓帅歌', '女', 'oracle’,59)。(就是不想你及格
)
USE stsc
INSERT INTO st_cp VALUES('2015', '晓帅歌', '女', 'oracle’,59) 2,修改数据,道理同上,我就不废话了,还是老规矩,来个例子。
例如:将视图st_cp中学号为2015的学生的总学分增加10分。
USE stsc
UPDATE st_cp SET tc=tc+10
WHERE stno = '2015'
3,修改数据。。。。
举例。删除学号为2014的记录
USE stsc
DELETE FROM st_cp
WHERE stno='2014' ------------------------修改视图和重命名视图-------------------------
关于图形化界面的操作,这里不介绍,很简单的,对吧。
下面说说关于使用SQL语句实现对是视图的修改和重命名
1,修改视图的定义:
语法格式:
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]
[ WITH <view_attribute>[,…n ] ]
AS select_statement
[ WITH CHECK OPTION ]
关于参数的定义解释,如上面创建视图的参数含义。
例如:修改视图st2_comm ,取消专业为通信的要求。
USE stsc
GO
ALTER VIEW st2_comm
AS
SELECT student.stno, student.stname, score.cno, score.grade
FROM student, score
WHERE student.stno=score.stno
WITH CHECK OPTION
GO
2,重命名视图:
语法格式:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
参数说明:
(不想打字了
)
例如:将视图st_view1命名st_view2
USE stsc
GO
EXEC sp_rename 'st_view1','st_view2'
GO
--------------------------删除视图---------------------------
使用SQL语句删除是视图的语法格式如下:
DROP VIEW [ schema_name . ] view_name [ ...,n ] [ ; ]
例如,删除视图st_view2:
USE stsc
DROP VIEW st_view2
~~~~~~~~~~~ 完 ~~~~~~~~~~~~~~~
在数据库中,至存储视图的定义,不存放视图对应的数据,这些和数据仍然存放在原来的额基表中。
视图的优点:
1,方便不用户的查询和处理,简化数据操作
2,简化用户的权限管理,增加安全性。
3,便于数据共享。
4,屏蔽数据库的复杂性。
5,可以重新组织数据。
-------------------- 又说了一堆废话
--------
----------------------创建视图-------------------------------------
关于创建视图,基于图形化的界面操作,就不罗嗦了。
下面是关于使用SQL语句创建视图。
1,语法格式:
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute>[ ,…n ] ]
AS select_statement
[ WITH CHECK OPTION ]
说明:
view_name:视图名称。
scheme:数据库架构名
column:列名,此为视图中包含的列
WITH子句:列出视图的属性
select_statement:定义视图的SELECT子句,可在该语句中使用多个表或者视图
WITH CHECK OPTION:指出在视图上进行的修改都符合select_statement所指定的准则。
下面是该语法的一个示例:
在stsc数据库中创建st2_comm视图,包括学号,姓名,课程号,成绩,且专业为通信。
USE stsc
GO
CREATE VIEW st2_comm
AS
SELECT student.stno, student.stname, score.cno, score.grade
FROM student, score
WHERE student.stno=score.stno AND student.specialist= '通信'
WITH CHECK OPTION
GO
---------------------------查询视图---------------------------------------
查询视图和查询表的SQL语句的结构是一样的,只需将表名换成视图名即可,比如下面的这个示例:
例如:查询st_comm视图:
USE stsc
SELECT *
FROM st_comm 再比如,查询学号,姓名,课程名:
USE stsc
SELCT stno, stname, cname
FROM st_comm---------------------更新视图---------------------------------------
注意:对视图的更新会更新到基表中的数据,但是,有时对视图的更新操作是无法完成对基表的更新。(不明白,回过头去看看这篇文章的开头,说了一堆关于视图的废话)
1,插入数据,同样的,同向表中插入数据的SQL语句的结构是一样的;
比如,向视图st_cp中插入一条记录('2015', '晓帅歌', '女', 'oracle’,59)。(就是不想你及格
)
USE stsc
INSERT INTO st_cp VALUES('2015', '晓帅歌', '女', 'oracle’,59) 2,修改数据,道理同上,我就不废话了,还是老规矩,来个例子。
例如:将视图st_cp中学号为2015的学生的总学分增加10分。
USE stsc
UPDATE st_cp SET tc=tc+10
WHERE stno = '2015'
3,修改数据。。。。
举例。删除学号为2014的记录
USE stsc
DELETE FROM st_cp
WHERE stno='2014' ------------------------修改视图和重命名视图-------------------------
关于图形化界面的操作,这里不介绍,很简单的,对吧。
下面说说关于使用SQL语句实现对是视图的修改和重命名
1,修改视图的定义:
语法格式:
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]
[ WITH <view_attribute>[,…n ] ]
AS select_statement
[ WITH CHECK OPTION ]
关于参数的定义解释,如上面创建视图的参数含义。
例如:修改视图st2_comm ,取消专业为通信的要求。
USE stsc
GO
ALTER VIEW st2_comm
AS
SELECT student.stno, student.stname, score.cno, score.grade
FROM student, score
WHERE student.stno=score.stno
WITH CHECK OPTION
GO
2,重命名视图:
语法格式:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
参数说明:
(不想打字了
)
例如:将视图st_view1命名st_view2
USE stsc
GO
EXEC sp_rename 'st_view1','st_view2'
GO
--------------------------删除视图---------------------------
使用SQL语句删除是视图的语法格式如下:
DROP VIEW [ schema_name . ] view_name [ ...,n ] [ ; ]
例如,删除视图st_view2:
USE stsc
DROP VIEW st_view2
~~~~~~~~~~~ 完 ~~~~~~~~~~~~~~~
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- 关于Ruby on Rails视图编写的一些建议
- PostgreSQL教程(十九):SQL语言函数