第9章 存储过程的创建和使用
- 格式:ppt
- 大小:141.00 KB
- 文档页数:54


第9章 多表联接
本章概述
在前面的两章中,我们已经学习了很多重要的数据查询技巧,但是他们都只是对某一张表的检出数据进行相关操作。结合第四章中学习的主键和外键等基础知识,我们在本章中学习多表联接查询。学习完本章后,学生能够更加深刻的理解关系数据库的设计原则,独立设计合理的符合范式的数据库表结构,并从这些表中,按照功能需求熟练检索出符合要求的数据并将其按照指定格式展现给用户或者应用程序。
本章是本书的重点之一,建议理论结合实际,多动手。
教学目标
了解使用表的别名
掌握使用联接组合两个或多个表中的数据,通常企业数据库程序员需要设计复杂的设计到多个表的查询
掌握使用UNION操作符把多个结果集组合成一个结果集的方法
教学重点:
JOIN的不同用法
UNION操作符的用法
教学难点
理解JOIN的不同用法
数据库程序设计 — SQL Server 2000 数据库程序设计 教师参考手册
2
教学资源
课本 知识点 9.1 使用表的别名
9.2 命名列
9.3 组合多个表中的数据
9.4 合并多个结果集
9.5 推荐操作
实验 实验9-1:联接表
实验9-2:使用UNION运算符合并结果集
习题 习题1-对应9.3组合多个表中的数据
习题2-对应本章综合知识
习题3-6为连续场景题,对应本章综合知识
教师光盘 实验文件 Labfiles\allfiles.exe
习题解答 tPrep\answer.doc
教学指导手册包 新版幻灯片 \Powerpnt\PPT_2071_2073_09.ppt
先修知识
在正式开始学习本章内容以前,学生须具备下列知识基础。
知识基础 推荐补充
本书第四章至第七章内容
建议学时
课堂教学(4课时)+实验教学(4课时)
教学过程
第9章 多表联接
3
9.1 使用表的别名
教学提示 :
本节主要达到一个目的。
掌握使用表的别名的方法。(略讲)
MySQL变量、函数、存储过程的使⽤
MySQL语句:
1.
2.
3.
4.
⼀、变量
在mysql⽂档中,mysql变量可分为两⼤类,即系统变量和⽤户变量。
但根据实际应⽤⼜被细化为四种类型,即、、和。
1、局部变量
mysql局部变量,只能⽤在begin/end语句块中,⽐如存储过程中的begin/end语句块。其作⽤域仅限于该语句块。
-- declare语句专门⽤于定义局部变量,可以使⽤default来说明默认值
-- DECLARE 变量名 [,variable_name...] 数据类型 [DEFAULT value];
declare age int default 0;
-- 局部变量的赋值⽅式⼀
-- SET 变量名 = 表达式值 [,variable_name = expression ...]
set age=18;
-- 局部变量的赋值⽅式⼆
select StuAge
into age
from demo.student
where StuNo='A001';
2、⽤户变量
mysql⽤户变量,mysql中⽤户变量不⽤提前申明,在⽤的时候直接⽤“@变量名”使⽤就可以了。其作⽤域为当前连接。
1 -- 第⼀种⽤法,使⽤set时可以⽤“=”或“:=”两种赋值符号赋值
2 set @age=19;
3
4 set @age:=20;
5
6 -- 第⼆种⽤法,使⽤select时必须⽤“:=”赋值符号赋值
7 select @age:=22;
8
9 select @age:=StuAge
10 from demo.student
11 where StuNo='A001';
3、会话变量
mysql会话变量,服务器为每个连接的客户端维护⼀系列会话变量。其作⽤域仅限于当前连接,即每个连接中的会话变量是独⽴的。
1 -- 显⽰所有的会话变量
2 show session variables;
3
同步练习题
第1章 数据库基础知识
一、单项选择题
1. 通常所说的数据库系统(DBS)、数据库管理系统(DBMS)、和数据库(DB)三者之间的关系是
A. DBMS包含DB和DBS B. DB包含DBS和DBMS
C. DBS包含DB和DBMS D.三者无关
答案:A
2.数据是信息的载体,信息是数据的
A. 符号化表示 B. 载体
C. 内涵 D. 抽象
答案:C
3. 下列说法不正确的是
A. 数据库避免了一切数据重复 B. 数据库减少了数据冗余
C. 数据库数据可为经DBA认可的用户共享 D. 控制冗余可确保数据的一致性
答案:A
4.在数据库中,产生数据不一致的根本原因是
A. 没有严格保护数据 B. 数据存储量太大
C. 数据间联系弱 D. 数据冗余
答案:D
5.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为
A. 数据定义功能 B. 数据管理功能
C. 数据操纵功能 D. 数据控制功能
答案:C
6.E-R模型是数据库设计的工具之一,它一般适用于建立数据库的
A. 概念模型 B. 结构模型
C. 物理模型 D. 逻辑模型
答案:A
7. 当实体中有多个属性可作为键而选定其中一个时,称为该实体的
A. 外部键 B. 候选键
客户定制业务ICD平台有数据表结构如下:
录音文件信息表
字段名 类型 中文名 缺省值 描述
SerialNo VARCHAR2(20) 流水号 业务流水号
FilePath VARCHAR2(200) 录音文件路径 录音文件路径和文件名
Partid Varchar2(4) 分区字段 格式为MMDD
StaffNo VARCHAR2(10) 业务代表工号 录音的业务代表工号
RecordTime DATE 录音时间 记录录音时间
说明:记录录音文件的文件信息。每个业务可产生一个或多个录音文件。
索引:
Ix_RecordFile_SerialNo (SerialNo)
数据量: 约800万
按每天2万个业务需要记录录音文件,每个业务需要记录4个录音文件估算,保存三个月数据约800万数据量,由于此表数据量不断累计,数据库任务定时删除3个月以前数据。
1、 写一个存储过程,向表中随机插入1000条记录
SerialNo:使用序列方式,自增长。
Filepath:使用随机插入6个字母
Partid: 使用随机4位数字
StaffNo:从YTCZ060001……. YTCZ060020 中随机抽取
RecordTime:从2006年8月4日之前的6个月中随机抽取。
2、 写一个程序块,循环调用500次此存储过程,保证数据表中存储50万条记录。
3、 查找FilePath相同的行,并删除FilePath相同的重复记录(保存一条时间最近记录)
4、 写一个存储过程,删除3个月前的数据。
5、 写一个触发器,每月末最后一天中午12点整,系统提示执行“删除3个月前数据”的存储过程。
答:CREATE TABLE RecordFile (
SerialNo VARCHAR2(20),
FilePath VARCHAR2(200),
Partid VARCHAR2(4),