第 7 章扩展实践教学 SQL Server 数据库项目化教程 ( 主编 : 李蕾 北京师范大学出版社 ) 扩展实践 以随书赠送的素材库中的数据库实例 : 教务管理系统 为例, 要求 : 附加 教务管理系统 数据库至 SQL Server 2008 数据库服务器中 扩展实践 7-1 在教务管理系统数

Similar documents
untitled

SQL Server SQL Server SQL Mail Windows NT

一步一步教你搞网站同步镜像!|动易Cms

untitled

Oracle高级复制冲突解决机制的研究

第4单元 创建数据类型和表

<4D F736F F D20BBB7BEB3D0C5CFA2CFB5CDB3CAFDBEDDBFE2B7C3CECABDD3BFDAB9E6B7B6A3A8B1A8C5FAB8E5A3A E646F63>

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

幻灯片 1

1、系统功能结构图

untitled

Chapter 1: Introduction

RUN_PC連載_12_.doc

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

目錄 C ontents Chapter MTA Chapter Chapter

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

经 济 高 速 增 长 和 其 后 又 比 其 他 发 达 资 本 主 义 国 家 更 为 顺 利 地 克 服 了 石 油 危 机 的 冲 击, 使 日 本 的 市 场 经 济 体 制 在 7 0 ~ 8 0 年 代 赢 得 了 国 际 社 会 的 广 泛 赞 誉 ( 其 间 虽 有 欧 美 国 家

2015 TB-1-06.indd

目錄

ebook45-5

作业参考答案

试卷代号 : 座位号 E 口 中央广播电视大学 学年度第一学期 " 开放本科 " 期末考试 数据库应用技术试题 题号 一 二 三 l 四 五 总分 分数 I I I I I I I 2013 年 1 月 得分 评卷人 I I I 一 单项选择题 { 每

SP_ SP_03 JAVA...6 SP_10 SQL...8 SP_ SP_ SP_ SP_ SP_ SP_ SP_ SP_04.NET...33 SP_02 C...37 SP_05

第二章 关系数据库

幻灯片 1

Oracle 4

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

回滚段探究

untitled

123

f2.eps

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

PowerPoint Presentation


Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

untitled

基于UML建模的管理管理信息系统项目案例导航——VB篇

untitled

未命名

SCC11課文

1. 概 述 1.1 扫 描 对 象 序 号 1 IP 地 址 域 名 1.2 漏 洞 等 级 分 布 风 险 类 型 数 量 高 风 险 1 中 风 险 5 低 风 险 4 信 息 类 4 7% 29% 高 风 险 36% 中 风 险 低 风

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

四川省普通高等学校

穨ac3-4.PDF

ch7.PDF

习题1

プリント

Oracle数据库实验指导书

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

第1套

基于T-SQL的存储过程创建

标题

试卷代号 : 1256 座位号巨口 国家开放大学 ( 中央广播电视大学 ) 2016 年春季学期 开放本科 期末考试 数据库应用技术试题 2016 年 7 月 题号 分数 总分 l ee 得分评卷人 一 单项选择题 ( 每个题只有一个答案是正确的. 请将正确的答案坡 写到括号内 本题共 2 个小题,

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

ebook46-23

untitled

Microsoft Word - SDD.doc

季刊9web.indd

4. 设有学生表 ( 学号, 姓名, 所在系, 身份证号 ) 和系表 ( 系名, 系办公地点儿下列关于两个 表的引用关系的描述, 正确的是 ( ) A. 设置学生表中的 " 所在系 " 为外键 B. 设置系表中的 " 系名 " 为外键 C. 设置学生表的学号为主键 D. 元法表达这两个表的引用关系

天津天狮学院关于修订2014级本科培养方案的指导意见

课程名称:数据库系统概论

Microsoft Word - 扉页.doc

文档标题

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

starter_pdfmerge

プリント

Microsoft Word - 数据库实验2007.doc

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

预备篇

项目 3 创建和管理表 任务实现 Office Visio PK 3 FK FK1 3.1 相关知识 SQL Server 一 制订表规划 1. 表要存储什么对象 2. 表中每一列的数据类型和长度 059


(Microsoft PowerPoint - UML\302\262\244\266_use case.ppt)

目 录

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

目錄... ivv...vii Chapter DETECT

课程名称:数据库系统概论

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

epub83-1

Go构建日请求千亿微服务最佳实践的副本

,4 :20..,5 ( )..,1. :..,2..,2..,10..,3.., ,1..,3..,12..,1..,2 :..,..,2 :..,3..,6..,4 ( )..,4.,.,3 6..,3 :..,3..,1 :..

高中信息技术课程标准

幻灯片 1

第九章 数据库的安全性和完整性

ebook 165-5

2006年暑期工作安排

Microsoft Word 年9月二级VF真卷.doc

第3章.doc

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

USING MAYA ANIMATION Keyset set Maya sets partitions MEL MEL copykey cutkey pastekey scalekey snapkey keytangent bakeresults MEL Command Reference Edi

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

untitled

FileMaker 15 ODBC 和 JDBC 指南

5. 关于关系代数中选择运算的说法, 正确的是 ( ) A. 选择运算是从行的方向选择集合中的数据, 选择运算后的行数有可能减少 B. 选择运算是从行的方向选择集合中的数据, 选择运算后的行数不变 c. 选择运算是从列的方向选择集合中的若干列, 选择运算后的列数有可能减少 D. 选择运算是从列的方向

10

untitled

Transcription:

扩展实践 以随书赠送的素材库中的数据库实例 : 教务管理系统 为例, 要求 : 附加 教务管理系统 数据库至 SQL Server 2008 数据库服务器中 扩展实践 7-1 在教务管理系统数据库的 学生信息 表中定义一个基于 set 赋值语句, 将学生信息统计查询出的学生总人数赋值给局部变量 @num, 并用 print 语句输出 declare @num int set @num=(select count( 学号 ) from 学生信息 ) print @num 扩展实践 7-2 在教务管理系统数据库的 学生信息 表中定义一个基于 set 赋值语句, 将学生信息查询出的所有女生赋值给局部变量 @ssex, 并用 select 语句输出 declare @ssex varchar(2) set @ssex=' 女 ' select * from 学生信息 where 性别 =@ssex 扩展实践 7-3 在教务管理系统数据库的 学生信息 表中定义一个基于 set 赋值语句, 检索出班级编号为 20021340000104 的所有男生 ( 提示 : 将 20021340000104 赋值给班级 编号, 将男生赋值给 @ssex), 并用 select 语句输出 declare @clsnum varchar(14) declare @ssex varchar(2) set @clsnum='20021340000104' set @ssex=' 男 ' select * from 学生信息 where 班级编号 =@clsnum and 性别 =@ssex 扩展实践 7-4 存储过程综合实训 ( 此部分以 xsxk 数据库为例 ) (1) 创建一个存放学生表中所有学生信息的存储过程, 包含学号 姓名 性别 年龄 籍 贯 所在班级 电话 use xsxk go create proc proc_1 select sno,sname,ssex,2018-year(birthday)'sage',origin,cls,tel from s exec sinfo (2) 创建一个指定学生学号的选修课程信息, 包含课程编号 课程名 学分

create proc proc_2 @sno nchar(10) select sc.cno,cname,credit from sc,c where c.cno=sc.cno and sno=@sno exec proc_2 '2011010101' (3) 创建一个指定学生学号的未选修课程信息, 包含课程编号 课程名 学分 create proc proc_3 @sno nvarchar(10) select cno,cname,credit from c where exists(select cno from sc where sno=@sno and c.cno=sc.cno) exec proc_3 '2011010101' (4) 创建一个指定班级的学生成绩的存储过程 proc_cj1, 包含学号 姓名 课程名 成绩 create proc proc_cj1 @cls nvarchar(20) select sc.sno,sname,cname,score from s,sc,c where s.sno=sc.sno and c.cno=sc.cno and cls=@cls exec proc_cj1 '11 网络技术 ' (5) 创建一个指定学生学号的学生成绩存储过程 proc_cj2, 包含课程编号 课程名称 成 绩 create proc proc_cj2 @sno nvarchar(10) select sc.cno,cname,score from sc,s,c where c.cno=sc.cno and s.sno=sc.sno and sc.sno=@sno exec proc_cj2 '2011010101' (6) 创建一个指定学生班级和性别的存储过程 proc_ssex, 包含学号 姓名 性别 年龄 籍贯, 所在班级 电话 create proc proc_ssex @cls nvarchar(20), @ssex nvarchar(2) select sno,sname,ssex,2018-year(birthday)'sage',origin,cls,tel from s

where cls=@cls and ssex=@ssex exec proc_ssex '11 网络技术 ',' 男 ' (7) 创建一个指定学生姓名 ( 值为模糊匹配 ) 的存储过程 proc_sname, 用来显示学生的学 号 姓名 性别 年龄 电话 邮箱等 create proc proc_sname @sname char(6) select sno,sname,ssex,2018-year(birthday)'sage',tel,email from s where sname like'%'+@sname+'%' exec proc_sname ' 小 ' (8) 创建一个统计学生信息表中指定班级名称的学生人数的存储过程 proc_num create proc proc_num @cls nvarchar(20), @num int output select @num=(select COUNT(sno) from s where cls=@cls) declare @xsnum int exec proc_num '11 网络技术 ',@xsnum output select @xsnum' 指定班级人数 ' (9) 创建一个用来显示课程信息的存储过程 proc_c create proc proc_c select * from c exec proc_c (10) 创建一个用来显示指定学号的学生成绩不及格的存储过程 proc_cj3 create proc proc_cj3 @sno nvarchar(10) select * from sc where sno=@sno and score<60 exec proc_cj3 '2011010104' (11) 创建一个指定班级, 指定籍贯的学生信息的存储过程 proc_cls, 包含学号 姓名 性别 年龄 电话等 create proc proc_cls @cls nvarchar(20), @origin nchar(10)

select sno,sname,ssex,2018-year(birthday)'sage',tel from s where cls=@cls and origin=@origin exec proc_cls '11 网络技术 ',' 北京 ' (12) 创建一个家庭住址 ( 值为模糊匹配 ) 的存储过程 proc_address, 用来显示学生的学 号 姓名 性别 年龄 电话等 create proc proc_address @address nvarchar(50) select sno,sname,ssex,2018-year(birthday)'sage',tel from s where address like '%'+@address+'%' exec proc_address ' 杭州 ' 扩展实践 7-5 创建一个存储过程 proc_getstuinfo, 用于返回 教务管理系统 数据库上某个班级 (20021340000104) 中包含的学生信息, 通过为同一存储过程指定不同的班级编号, 返回不同的学生信息 /* 参数的定义 */ create procedure proc_getstuinfo @clsnum varchar(14) select 学号, 姓名, 性别, 班级编号, 年级, 籍贯 from 学生信息 where 班级编号 =@clsnum /* 按位置传递参数 */ execute proc_getstuinfo '20021340000104' /* 通过参数名传递参数 */ execute proc_getstuinfo @clsnum='20021340000104' 扩展实践 7-6 建立一个 insert 触发器 trig_ 新生注册, 当新学生注册的时候, 在 教务管理系统 的 学生信息 表中插入一条学生信息记录的同时, 更新 班级信息 的班级人数 /* 编写 insert 触发器程序 */ use 教务管理系统 go create trigger trig_ 新生注册 on 学生信息 after insert

begin update 班级信息 set 人数 = 人数 +1 where 班级编号 in(select 班级编号 from inserted) end /* 触发 insert 触发器, 执行效果如图 7-15 所示 */ select 人数 ' 新生注册前的班级人数 ' from 班级信息 where 班级编号 insert into 学生信息 ( 学号, 姓名, 班级编号, 性别 ) values('101011',' 章红 '','20001340010102',' 女 ') select 人数 ' 新生注册后的班级人数 ' from 班级信息 where 班级编号 select 学号, 姓名, 班级编号, 性别 from 学生信息 where 班级编号 图 7-15 运行 insert 触发器执行结果 扩展实践 7-7 建立一个 delete 触发器 trig_ 学生离校, 当学生离校的时候, 在 教务管理系统 的 学生信息 表中删除一条指定学生信息记录的同时, 更新 班级信息 的班级人数 /* 编写 delete 触发器程序 */ use 教务管理系统 go create trigger trig_ 学生离校 on 学生信息 after delete begin update 班级信息 set 人数 = 人数 -1 where 班级编号 in(select 班级编号 from deleted)

end /* 触发 delete 触发器, 执行效果如图 7-16 所示 */ select 人数 ' 学生离校前的班级人数 ' from 班级信息 where 班级编号 delete from 学生信息 where 学号 ='101010' select 人数 ' 学生离校后的班级人数 ' from 班级信息 where 班级编号 select 学号, 姓名, 班级编号, 性别 from 学生信息 where 班级编号 图 7-16 运行 delete 触发器执行结果 扩展实践 7-8 在 xsxk 数据库, 创建一个与 s 表结构一致并包含 s 表所有数据的新表 temp_s, 声明一个名为 信息删除 _cur 的游标, 定位删除 temp_s 表中当前行数据 /* 创建新表 temp_s*/ select * into temp_s from s /* 查看新建的 temp_s 表中的数据 */ select * from temp_s /* 声明游标 */ declare 信息删除 _cur cursor for select * from temp_s /* 打开游标 */ open 信息删除 _cur /* 提取数据 */ fetch from 信息删除 _cur delete from temp_s where current of 信息删除 _cur /* 查看结果 */ select * from temp_s /* 关闭游标 */ close 信息删除 _cur deallocate 信息删除 _cur

扩展实践 7-9 以上题的 temp_s 为参考操作数据, 在 xsxk 数据库中声明一个名为 学生地址 _cur 的游标, 该游标返回的结果为 temp_s 表中 籍贯 = 北京 的学生的相关信息 /* 声明游标 */ declare 学生地址 _cur cursor for select sno,sname,ssex,cls,origin from temp_s where origin=' 北京 ' /* 打开游标 */ open 学生地址 _cur /* 提取游标 */ fetch next from 学生地址 _cur /* 关闭游标 */ close 学生地址 _cur deallocate 学生地址 _cur