资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
武汉大学计算机学院数据库课程组8.1 SQL Server 2005 系统概述8.2 数据库创建与程序设计8.3 数据库应用系统设计例第8章 SQL Server数据库应用武汉大学计算机学院数据库课程组 8.1 SQL Server 2005 系统概述n1. SQL Server 2005的组成集成 服务 报表 服务 分析服务数据库 引擎服务代理复制全文搜索通知服务图8-1 SQL Server 2005的组成武汉大学计算机学院数据库课程组 8.1 SQL Server 2005 系统概述n2. SQL Server 2005的组件服务器组件 数据库引擎分析服务工具 报表服务工具通知服务工具 集成服务工具等 连接 组件 DB_Library ODBC 驱动 程序 OLD_DB 客户机 组件 SQL Server管理控制器SQL Server 配置管理器数据库引擎优化顾问商业智能开发平台SQL Server分析器 图8-2 SQL Server系统组件分布图武汉大学计算机学院数据库课程组 8.1 SQL Server 2005 系统概述n3 .SQL Server 2005的工具武汉大学计算机学院数据库课程组 8.2 数据库创建与程序设计n1. 数据库的创建n常使用SQL Server管理控制器建立数据库。【例8.1】n2 表的创建 n(1)student表。该表用于存放所有学生记录nstudent(sno,sname,ssex,sbirthday,sclass)n(2)teacher表。该表用于存放所有教师记录nteacher(tno,tname,tsex,tbirthday,prof,depart)n(3)course表。该表用于存放所有课程记录ncourse(cno,cname,tno)n(4)score表。该表用于存放所有学生成绩记录nscore(sno,cno,grade)n两种创建数据库表的方法,一种是利用SQL Server管理控制器; 另一种是利用T-SQL语句中的CREATE TABLE命令。n【例8.2】 武汉大学计算机学院数据库课程组 8.2 数据库创建与程序设计n3.T-SQL程序基础n1常规标识符与数据类型n在SQL Server中,标识符就是指用来定义服务器、数据库、数据 库对象和变量等的名称。可以分为常规标识符和分隔标识符。T- SQL中不区分大小写字母。n数据类型包括系统数据类型和用户自定义数据类型。n2. 变量n在SQL Server中,变量分为局部变量和全局变量。n全局变量记录了SQL Server的各种状态信息。全局变量的名称前 面为“”,由系统定义和维护。n局部变量前面有一个at符号(),由用户定义和使用,一般格 式如下:nDECLARE 变量名 数据类型 n在SQL Server中,一次可以定义多个变量。n例如:DECLARE f float,cn char(8) 武汉大学计算机学院数据库课程组 8.2 数据库创建与程序设计n3. 控制流语句nT-SQL提供称为控制流的特殊关 键字,用于控制T-SQL语句、语 句块和存储过程的执行流。这 些关键字可用于T-SQL语句、批 处理和存储过程中。n4执行T-SQL语句n在SQL Server管理控制器中, 用户可在全文窗口中输入T-SQL 语句,执行语句并在结果窗口 中查看结果。可以使用SQL Server管理控制器交互式地执 行T-SQL语句。控制流语语 句说说明BEGINEND定义语 句块 IFELSE条件处理语句 CASE分支语句 WHILE循环语 句 GOTO无条件跳转语 句 WAITFOR延迟语 句 BREAK跳出循环语 句 CONTINUE重新开始循环语 句武汉大学计算机学院数据库课程组 8.2 数据库创建与程序设计n4.存储过程:是在数据库服务器端执行的一组T-SQL语句的集合, 经编译后存放在数据库服务器端。n存储过程作为一个单元进行处理并以一个名称来标识。编程中只 需要给出存储过程的名称和必需的参数,就可以方便地调用它们 。n存储过程的分类nSQL Server 2005提供了多种存储过程,分为:n(1)用户存储过程。用户编定的可以重复使用的T-SQL语句功能模 块,并且在数据库中有唯一的名称,可以附带参数。后面主要介 绍用户存储过程。n(2)系统存储过程。通常使用“sp_”为前缀,主要用于管理SQL Server和显示有关数据库及用户的信息。系统存储过程在master 数据库中创建并保存,可从任何数据库中执行这些存储过程。n(3)扩展存储过程。允许用户使用编程语言创建自己的外部例程 。【例8.7】【例8.8 】 8.3 DB应用系统设计例见教材 【例8.7】【例8.8 】 武汉大学计算机学院数据库课程组9.1 Oracle产品及功能介绍9.2 PL/SQL程序设计9.3 数据库应用系统设计第9章 Oracle数据库应用武汉大学计算机学院数据库课程组 9.1 Oracle产品及功能介绍n1.主要产品:Oracle电子商务套件;Oracle10g。n2. 数据库的基本概念n模式是与每个Oracle数据库用户相关的一组数据库对象的集合。n表是数据库中基本存储的逻辑单位,由多行和多属性(列)组成 。n视图可从表(或其他视图)中派生出来。n包是存储过程和函数的封装,由一组相关的存储过程和函数组成 。n触发器是完成特定功能的程序单元。n数据块是Oracle服务器所能分配、读取或写入的最小存储单位。n区是DB存储空间分配的逻辑单位,由许多连续的数据块组成。n段是构成表空间的逻辑存储结构,段由一组区组成。n表空间是数据库中最大的逻辑单位。n序列生成器可产生一组唯一的序列号。n数据库链路是指一个数据库与另一个数据库之间的通信路径。n快照是对远程数据库上表的复制,自动按时间间隔定时刷新表的 数据。 武汉大学计算机学院数据库课程组 9.2 PL/SQL程序设计n1、过程化SQL- PLSQLn 是Oracle对标准数据库语言的过程化扩展。n2、PL/SQL程序的基本结构n(1)PL/SQL块结构nDECLARE /声明部分nBEGIN /执行部分 EXCEPTION /异常处理部分nEND;n(2)变量类型与赋值 n分为数字型、布尔型、字符型和日期型。n (1) 直接给变量赋值: := n (2)通过查询语句给变量赋值:PL/SQL操作符分为:算术、关 系、比较及逻辑操作符,与其 他程序设计语言类同。武汉大学计算机学院数据库课程组 3. 控制结构n主要有条件控制和循环控制语句:n(1) 条件控制语句n条件结构有三种形式:IFTHEN,IFTHENELSE和嵌套的IF语句 。n常用: IF THEN ;ELSE END IF ;n(2) 循环控制语句n有三种循环结构,提供EXIT、BREAK等循环结束语句。形式:n LOOP END LOOP; n WHILE LOOP END LOOP;n FOR IN LOOP END LOOP武汉大学计算机学院数据库课程组 3. 控制结构n例:通过循环变量i来控制n增加的次数并输出结果。nSET SERVEROUTPUT ONnDECLAREn INTEGER :=80;i INTEGER :=0;nBEGINFOR i IN 110LOOP n:=n+1;END LOOP;DBMS_OUTPUT.PUT_LINE(n的值:|TO_CHAR(n)nEND;武汉大学计算机学院数据库课程组 4.存储过程 nOracle提供了四种类型的可存储的命名程序块:存储过程、函数、包和触发器。n存储过程是一个PL/SQL程序块,可有多个参数作为输入或输出 源。它不能由SQL语句直接使用,只能通过EXECUT命令或 PL/SQL程序块内部调用。n可通过SQL语句创建、重命名、执行和删除存储过程。n(1)创建存储过程 n CREATEP OR REPLACE PROCEDURE (,.) /过程首部n AS ; /存储过程体n(2)调用存储过程nCALL PROCEDURE(实参1,实参2) 武汉大学计算机学院数据库课程组n(1)建表并输入数据 n 创建员工表:nCREATE TABLE emp ( eno NUMBER(5), ename VARCHAR2(20), salary NUMBER(4),dno NUMBER(1),PRIMARY KEY (eno);n 创建部门表: n 给emp表添加记录。存储过程如下:nCREATE OR REPLACE PROCEDURE ins_table_emp(e_id NUMBER,e_name VARCHAR2,e_sal NUMBER,e_dno NUMBER) AS BEGININSERT INTO emp(eno,ename,salary, dno) VALUES(e_id,e_name,e_sal,e_dno); END;存储过程举例:n设:有员工表;部门表。emp表 dept表 enoenam esalar ydno736 9王利 3000 2dno dnam etel2销销售6877988 0武汉大学计算机学院数据库课程组 (2)操作相关表,使得某部门职工的薪水增加15%。n给指定部门的员工加薪,首先要把该部门的员工选出来,再对这 些员工的薪水进行改动。n这里用存储过程表示,将要加薪的部门作为参数:nCREATE OR REPLACE PROCEDURE add_sal (deptname varchar2)nAS BEGINnUPDATE empnSET emp.salary=emp.salary*1.15 nWHERE emp.eno IN (SELECT eno FROM dept WHERE dname= deptname);nEND ; 武汉大学计算机学院数据库课程组 (3)利用触发器建立追踪 n通过对emp表的salary属性创建一个触发器,来监视其更新并进 行记录,以追踪薪水变动情况:nCREATE OR REPLACE TRIGGER salary_change BEFORE DELETE OR INSERT OR UPDATE ON emp -触发事件 FOR EACH ROW - 每更新一行都需要调用此触发器nDECLARE -只有触发器的声明需要DECLARE,过程和函数都不要 salary1 NUMBER; BEGIN -:new与:old分别代表该行在修改前、改后的记录 salary1=:new.salary - old.salary; DBMS_OUTPUT.PUT_LINE(old salary is:| :old.salary); DBMS_OUTPUT.PUT_LINE(new salary is:| :new.salary); DBMS_OUTPUT.PUT_LINE(add is:|to_char(salary1); END ; 武汉大学计算机学院数据库课程组 5、游标的使用与设计 游标:是系统开设的一个数据缓冲区,存放SQL语句的执行结果 。 作用:用户可通过游标获取记录,并赋给变量。游标名 . 一条记录变量游标 指针SQL查询结果 当对数据库的查询操作返回一组结果集时,存入游标, 以后通过对游标的操作来获取结果集中的数据信息。 游标分:显式游标和隐式游标。当查询语句返回多条记 录时,必须显式
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号