实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
第5章 T-SQL语言 5.1 SQL语言与T-SQL语言 5.2 常量、变量与数据类型 5.3 运算符与表达式 5.4 流程控制语句
5.1 掌握Power Scrip语言 5.2 使用控件 实训五 控件应用
SQL的简单查询.
十一 ASP对数据库的访问.
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
資料庫 (Database) SQL Server 2008實作
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
Chap 13 視界與資料庫程式設計.
Oracle数据库 Oracle 子程序.
PL/SQL程序设计 过程, 函数 Trigger 对象关系数据库技术.
主机DB2数据库应用与编程 任课老师:王湖南 四川大学计算机(软件)学院.
Introduction to database
JAVA 程式設計與資料結構 第十一章 JDBC.
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
第四章:触发器   触发器类似于过程、函数,因为它们都是拥有说明部分、语句执行部分和异常处理部分的有名的PL/SQL块。与包类似,触发器必须存储在数据库中,并且不能被块进行本地化说明。但是,对于过程而言,可以从另一个块中通过过程调用显式地执行一个过程,同时在调用时可以传递参数。对于触发器而言,当触发事件发生时就会显式地执行该触发器,并且触发器不接受参数。
第六章 學習SQL語言.
ORACLE 第五讲 PL/SQL编程基础.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
第三章 关系数据库标准查询语言SQL 3.1 SQL概述 3.2数据定义语言(DDL) 3.3 SQL的数据查询(DML)
資料庫安全 (Database Security)
Transact-SQL 語言設計教學.
本單元介紹何謂變數,及說明變數的宣告方式。
課程名稱:資料庫系統 授課老師:李春雄 博士
SQL Server 2000 数据库入门.
題庫解析:MTA資料庫檢定 授課老師:李春雄 博士
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
医院职工公费医疗系统.
丙級電腦軟設-VB程式設計 資料來源:林文恭研究室 整理:張福生.
第3章 关系数据库标准语言SQL.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
数据库应用技术 SQL Server 2005.
第四章 PL/SQL控制结构 If-then:如果条件为true,则执行一行或多行代码,如果条件为假,转到end if之后。
ORACLE 第九讲 触发器.
MySQL开发规范 DB组-张浩.
第二章 词法分析4 词法分析程序实现 构造词法分析器步骤 单词的形式化描述 词法分析程序的实现.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
领导艺术与方法 适合对象:课长级以上人员 人力资源部 李晓红 2006/6/12
第三章作业点评 助教: 干艳桃、张榆 Contact 干艳桃
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
第 15 章 自訂函數與順序物件.
第六章 语法制导的翻译 本章内容 介绍一种语义描述方法:语法制导的翻译,介绍语法制导的翻译的实现方法。
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
Oracle Database 10g基础教程 清华大学出版社
參數 實際參數(Actual parameter)與形式參數(Formal parameter)
2.1 高職與私立學校註冊操作說明 (2015/9/15上線)
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第六章 类属B树索引技术 对基于树的索引方法给出一种通用算法。该算法是建立在类属B树的概念之上开发的。它将类型系统开放,使系统能支持用户自定义的数据类型、函数和某些特殊的查询谓词的集合。并且,将新的数据类型、函数、查询谓词等登记到数据库管理系统中,
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
數學遊戲二 大象轉彎.
手机淘宝“变形”产品—微淘 操作流程指南 (内测版).
第4章 数据查询.
Presentation transcript:

实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程. 整个PL/SQL块分三部分:声明部分(用Declare开头),执行部分(以Begin开头)和异常处理(以Exception开头).其中执行部分是必须的,其他两个部分可选.基本格式如下: Declare … Begin …

Exception … End; ⑵PL/SQL常用的几种数据类型 Number:数字型(能存放整数值和实数值) Integer:整数型 Varchar2:字符型(存放可变长字符串) Char:字符型(存放定长字符串) Date:日期型 Boolean:布尔型 注意:在PL/SQL中声明变量与其他语言不太一样,它采用从右向左的方式声明, Declare ID Number:

