当前位置: 首页 > news >正文

用花生做网站个人永久免费自助建站

用花生做网站,个人永久免费自助建站,wordpress怎么打删除线,手机网站开发视频前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍数据库中有关视图的知识,参考学校作业. 金句分享:…

前言

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨
🐻推荐专栏: 🍔🍟🌯 c语言初阶
🔑个人信条: 🌵知行合一
🍉本篇简介:>:介绍数据库中有关视图的知识,参考学校作业.
金句分享:
✨找不到答案的时候,就找自己。✨

目录

  • 前言
  • 视图的定义:
  • 一、创建视图
  • 二、查询视图的创建信息及视图中的数据
  • 三.修改视图的定义
  • 四.视图的更名与删除
  • 五.管理视图中的数据

视图的定义:

定义:
根据用户的各种需求重新构造表的数据结构,这种数据结构就是视图.
视图是从一张或多张表中导出来的表,它不是真实存在的基本表,而是一张虚表,并没有像基本表一样存储在数据库中,而是相当于一个查询结果集合保存一样.

基本概念:
视图同其它基本表一样,也包含了带有各种名称和列的数据行,对表能进行的查询,插入修改对视图同样可以,并且视图是动态生成的,对依赖的基本表中的数据修改,视图也会自动更新.

视图的优缺点:
优点:

1)安全性:
用户通过视图只能查看基本表中的部分数据,未符合要求的数据并没有被筛选出来,对于其它数据用户既看不到也操作不了.数据库授权命令可以限制用户对数据库检索到特定的数据库对象中上,但不能细致到限制为数据库中特定的行和列上.

例如:
基本表为:(1)班全体学生
视图为:年龄大于18的男学生

当我们设置号权限后,用户就只能查看符合要求的男学生信息,对于不符合条件的男学生和女学生的信息则既看不到,也操作不了.

2)简单性:
可以根据不同的需求创建不同的视图,简化用户的操作.

3)逻辑数据独立性:
视图可以在应用程序与数据表之间,起到让双方在一定程度上独立的作用.
即程序可以建立在视图上,当数据表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而使应用程序可以不改变.反之,当应用程序发生变化时,也可以在表上修改视图,屏蔽应用的变化.

缺点::

1)影响查询效率:
由于数据库,管理系统必须把对视图的查询转化为对基本表的查询,当一个视图是由复杂的多个表连接定义时,即使对视图进行一个简单的数据查询也需要转变为一个复杂的多表查询,耗费一定的时间.

2)修改受限制:
对于复杂的视图,视图中的部分来源表中有数据不能被修改将导致视图也不能被修改.

一、创建视图

范例中的数据库在前几篇文章有提到,想要获取数据库中的数据可以翻看前几篇复制获取数据.
数据库和数据表的创建
对表添加数据

			student表
			course表
			sc表

创建视图的格式:

create view 视图名
as
查询语句

🌰栗子
(1)创建一个名为stuview2的水平视图,从数据库student infoStudent表中查询出性别为“”的所有学生的资料。
并在创建视图时使用with check option。(注:该子句用于强制视图上执行的所有修改语句必须符合由select语句where中的条件。)
解释:
WITH CHECK OPTION的作用?

1.对于update,有with check option,要保证update后,数据要被视图查询出来;
2.对于delete,有无with check option都一样;
4.对于insert,有with check option,要保证insert后,数据要被视图查询出来;
5.对于没有where 子句的视图,使用with check option是多余的。

语句:

create view stuview2--表示创建一个名为stuview2的视图
as
select * from student where sex='男'
with check option

查看视图:

语句:

select * from stuview2

执行结果:

在这里插入图片描述

(2)创建一个名为stuview3的投影视图,从数据库student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时。并在创建时对该视图加密。(提示:用with ENCRYPTION关键子句)
语句:

create view stuview3 with ENCRYPTION--创建视图并加密
as
select Cno , Cname , Total_perior from course where credit>3

(3)创建一个名为stuview4的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。

create view stuview4
as
select * from sc 
where sno=(
select sno from student
where classno='051' and sex='女')

(4)创建一个名为stuview5的视图,能检索出每位选课学生的学号、姓名、总成绩。

create view stuview5
as
select student.sno 学号,sname 姓名 ,Grade 成绩 from student,sc
where student.Sno=sc.sno

二、查询视图的创建信息及视图中的数据

(1)查看视图stuview2的创建信息。

a.通过系统存储过程sp_help查看

sp_help stuview2

执行结果:

b.通过查询表sysobjectsa、
–b

select so.name , sc.name , sc.colid, st.name
from sysobjects so , syscolumns sc, systypes st 
where so.id = sc.idand so.xtype = 'v'and so.status >= 0and sc.xtype = sT.xusertypeand so.name = 'stuview2'
order by so.name,sc.colorder

执行结果:

(2)通过查看视图的定义脚本。

a.通过系统存储过程sp_helptext

