




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AnIntroductiontoDatabaseSystem 第八章数据库编程 AnIntroductiontoDatabaseSystem 第八章数据库编程 标准SQL是高度非过程化的关系数据库操纵语言 具有操作统一 面向集合 功能丰富 使用简单等多项优点 缺点 缺乏流程控制能力 难以实现应用业务中的逻辑控制 SQL编程技术可以有效克服标准SQL语言实现复杂应用方面的不足 提高应用系统和RDBMS之间的互操作性 在实践中 使用SQL编程技术来访问和管理数据库中数据的方式主要有 嵌入式SQL ADO NET和JDBC等 Oracle系统中使用的PL SQL SQLServer系统中使用的T SQL等 AnIntroductiontoDatabaseSystem 第八章数据库编程 1T SQL编程 2ADO Net编程 3JDBC编程 1 1T SQL语言基础 1 2存储过程 1 3游标的应用 自学 AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 常量 1字符串常量 2数值常量 ASCII字符串常量 单引号界定的字符串Unicode字符串常量 前缀字符N 单引号界定的字符串注 如果字符串中包括单引号 使用两个单引号表示嵌入的单引号区别 ASCII字符占用存储空间1个字节 unicode字符占用2个字节 直接按照数值型数据定义的规则和范围书写数据即可 AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 常量 使用单引号将日期时间字符串界定 SQLServer2000可以识别的日期时间格式如下 字母日期格式 April25 2005 数字日期格式 2005 03 05 03 05 2006 年月日 月日年格式 不分割的字符格式 20031008 年月日格式 时间格式 20 25 05 04 30 AM 3日期和时间常量 AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 变量 1全局变量 由系统提供 通过在变量名字前增加两个 前缀区别于局部变量 T SQL全局变量由SQLServer系统提供并赋值 用户不能建立也不能为全局变量赋值 通常将全局变量的值赋给局部变量 以便保存和处理 获取系统的状态数据 根据状态信息决定下一步走向 Rowcount 返回最近一个豫剧影响的行数 error 保存了最近执行操作的错误状态 AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 变量 2局部变量 用于保存单个数据值 在变量名前面增加一个 符号表示局部变量或参数 用途 保存运算的中间结果 作为循环变量使用等 局部变量作用域局限在一定范围内的T SQL对象 一般来说 局部变量在一个批处理中被声明 然后这个批处理内的SQL语句就可以使用或者设置该变量的值 局部变量声明 declare 变量名数据类型局部变量赋值 set 变量名 值表达式变量值显示 select 变量名 AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 基本流程控制语句 IF ELSE语句 While Continue Break Begin End 语句块的开始和结束标志 AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 基本流程控制语句 IF ELSE语句 语法格式 IF条件表达式 单个SQL语句或者Begin End语句块 ELSE 单个SQL语句或者Begin End语句块 注意 如果条件表达式中有Select语句 需要用小括号括起来 TRUE FALSE AnIntroductiontoDatabaseSystem 8 1T SQL编程 1T SQL语言基础 基本流程控制语句 While Continue Break WhileLogical Expression 1Begin语句块 IFLogical Expression 2Continue IFLogical Expression 3Break End 退出循环体 退出本次循环 学号自动生成 循环更新简历数据 AnIntroductiontoDatabaseSystem 8 1T SQL编程 2存储过程的应用 在数据库应用程序的开发过程中 SQL语句是应用程序与DBMS之间使用的主要编程接口 目前应用程序与DBMS交互操作有两种方法 记录操作命令存储在本地的应用程序中 应用程序每次根据需要向DBMS发送一条命令 并对返回的数据进行处理 在DBMS中定义一个程序模块 存储过程等 其中记录了一系列的操作 每次应用程序只需调用该过程模块就可以完成相应的操作 这些存储模块在SQLServer中称为存储过程 AnIntroductiontoDatabaseSystem 8 1T SQL编程 2存储过程的应用 存储过程可以接收输入参数 并可以以参数输出的形式返回数据给存储过程的调用者 存储过程可以容纳对数据库进行查询和修改的编程语句 也可以返回存储过程的执行状态等 存储过程的优点 执行效率高 模块化封装 维护方便 减少网络通信量 增强系统安全性 AnIntroductiontoDatabaseSystem 8 1T SQL编程 2存储过程的应用 2 1存储过程的创建 企业管理器中创建 查询分析器中创建 命令直接创建和模板创建 2 2存储过程的执行 2 3存储过程的管理 查看 修改 重命名 删除 Execute命令 AnIntroductiontoDatabaseSystem 8 1T SQL编程 2存储过程的应用 2 1存储过程的创建 企业管理器中创建 查询分析器中创建 命令直接创建和模板创建 CreateProcedure存储过程名 参数名参数类型 default output n As 单个SQL语句 语句块 AnIntroductiontoDatabaseSystem 8 1T SQL编程 2存储过程的应用 2 2存储过程的执行 Execute 值表达式 n 注意 值表达式序列必须和定义时参数序列顺序一致 Execute 参数名 值表达式 n 提示 值表达式序列不必和定义时参数序列顺序一致 return status 或 中取消Execute关键字 注意 必须事先声明 return status变量才能使用注意 凡是在存储过程中定义的参数 必须给其传递值表达式 AnIntroductiontoDatabaseSystem 8 1T SQL编程 2存储过程的应用 举例 根据输入的课程编号 查询选修该课程的学生的学号 姓名 性别 院系名称 成绩等信息 根据输入的学生学号 查询该学生的姓名 性别 出生日期 院系名称 学生简历等信息 根据输入的用户名和密码 完成以下功能 如果用户名不存在 则返回1 如果用户名存在 但密码输入错误 则返回2 如果用户名和密码都正确 则返回3 数据库准备工作 创建管理员表 UserName UserPwd AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 游标是一种数据访问机制 它允许用户访问单独的数据行 而非对整个行集进行操作 用户可以通过单独处理每一行逐条收集信息并对数据逐行进行操作 这样可以降低系统开销和潜在的阻隔情况 从另一个角度来看 游标是用户使用T SQL代码可以获得数据集中最紧密的数据的一种方法 使用Select Update Delete语句返回的行集包括所有满足该语句Where子句中条件的行 而有时需要一种机制以便每次处理一行或一部分行 游标就是提供这种机制的结果集扩展 使用游标的步骤 声明游标 打开游标 读取数据 关闭游标 删除游标 AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 声明游标 打开游标 读取数据 关闭游标 删除游标 Open游标名称 Close游标名称 DealLocate游标名称 游标的典型应用过程如下 AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 3 1声明游标 Declarecursor namecursor Forward only Scroll STATIC KEYSET DYNAMIC FAST FORWARD FORselect statement FOR READ ONLY UPDATE OFcolumn name n AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 3 3从游标读取数据 FETCH NEXT PRIOR FIRST LAST FROM游标名称 INTO 局部变量名 n 参数的含义 请参阅联机帮助丛书 AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 3 3从游标读取数据 Current形式的更新操作 WhereCurrentof 游标名称 更新语句尤其是Update和Delete子句都是集合操作 如果只想更新某一条记录 一般需使用关键字来定位相关记录 如果不用关键字 可以在游标操作中使用上面的条件表达式来定位当前操作的数据记录 AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 3 3从游标读取数据 我们可以根据提取状态来判断是否将数据提取完毕 AnIntroductiontoDatabaseSystem 8 1T SQL编程 3游标的应用 举例 编写一个数据更新的程序为计算机系学生的简历字段的添加信息 2009年10月2日在河南周口市川汇区对市民进行国家政策宣传教育活动 编写一个数据填充的程序为学生信息表的身份证字段填充测试数据 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 1嵌入式语言简介 2ADO NET简介 3ADO NET数据提供程序的核心对象 4数据库操作举例 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 1嵌入式语言简介 SQL语言的两种不同的使用方式 交互式和嵌入式嵌入式SQL就是将SQL语句嵌入到其他程序设计语言中 被嵌入的程序设计语言称为宿主语言 简称主语言 对ESQL 主语言一般采用预编译方法处理 即由主语言的预处理程序对源程序进行扫描 识别出ESQL语句 把他们转换成宿主语言的调用语句 以使主语言编译程序能够识别它们 然后由主语言的编译程序将纯的主语言编译成目标代码 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 2ADO NET简介 ADO NET是在ADO的基础上改进的 应用程序的高层接口 用来为 NET平台提供数据访问服务 ADO NET专门为 NET平台而设 特别适合基于消息的WEB应用程序 同时也能为其他应用程序结构提供较好的功能 ADO NET对象模型中有5个主要的数据库访问和操作对象 分别是Connection Command DataReader DataAdapter和DataSet对象 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 2ADO NET简介 Connection对象主要负责连接数据库Command对象主要负责生成并执行SQL语句DataReader对象主要负责读取数据库中的数据DataAdapter对象主要负责在Command对象执行完SQL语句后生成并填充DataSet和DataTableDataSet对象主要负责存取和更新数据 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 2ADO NET简介 对象模型 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 2ADO NET简介 对象模型 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 Connection对象 SqlConnection对象的属性描述了应用程序连接的数据源和用户身份验证的信息 提供了与数据源连接和断开的方法 提供了基于事务管理的数据库访问操作 SqlConnection对象须引用System Data SqlClient命名空间 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 Connection对象 创建方法 使用没有参数的SqlConnection类的构造函数创建Connection对象 然后设置ConnectionString属性值 使用ConnectionString属性值作为SqlConnection类的构造函数的参数创建Connection对象 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 Connection对象 连接字符串的书写格式 Server local Uid sa Pwd sa Database StuManageServer 本地服务器 Local 端口号或者 Local 实例名远程 本地 服务器 IP地址 端口号 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 Connection对象 Server local Uid sa Pwd sa Database StuManageSQL登录 Uid 登录账户名Pwd 登录密码Window集成安全身份认证 IntegratedSecurity Trusted Connection True Yes SSPI AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 Connection对象 常用的属性和方法 State 获取当前的连接状态Open 使用连接字符串指定的设置打开数据库连接Close 关闭与数据库的连接 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 任务1 SqlCommand对象应用的熟悉连接数据库StuManage 向Dept表中添加一条记录 院系编号 2101院系名称 土木工程系联系电话 0394 8923351 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 当建立与数据源的连接后 就要使用Command对象来执行对数据源的数据查询 更新 删除 添加操作 该命令的书写一般步骤 SqlCommandsqlcmd newSqlCommand sqlcmd CommandText SQL文本 存储过程 sqlcmd CommandType 命令的类型 sqlcmd Connection 操作的数据库连接对象 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 执行 ExecuteNonQuery 对连接执行T SQL语句并返回受影响的行数 一般用于数据更新操作 ExecuteReader 将CommandText发送到Connection并生成一个SqlDataReader ExecuteScalar 执行查询 并返回查询所返回的结果集中第一行的第一列 忽略其他列或行 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 执行 任务2 参数化的命令执行方法连接数据库Stu表 向表中添加记录 学号 200708010001 姓名 江微微性别 女 出生日期 1983 12 23引入 类的封装概念 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 执行 任务3 利用SqlDataReader对象显示数据库中查询结果的值程序运行效果 将院系表中所有的院系名称依次加入组合框的下拉列表中共用户选择 SqlDataReder对象的作用 常用属性和方法 SqlCommand对象的ExecuteReader 方法 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 ExecuteReader方法 使用DataReader对象可以从数据库中检索只读 只向前进的数据流 查询结果在查询执行时返回 大大加快了访问和查看数据的速度 尤其是需要快速访问数据库 该方法一次在内存中存储一行 从而降低了系统的开销 但是DataReader不提供对数据的断开式访问 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 ExecuteReader方法 使用DataReader对象虽然可以极大地提高数据访问速度 但是在某一时间 每个关联的Connection对象只能打开一个DataReader 当使用DataReader对象时 关联的Connection对象忙于为它提供服务 直到调用Close方法为止 不使用DataReader对象时要及时关闭 然后再关闭Connection对象 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 ExecuteReader方法 1 SqlDataReader类的实例化先创建一个Command对象 然后调用Command对象的ExecuteReader方法如 SqlDataReaderdr sqlcmd ExecuteReader AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 ExecuteReader方法 2 读取SqlDataReader中一行Read 方法 类似游标的Fetch操作 并返回数据状态 如果存在数据记录 则返回True 否则返回False 注意 SqlDataReader指针的默认位置在第一条记录前面 因此 必须调用Read 来开始访问任何数据 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 SqlCommand对象 ExecuteReader方法 2 引用SqlDataReader中具体列的值向SqlDataReader传递列的名称或序号 从0开始 引用假设进行查询 SelectStuID StuNameFromStu如果引用学生姓名的值 rdr 1 tostring rdr StuName tostring 如果涉及其他数据类型可能需要使用数据类型转换 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 DataReader对象 参见前面有关SqlCommand的ExecuteReader方法 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 任务4 根据输入的学号 查询列示该学生选修课程的课程编号 课程名称 学分和成绩等信息 知识点 SqlConnection对象 SqlCommand对象 SqlDataAdapter对象 DataTable对象的综合应用 表格控件DataGridView的使用 参数化查询 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 DataAdapter对象 DataAdapter对象用作DataSet和数据源之间的连接 能够检索和保存数据 DataAdapter类包含一组数据库命令和一个数据库连接 它们用来填充DataSet对象和更新数据源 也就是说 DataAdapter对象是一个双向通道 用来把数据从数据源读到内存的表中 以及把内存中的数据写回到一个数据源中 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 DataAdapter对象 属性必须是SqlCommand对象 AnIntroductiontoDatabaseSystem 8 2ADO NET编程 3ADO NET数据提供程序的核心对象 DataAdapter对象 使用DataAdapter对象的Fill方法可以检索数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电站锅炉结构原理课件
- 高级职称护理学课件
- 北外二外法语期末考试及答案
- 高热惊厥宣教课件
- 3-Ketopimelyl-CoA-3-Ketopimelyl-coenzyme-A-生命科学试剂-MCE
- Dienomycin-B-生命科学试剂-MCE
- 古诗词诵读《江城子 乙卯正月二十日夜记梦》课件 统编版高中语文选择性必修上册
- 保健食品小蓝帽考试题及答案
- 花卉考试题及答案
- 电源线基础知识培训课件
- 《统计学7章》课件
- 《世界名画蒙娜丽莎》课件
- 黄褐斑的护理查房
- 项目档案质量审核情况报告
- 泰山版(2018版)小学信息技术第5册教学计划
- 环刀法测压实度自动计算表格(2020.4.10)
- 多系统萎缩(改良版)课件
- IATF16949仓库管理制度
- 财务开票员的岗位职责 开票员岗位职责介绍
- 运输管理实务(第四版)PPT完整全套教学课件
- 英语阅读理解专项练习(40篇)
评论
0/150
提交评论