⑶ PL/SQL的三种程序结构:条件结构,循环结构和顺序结构 ①条件结构 与其他语言完全类似,其语法结构如下: If C1 Then S1 Else S2 End If; ②循环结构 这一结构与其他语言结构不太一样在PL/SQL程序中有三种循环结构: (A) Loop … End Loop; (B) While 条件 Loop … End Loop; (c) For变量 In 变量下界…变量上界 Loop … End Loop

③顺序结构 在顺序结构中,有两个语句值得一提:一个是Goto语句不能转移到If语句, 循环语句或子语句中;另一个是Null语句,该语句什么也不做,仅仅将程序的控制传递给下一个语句,可以在一定的程度上提高PL/SQL程序的可读性. ④过程与函数 PL/SQL中的过程和函数与其他语言的过程和函数的概念基本一样,起语法结构为: 过程:Create or replace procedure procname(param1,param2, …)as PL/SQL语句块 函数: Create or replace function funcname(param1,param2, …)return返回值as PL/SQL语句块 基本格式如下: Create or replace procedure Pro_name as … /*声明变量并赋初值*/ Begin … /* Pro_name可以省略*/ End Pro_name:

⑤游标 游标就是用来指代一个DML SQL操作返回的结果值.就是当一个对数据库的查询操作返回一组结构值时,用游标来标注这组结构集,以后通过对游标的操作来取得结果集中的数据,游标在PL/SQL的编程中非常的重要.游标分为显式游标和隐式游标 显示游标的使用需要4步: a,声明游标 声明游标时,可以将游标名与一个查询联系起来.定义游标的语法格式为:CURSOR 游标名[(参数1, …,参数n)] is 例:定义游标mycru Cursor mycur is Select sid from s

b,打开游标 打开游标用于执行查询,组成一个由满足查询检索标准的全部行组成的活动集.其语法格式为:Open游标名 例:打开游标mycur Oper mycur c,读取数据 可以利用Fetch命令来检索活动集中的一行,每执行一次Fetch操作,游标向前移动到活动集的下一行.其语法格式为: Fetch 游标名 into 变量列表 例: Fetch mycur into v_sid:

d,关闭游标 关闭游标能够使活动集成为未活动的状态,一旦游标关闭,就不能在它上面执行任何其他的操作,否则将会引起定义的例外INVALID_CURSOR.起语法格式为: Colse 游标名 例:关闭游标名mycur. Close mycur;

3.实验内容 ①用 While-Loop-End循环结构来求5的阶乘 ②利用游标找出表S中计算机系学生的名字 ③定义一函数实现如下功能。对于一个给定的SID值,查询该值在S表中是否存在,返回表中给定的SID值数目(可利用游标实现) ④写一段PL/SQL脚本程序调用上述函数。当向S表中插入一条记录时,首先调用函数check_SID检索该记录在S表中是否已经存在有SID字段对应的值,若不存在,则将该记录插入S表

①参考 declare a number:=0; b number:=1; begin while a<5 loop a:=a+1; b:=b*a; end loop; dbms_output.put_line(a||'! = '||b); end;

②参考 declare name varchar2(20); dept varchar2(20); cursor get_students is select sn, sd from s where sd='计算机'; begin open get_students; fetch get_students into name, dept; if get_students %notfound then dbms_output.put_line('数据库中目前尚没有计算机系的学生!'); else dbms_output.put_line('计算机系的学生如下:'); while get_students%found loop dbms_output.put_line(name); end loop; end if; close get_students; end;

③参考 create or replace function CHECK_SID (s_id in number) return number as num number; cursor get_num is select count(sid) from s where sid=s_id; begin open get_num; fetch get_num into num; return num; end CHECK_SID;

④参考 declare num number; begin num := CHECK_SID(23); if num=0 then insert into s values('23','李四','22','男','化学'); dbms_output.put_line('记录被成功添加!'); end; else dbms_output.put_line('SID已经存在,记录添加失败!'); end if;