问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库应用这门课程第十二章SQL高级应用的知识点有哪些?

发布网友 发布时间:2022-04-25 00:55

我来回答

2个回答

懂视网 时间:2022-04-08 09:04

)索引(index)存储过程(proc)触发器(trigger)事务(trans)

●●●●●●●●●●●●下面将对这五大应用详细解●●●●●●●●●●●●

一 视图(view):只是用来快速展示查询数据:

主要内容:

l 视图的概念以及优缺点

   视图是一张虚拟表,他所展现的内容并没有存储在视图表中而是存储在他所引用的表中。

  优点; 简化操作;根据不同用户定制不同数据;合并分割数据;安全性;

  缺点:性能不高;数据修改受限;

l 单表视图 多表视图 基于视图的视图

创建视图 语法结构:

Create view 视图名[(column ,```````)]--column 列名

[with encryption ]

As

[With  check  option]--这条语句作用:1 规定在视图上做过的修改必须符合引用表的要求;2 通过视图修改的数据可以确保修改后的数据仍然可以通过视图看到。

注意点:视图中的查询语句中不能包含 order by/ compute /compute by 或者是into关键字

例子:1单表视图

创建视图  create view jiage 

  As    select *from Car where Price between 30 and 50

  go

 引用 :select *from jiage

2带有where 字段的视图

Create view view2

As 

Select 姓名,工资 from 职工 where 工资>1800

Go

3带有计算字段的视图

  

Go 

2 多表视图

 

3 带有聚合函数的视图

 

4更改原表中的字段名称

create view view1 (车名,车的价格) --将新设置的列名在此设置。

as

select name,price from Car where Name like‘%宝马%‘

go

select *from view1

 

l  利用sql 代码修改视图

alter view view1 (啥车,多钱) --可以同时更改原有视图中的列名

as

select name,price from Car where Name like ‘%奥迪%‘

go

select *from view1

l 利用sql 删除 视图

  《删除单张视图》 drop view 视图名  《删除多张视图》 drop view view1,view2~~~~

 《带有判断条件删除视图》

l 视图数据的查询

l 通过视图添加更新以及删除数据

 

二 索引(index)

创建索引:create [unique][clustered][nonclustered] index index-name1  on [table|view](列名 asc|desc)

Unique 创建唯一索引,即索引的键值不能重复,在列包含重复值是不能创建唯一索引;

Clustered 指明创建的索引为簇索引,如果此选项默认,则创建的为非簇索引。

Nonclustered 指明创建的索引为非簇索引

例子: 1创建普通索引create index idex-scl on 仓库备份(面积)

       2创建多列普通索引 create index idex-sc2 on 仓库备份(城市,创建时间)

       3 删除索引 drop index 表名.索引名    drop index 仓库备份.index1

                                          

 

三存储过程(proc)

主要内容:

l 存储过程的分类以及优点

   定义:为了完成特定功能的sql集合,编译后存储在服务器端数据库中,利用存储过程可以加速sql 语句的执行。

存储过程可以分为两类:系统存储过程和自定义存储过程。

系统存储过程:系统存储过程是在sql 成功安装后存在系统数据库master 中的,这些存储过程是以sp- 为前缀命名的,主要功能是在系统表中获取信息,系统管理员可以通过简单的调用系统存储过程完成复杂的管理工作,调用系统存储过程时在其他非master数据库中也可以调用 。

自定义存储过程:有用户自己定义完成特定功能,返回值只能表明返回值执行是否成功而且只能利用  想、execute 完成存储过程。

优点: 1 提高应用程序的通用性和可移植性 2 可以更有效的管理用户操作数据库的权限3 可以提高sql的速度 4 减轻服务器的负担。

 

l 创建并执行存储过程

   语法结构:

Create procedure  过程名

@ming 参数类型  output

~~

~~~

As

Begin    命令块 end

创建完成后利用execute 过程名   [参数值~~][output]

例子:1功能为求0-5之间的和

 alter proc proc3

   as

 declare  @sum int,@a int

 select  @a=0,@sum=0

   while @a<6

   begin

    set @sum=@sum+@a

   set @a=@a+1

   End

print ‘和是‘+cast(@sum as varchar)

 Go

Exectute proc3  

功能2 判断系统商品库存 以及购买者账户金额 决定交易是否进行

create proc shuiguo2

@idss varchar(10),

@buyer varchar(10),

@shuliang int

as

--判断库存

if (select numbers from Fruit where Ids=@idss)>@shuliang

begin

if(select price from Fruit where Ids=@idss )*@shuliang>(select account from Login where UserName=@buyer )

begin

--减库存

update fruit set numbers=numbers-@shuliang where Ids=@idss

--减余额

update Login set Account=Account-(select price from Fruit)*@shuliang where UserName=@buyer

end

else

begin

print‘余额不足,请充值!‘

end

end

else

begin

print‘抱歉,库存不足!‘

end

go

功能3 不带参数的存储过程 

4带输入参数的存储过程

5带有输入参数的数据查询功能的存储过程

6带有输入输出参数的存储过程

7带有登陆判断功能的存储过程

8 带有判断条件的插入功能的存储过程(exists)

9带有判断条件的删除功能的存储过程

10 带有判断条件的更新功能的存储过程

11加密存储过程 

Create proc 过程名

With encryption

As  命令块   Go

★ 查看存储过程的属性以及功能代码信息

execute sp_help proc3 --查询存储过程的属性信息

execute sp_depends proc1--查询存储过程所使用的数据对象的信息,如果没有引用或者加密会提示    没有引用.

execute sp_helptext proc3--查询存储过程的功能代码,如果加密后不能被查询到

select name from car where type =‘p‘--能共查找本表创建存储过程的名字和时间

l 修改存储过程的功能代码

   Alter proc 过程名

@参数   参数类型  ~~~~

As 

Begin   命令行   end

l 重命名存储过程

    Execute sp_rename  原名, 新名

l 删除存储过程

Drop proc 过程名1,过程名2~~ 同时可以删除多个过程

带有判断条件的删除存储过程(与if exists语句结合)

l 存储过程的自动执行和监控  

l Oracle 和DB2数据库中存储过程的区别

 

四 触发器(trigger)

l 触发器与存储过程的区别

1.存储过程是独立于表存在的,触发器需要依附某个表的某个操作。

2.存储过程需要使用名称去调用才能执行,触发器则在表的操作过程中自动被触发调用。

l 触发器的分类和作用

   定义; 触发器是一种特殊类型的存储过程,通过事件的触发来被执行,例如update delete drop alter drop等。   在sql 中有两种方法可以保持数据的完整性和有效性:约束和触发器,约束直接设置在表内只能执行一些比较简单的功能,而触发器可以执行比较复杂的过程。

作用: 1 可以调用存储过程 2强化数据条件约束 3跟踪数据库内数据的变化并判断数据变化是否符合数据库的要求 4级联和并行运行。

分类:DML 触发器  DDL触发器

  DML触发器:data manipulation language  又可以分为 事后触发器(after触发器)替代触发器 (instead of) 

  After 触发器 先执行变得增删改操作后在触发触发器 。

 Instead of 触发器 不执行表的增删改操作,它的这些操作只起到触发触发器的功能。

DDl 触发器用来执行数据库的管理任务。

注释:

触发器中两个临时表:inserted,deleted

这两个表是临时表,触发器执行完成后,会自动消失,再次触发会再次创建。

这两个表的结构与on后面的那表的结构是一样的(列名、列数、类型)。而且里面只有一条记录。

插入操作--把新增的数据放到inserted表中。

删除操作--把删除的数据放到deleted表中。

修改操作--把旧数据放到deleted表中,把新数据放到inserted表中。

对两个临时表的使用。

从两个临时表中把数据取出来放到变量中,以备后面的使用。

l 创建执行事后触发器

After  触发器注意事项:触发器名在同一数据库中是唯一的;可以利用with encryption 对触发器进行加密;  只能定义在数据表中不能定义在视图上;after触发器的动作只能是update delete insert 三种 其中的一种或者多种。

创建语法:

   Create trigger 触发器名  on  表名 for  insert[update  delete]

   As

   Begin

   命令  

   End

实例:运行触发器当数据表进行增删改时自动发送邮件

Create  trigger 触发器名 on表名 for insert[update ,delete]

As begin 

Execute xp_sendmail ‘邮箱地址’

end

l 创建与执行替代触发器

注意点:instead of触发器主要作用是使不可修改的视图能够支持修改。当然也可以对表进行操作。

构建语法:   Create trigger 触发器名 on 表名或者视图名 instead of  insert[delete update]

  As

Begin

命令块

End

Go

 

l 查看触发器的属性以及功能代码信息

l 修改触发器的功能代码

l 重命名和删除触发器

 Sp_rename 原名,新名  --重命名触发器

 Drop trigger 触发器名【123】--可以同时删除多个触发器

 

l 禁用和启用触发器

Alter table 表名  disable trigger 触发器名   禁用触发器

 Alter table 表名    enable trigger 触发器名   启用触发器

Alter table 表名    enable trigger 触发器名1,触发器名2  启用多个触发器触发器

Alter table 表名    enable trigger all  启用 这个表中的所有触发器

 

l 创建与执行ddl 触发器

DDL 触发器一般用于数据库的管理工作, 其触发事件为 create alter drop 开头的语句

创建DDl 触发器语法结构:

Create trigger 触发器名 on 服务器或者是数据库

For或者after create[drop alter ]

As  begin

命令块   

End

注意点: DDl 触发器没有替代触发器只有事后触发器,不同是作用于数据库还是服务器

 

 

l 修改和删除ddl 触发器

l 触发器的使用

 

 

 

 

五事务(begin trans  rollback返回 commit确定)

 

数据库的高级应用

标签:

热心网友 时间:2022-04-08 06:12

数据库应用这门课第十二章SQL高级应用的知识点包含章节导引,第一节事务(TRANSACTION),第二节锁(LOCK),第三节游标,第四节创建分区,第五节SQLServer服务体系,。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么退出夸克HD账号登录状态? 猫感冒了看兽医要多少钱 Pka 与 PH的区别及各自的应用领域 储干在公司是干什么的职位啊 2025数字博览会 岗位丨申万宏源证券研究所招聘实习生(可留用), 国海证券研究所+开源证 ... 用发酵粉蒸馒头如何蒸? 雷蛇现在的售后保修政策是怎样的有个鼠标双击了 安代驾好还是e代驾好 急需一篇科技小论文,六年级水平的`要快`谢谢啊`! 请推荐一本 SQL高级技巧的书? sql 高级查询,关于使用不同的表的字段 嵌入sql的高级语言称为 sql高级筛选查询 高级查询的sql语句该怎么写 SQL 高级问题 列举一些sql高级查询语句 AR,VR,MR,新兴科技在教育培训领域有哪些可能 SQL是高级语言吗? 怎样进行MR扫描? 请问sql高级查询应该注意的是什么?怎样才能写出高效果的语句?_百度... 谁有少女时代mr.mr这个系列的照片,全部人都要 陌陌求爱让我加qq,是真的的吗?朋友们给说说 求高达00第二季Mr .武士道驾驶过的机体 陌陌求爱可靠吗? 我用其他恋爱软件都不用交钱的,就陌陌求爱要钱? 简述mri图像特点 13个月会员费50元,深圳市肚兜科技有限公司代收的费用。有人知道这个是什么会员吗?谢谢了!! 机械革命MR X6S-M 这款怎么样小白求指教 我用其他恋爱软件都不用交钱的,就陌陌求爱要钱。比如百合网什么的都不用交钱。就这个要钱。陌陌真是掉钱 SQL 高级查询语句 Where sql语句高级查询? SQL高级模糊查询语句 高手进来 Sql语句高级查询,高分悬赏 SQL高级模糊查询 微博发送失败是什么原因? 各位高手:SQL高级查询怎么写?(要有说明以及注释越详细越好!)_百度知... 我的新浪微博无法评论也无法发布,一直显示发送失败是怎么回事啊 高级sql查询语句 sql数据库表的高级查询 用新浪微博发微博时显示发送失败,然后自动保存草稿重发也失败,怎么解决? SQL高级查询所有语法,比如模糊查询和嵌套查询 黑莓9000 使用新浪微博客户端没法上传图片 SQL的全称是什么?是当今应用最广泛的什么语言? 黑莓9000用新浪微博的问题~~谢谢了 新浪微博发送的聊天一直失败,发不出去 电脑上新浪微博发布不了信息! 黑莓9000下载新浪微博客户端失败,显示907 invalid cod 为了黑莓9000新浪微博都快疯了 黑莓9000新浪微博客户端如何上传照片