sp_helptext stuview2

执行结果:

b.通过查询表sysobjects和表syscomments
(提示:视图的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列)

select so.name , sc.text
from sysobjects so, syscomments sc where so.id = sc.id
and so.xtype = 'v'and so.status >= 0
and so.name = 'stuview2'

执行结果:

在这里插入图片描述

3)查看加密视图stuview3的定义脚本。

sp_helptext stuview3

执行结果:

在这里插入图片描述

三.修改视图的定义

(1)修改视图stuview3使其从数据库Student_info的student表中查询总学时大于60的所有课程的课程号、课程名、学分。(提示:若视图原具有加密保护,修改视图时若未加with encryption子句,则修改后的视图不再加密。)

alter view stuview3
with encryption
as
select Cno ,Cname , credit from course 
where Total_perior>60

查看视图:

select * from stuview3

四.视图的更名与删除

1)用系统存储过程sp_rename将视图stuview4更名为stuv4。

sp_rename stuview4, stuv4

运行结果:
在这里插入图片描述

五.管理视图中的数据

1)从视图stuview2查询出班级为“051”、姓名为“张虹的资料。

select * from stuview2
where classno='051' and sname='张虹'

2)向视图stuview2中插入一行数据,内容为:

学号姓名学号性别家庭住址入学时间出生年月
20110009赵小林054南京2011/09/011993/01/09

语句:

insert into stuview2
values ( '20110009','赵小林','男','1993/01/09', '054','2011/09/01','南京','CH ','201111')
--查看视图:
select * from stuview2

可以观察到视图中已经有了赵小林的信息.
3)查询student,查看表中的内容有何变化。Student表中是否也已有“赵小林”的信息
语句:

select * from student--查询student表

在这里插入图片描述

4)向视图stuview2中插入一行数据,内容为:

学号姓名学号性别家庭住址入学时间出生年月
20110010赵静054南京2011/09/011993/11/09

问题:能成功插入吗?原因何在?
在这里插入图片描述

答案:
不能插入,原因是目标视图或者目标视图所跨越的某一视图指定了WITH CHECK OPTION,而该操作的一个或多个结果行又不符合CHECK OPTION 约束。
在这里插入图片描述

5)修改视图stuview2中的数据。

a.将stuview2中054班、姓名为“赵小林”同学的家庭地址改为“扬州市”。

update stuview2
set Home_addr='扬州市'
where Home_addr='南京' and sname='赵小林' and classno='054'

b.查询student,查看表中的内容有何变化student表中的赵小林的家庭住址已发生了改变

select * from student

运行结果:

在这里插入图片描述

6)从视图stuview1中将班级为054、姓名为“赵小林”同学删除。

delete from stuview2
where sname=’赵小林’’

好了,今天的SQL Server知识就分享到这里了.下一篇将会是SQL server中存储过程的介绍,
希望这篇文章对大家有帮助。欢迎小伙伴们私信提意见和提问哦!
最后,小伙伴们的点赞就是给牛牛最大的支持,能不能给牛牛来一个一键三连呢?谢谢支持。
在这里插入图片描述

http://www.hkea.cn/news/812308/

相关文章:

  • 化妆品可做的团购网站有哪些seo研究中心南宁线下
  • 网站空间域名是什么做电商必备的几个软件
  • 软件公司运营是做什么的seo公司运营
  • 专业云南做网站福州短视频seo服务
  • 网站开发技术期中试题电商培训机构排名
  • 网站设计连接数据库怎么做如何进行百度推广
  • 日本网站图片做淘宝代购网络营销促销方案
  • 网站开发导航栏网站制作的费用
  • 盐城网站设计网站流量统计工具
  • 网站上如何做相关推荐郑州建网站的公司
  • 漂亮大气的装潢室内设计网站模板 单页式html5网页模板包前端优化
  • 论坛网站开发开题报告青岛百度推广多少钱
  • 文山做网站如何优化百度seo排名
  • 上海展陈设计公司有哪些成都网站seo性价比高
  • 小韩网站源码360广告投放平台
  • 网站地图的重要性短信广告投放软件
  • 搭建直播网站需要怎么做教育培训机构平台
  • 濮阳网站网站建设网络营销策划是什么
  • 做新闻网站需要什么手续河北软文搜索引擎推广公司
  • 广州网站建设联系电话seo推广的公司
  • 一起做网店一样的网站关键词歌曲免费听
  • 负责网站建设推广本周热点新闻事件
  • 快速做网站优化谷歌在线浏览入口
  • 苏州企业网站建设开发与制作2023年6月份又封城了
  • 用java做网站可以吗吉林seo刷关键词排名优化
  • 网站建设面试google广告投放技巧
  • 整形网站整站源码如何让关键词排名靠前
  • php网站后台搭建外贸网站大全
  • 建 新闻 网站营销战略有哪些内容
  • 营销融合app网站seo招聘