- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
连接存储过程
练习:请完成以下的查询操作
--1、统计每个学生选修的课程的成绩。
连接查询的含义:
从多个相关的表中查询数据(用from子句实现)
连接运算:
把多个表中的行按给定的条件进行拼接从而形成新表。
连接运算的类型:
内连接
语法格式:
select 列名表
from 表1 [inner] join 表2 on 表1.列名1=表2.列名2
外连接(左外连接、右外连接、全外连接)
含义:
在内连接中,只把两个表中满足条件的行显示出来。
而在外连接中,可以将不满足条件的行也显示出来。
外连接的类型
左外连接:保留左边表中不匹配的行。
select 列名表
from 表1 left [outer] join 表2 on 表1.列名1=表2.列名2
右外连接:保留右边表中不匹配的行。
select 列名表
from 表1 right [outer] join 表2 on 表1.列名1=表2.列名2
全外连接:保留两表中不匹配的行。
select 列名表
from 表1 full [outer] join 表2 on 表1.列名1=表2.列名2
自连接
含义:
将同一个表的不同行连接起来。
自连接可以看作一张表的两个副本之间进行的连接。
要求:
在自连接中,必须为表指定两个别名,使之在逻辑上成为两张表。
--2、查询不及格学生的学号、姓名、课程名称和成绩信息。(要求用内连接完成)
--思考:若0分表示缺考,请查询不及格学生的学号、姓名、课程名称和成绩信息(缺考不显示)。
--3、查询平均分低于60的学生学号和姓名。
--4、查询最高分在80分以上的学号、姓名、联系电话。
--5、查询需要组织补考的课程及补考人数。
--6、查询每门课程的分数情况,及最低分、最高分和平均分。
思考:查询至少有2门课程的成绩在80分以上的学生基本信息
存储过程的含义
是一组预先写好的能实现某种功能的T-SQL程序,是存储在服务器上的预编译集合。
存储过程是一种独立的数据库对象,在服务器上创建和运行。
类似于编程语言中的过程或函数。
系统存储过程定义在系统数据库master中,其前缀是sp_。
——1.简单存储过程
创建格式:
create proc[edure] 存储过程名
as
SQL语句
相应的执行格式:
[exec] 存储过程名
--7、创建简单存储过程P1,统计每个学生选修的课程数。
Create proc p1
As
Select 学生信息表。学号,姓名,count(课程编号)as 课程数
From 学生信息表,教学成绩表
Where 学生信息表。学号=教学成绩表。学号
Group by学生信息表。学号,姓名
Go
Exec p1
--8、创建带输入参数的存储过程P2,输入教师姓名,查询所教授的课程。
drop proc p2
@qq char(10)
As
Select distinct姓名,名称,
From 教师信息表,数学成绩表,课程信息表
Where 教学成绩表。教师编号=教室信息表。编号 and 教学成绩表。课程编号=课程信息表。编号
And 姓名=@qq
Go
Exec p2’杜老师’
--9、创建带输入和输出参数的存储过程P3,输入课程名称,显示最高分。
Create proc p3
@pp char(30),@kk int output
As
Select @kk=max(分数)
From 课程信息表,教学成绩表
Where教学成绩表。课程编号=课程信息表。编号 and 名称=@pp
Go
Declare @11 int
Exec p3 ‘实用英语’,@11 output
Print @11
触发器
含义
是一种表或视图执行insert、 delete、update操作时,被系统自动执行的特殊的存储过程。
创建触发器的目的
对表实现复杂的数据完整性约束,以防止不正确的操作。
按引起触发的事件不同,分为:
insert触发器
delete触发器
update触发器
按触发器激活的时机不同,分为:
后触发器
只有执行了insert、 delete、update操作后,才激发的触发器。
替代触发器
不执行命令所定义的insert、 delete、update操作,而仅执行触发器中定义的代码。
每个触发器被激活时,系统都为它自动创建两个临时表:
inserted表
deleted表
临时表的特点:
是逻辑表,由系统来维护,用户不能对它们进
文档评论(0)