版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 Ⅰ、定义基本表 1Ⅰ、修改基本表 1 I 3 I IPLSQL构 4 IV 5 15料 15义以加深对数据库基本知识及SQL语言的理解,提高综合应用系统的能力。储过程。SQL数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。SQL通用的、功能极强的关系数据库语言。它之所以能够为用户和业界所接受,并据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体。Ⅰ、定义基本表语句格式:EATETABLE (<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…在列级也可以定义在表级。Ⅰ、修改基本表语句格式:[ADD<新列名><数据类型>[完整性约束]]DROP>]ALTERCOLUMN];语句格式:DROPTABLE<表名>[RESTRICT|CASCADE];赖该表的对象,则此表不能被删除。CADE语句格式:ELECTALLDISTINCTWHERE]GROUPBYHAVING式>]]ERBYASCDESC语句格式:T功能:将新元组插入指定表中。语句格式:UPDATE<表名>E功能:修改指定表中满足WHERE子句条件的元组。语句格式:ETEFROM<表名>E功能:删除指定表中满足WHERE子句条件的元组。WHERE子句:指定要删除的元组。缺省表示要删除表中的全部元组,表的定义仍在字典中。单属性构成的码有两种说明方法:定义为列级约束条件;定义为表级约束条件。对多个属性构成的码只有一种说明方法:定义为表级约束条件。Ⅰ.检查主码值是否唯一,如果不唯一则拒绝插入或修改。Ⅰ.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。TETABLEFOREIGNKEYREFERENCES短语指明这些外码参照哪些表的主码。参照完整性违约处理:Ⅰ.拒绝(NOACTION)执行----默认策略Ⅰ.级联(CASCADE)操作Ⅰ.设置为空值(SET-NULL)对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值。触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程,由服务器自动激活,可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。语法格式:CREATETRIGGERONFOREACH{ROW|STATEMENT} [WHEN<触发条件>]作体>定义了多个触发器。个触发器激活时遵循如下的执行顺序:Ⅰ.执行该表上的BEFORE触发器;Ⅰ.激活触发器的SQL语句;Ⅰ.执行该表上的AFTER触发器。语法格式:DROPTRIGGER发器名>ON<表名>;触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。Ⅰ.定义部分ARE常量、游标、异常等定义的变量、常量等只能在该基本块中使用,当基本块执行结束时,定义就不再存在。Ⅰ.执行部分INPTION理部分END;Ⅰ.PL/SQL中定义变量的语法形式是::变量名数据类型[[NOTNULL]:=初值表达式]或变量名数据类型[[NOTNULL]初值表达式]Ⅰ.常量的定义类似于变量的定义::常量名数据类型CONSTANT:=常量表达式并且该值在存在期间或常量的作用域内不能改变。如果试图修Ⅰ.赋值语句Ⅰ.条件控制语句AIFconditionTHENtatementsNDIFBIFconditionTHENstatementsstatementsDIFCTHENELSEIFIF语句可以嵌套。Ⅰ.循环控制语句LOOPtatementsLOOPLOOP语句块能够结束。WHILELOOPWHILEconditionLOOPtatementsLOOP列,如果条件为假,则跳过循环并把控制传递给下一个语句。OOPFORcountIN[REVERSE]bound1…bound2LOOPtatementsLOOPⅠ.错误处理:的类型去执行异常处理语句。完善的异常处理机制。Ⅰ.创建存储过程:CREATEProcedure过程名([参数1,参数2,...])AS<PL/SQL块>;过程名:数据库服务器合法的对象标识。入参数、输出参数或输入/输出参数。默认为输入参数。LⅠ.执行存储过程:CALLPERFORMPLSQL库服务器支持在过程体中调用其他存储过程。Ⅰ.删除存储过程DROPPROCEDURE过程名();ERER定属性。再用SQL语言编写程序实现操作。最后对系统进行调试与测试,确定系统是否完成设计要求。,主要涉及到银行与用户两个实体,还有交易这个联系。 m m开始开始需求分析画流程图画E-R图设计表编写SQL程序调试与测试结束结束Bank表:表示银行信息,属性有名称,网点,存款总额。其中网点号为主码。银行网点。其中账号为主码。trade用于记录每次交易信息,属性有流水号,姓名,账号,交易项目,交易金额,交易时间,交易对象,余额,上次余额,网点。其中流水号为主码。建立关系图REATETRIGGERtotleONdbousercustomerDATEASifupdate(银行)update总存款额set存款总额=(selectSUM(余额)fromuser_informwhere银行总存款额.customerCREATETRIGGER交易项目ONdbo.tradeDATEASifupdate(余额)if((select余额fromtradewhere流水号=(selectmax(流水号)fromtrade))>(select上次余额fromtradewhere(selectmax(流水号)fromtrade)))updatetradeset交易项目='支入'where流水号=(selectmax(流水号)fromtrade)and账号=(select账号fromtradewhere流水号=(selectmax(流水号)fromtrade))updatetradeset交易项目='支出'where流水号=(selectmax(流水号)fromtrade)and账号=(select账号fromtradewhere流水号=(selectmax(流水号)fromtrade))CREATETRIGGER交易余额ONdbo.tradeDATEASifupdate(交易金额)beginupdatetradeset余额=(select账户余额fromcustomerwhere账号=(select账号fromtradewhere流水号=(selectmax(流水号)fromtrade)))where流水号=(selectmax(流水号)fromtradeCREATEproc交易@cardvarchar(18)begininserttrade,账号,姓名,余额,上次余额)selectgetdate(),@card,姓名,账户余额,账户余额fromcustomerawherea.账号=@cardCREATEPROCEDUREcardvarchar(18),@ckemoney)SINexec交易@cardupdatecustomerset账户余额=(账户余额+@cke)where账号=@cardupdatetradeset交易金额=@ckewhere账号=@cardand流水号=(selectmax(流水号)fromtradewhere账号=@card)selectfromcustomerwhere@cardURNCREATEprocedure开户@namevarchar(20),@idvarchar(18),@cardvarchar(18)output,@balneybegintrimstrrandlenltrimstrrandinsertcustomer姓名,ID,账号,账户余额)valuesgetdate(),@name,@id,@card,@bal)CREATEPROCEDUREcardvarchar(18))SINexec交易@cardupdatetradeset交易项目='查询'where账号=@cardand流水号=(selectmax(流水号)fromtradewhere账号=@card)selectfromcustomerwhere@cardselectfromtradewhere@cardURNCREATEPROCEDUREcardvarchar(18),@card2varchar(18),@zzemoney)SINexec交易@card1updatecustomerset账户余额=(账户余额-@zze)where账号=@card1if((select账户余额fromcustomerwhere账号=@card1)<0)beginprint'余额不足!'updatecustomerset余额=(账户余额+@zze)where账号=@card1endbeginupdatetradeset交易项目='转出'where账号=@card1and流水号=(selectmax(流水号)fromtradewhere账号=@card1)updatetradeset交易金额=@zzewhere账号=@card1and流水号=(selectmax(流水号)fromtradewhere账号=@card1)selectfromcustomerwherecardselectfromtradewherecard1exec交易@card2updatecustomerset账户余额=(账户余额+@zze)where账号=@card2updatetradeset交易项目='转入'where账号=@card2and流水号=(selectmax(流水号)fromtradewhere账号=@card2)updatetradeset交易金额=@zzewhere账号=@card2and流水号=(selectmax(流水号)fromtradewhere账号=@card2)selectfromcustomerwhere=@card2selectfromtradewhere=@card2URNCREATEPROCEDURE取款(@cardvarchar(18),@qkemoney)SINexec交易@cardupdatecustomerset账户余额=(账户余额-@qke)where账号=@cardif((select账户余额fromcustomerwhere账号=@card)<0)beginprint'账户余额不足!'updatecustomerset余额=(账户余额+@qke)where账号=@cardendbeginupdatetradeset交易项目='取款'where账号=@cardand流水号=(selectmax(流水号)fromtradewhere账号=@card)updatetradeset交易金额=@qke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东酒店管理职业技术学院《食品微生物综合实训》2023-2024学年第一学期期末试卷
- 广东金融学院《公司金融含实验》2023-2024学年第一学期期末试卷
- 广东建设职业技术学院《技术及应用实验》2023-2024学年第一学期期末试卷
- 广东金融学院《小动物影像学》2023-2024学年第一学期期末试卷
- 网络文明培训课件
- 《能源互联网》课件
- 小班安全课件《狗狗来了》
- 厨具销售培训课件
- 共青科技职业学院《现代基础化学》2023-2024学年第一学期期末试卷
- 赣州师范高等专科学校《金融法》2023-2024学年第一学期期末试卷
- 2025年初级会计职称《经济法基础》全真模拟及答案(解析3套)
- 2024年八年级班主任德育工作个人总结
- 《健康社区评价标准》
- 户外市场研究报告-魔镜洞察-202412
- 浙江省金华市金东区2023-2024学年九年级上学期语文期末试卷
- 【7地星球期末】安徽省合肥市包河区智育联盟校2023-2024学年七年级上学期期末地理试题(含解析)
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之2:“1至3章:范围、术语和定义”(雷泽佳编制-2025B0)
- (2021)最高法民申5114号凯某建设工程合同纠纷案 指导
- 【9物(人)期末】安庆市宿松县2023-2024学年九年级上学期期末考试物理试题
- 期末复习试题(试题)-2024-2025学年五年级上册数学苏教版
- 尊重学术道德遵守学术规范学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论