范文一:数据库相关知识
数据库相关知识
一、 VBA基础
VBA,即Visual Basic for Applications,VB应用程序
VBA是Microsoft为Microsoft Office组件(如Access、Excel、Outlook、Word等应用软件)开发的程序设计语言。VBA实际上是Visual Basic的子集,其语法与Visual Basic完全兼容。在Office组件中可使用宏来进行简单的设计和控制,但VBA更灵活、功能更强、更具可扩展性。
二、SQL知识介绍
SQL,即Structured Query Language,结构化查询语言
在程序设计中,需要进行数据库操作时,通常有现成的数据库对象方法可用,比如添加、删除、查询数据项目,这些基本操作都可以通过调用数据库对象方法来实现。但是遇到比较复杂的操作时,就需要借助于SQL语言来实现。所以说掌握好SQL是进行高级数据库程序设计的基础。
三、ODBC数据源
ODBA,即Open Database Connectivity,开放式数据库互连
ODBA是一种应用程序接口(API)规范,它定义了一个标准例程集,利用他们,应用程序可以访问数据源中的数据。应用程序通过调用API函数可以直接使用ODBC,或利用一些数据访问对象来使用ODBC,如DAO、RDO、ADO和ADO.NET等。 但是在实现ODBC时必须先配置ODBC环境,进行数据源的注册,这样才能在对数据库进行编程时,对数据源进行连接、访问和操作。 1、 ODBC是一组API,它主要与数据库打交道,有四个组成部分:
, 应用程序(Application)
, ODBC管理器
, ODBC驱动程序
, 数据源(Data Sources)
四个部分的相互关系可表示为:
应用程序<——>ODBC管理器<——>ODBC驱动程序<——>数据库
通过这四个组成部分,应用程序并不与数据库驱动程序直接通信,只要告诉数据库管理器想要做什么,而使用恰当的ODBC驱动程序来实现ODBC管理器的任务。 每个ODBC驱动程序对于它所对应的数据库均有足够的了解,各部件各司其职,极大地简化了工作。
2、 使用ODBC编程的一般步骤:
1) 连接数据源
2) 创建并执行一条或多条SQL语句
3) 检查结果记录
4) 断开数据源
四、数据库管理系统(DBMS)
一、Access数据库
1、Access也是一种桌面数据库管理系统,但它与传统的桌面数据库管理系统完
全不一样。
2、Access是Visual Basic的内部数据库,即默认数据库类型。这里的“内部”有两方面的含义:一是用Access建立的数据库(.MDB)可以在Visual Basic中使用;二是用Visual Basic可以直接建立Access数据库。因此,在Visual Basic中,“Access数据库”和“Visual Basic数据库”含义相同。
3、Access数据库文件的结构特点:
1) 一个数据库的所有表和索引都存储在一个.MDB文件中,Text(文本)、
Memo(备注)和OLEObject(OLE对象)等数据类型字段的长度都是
可变的
2) Access支持空值,即Null(与空字符串不同)。Null是Visual Basic的保
留字,用它来指明的数据单元中没有数据进入。所有的客户/服务器数据
库都支持Null值,但除了Access外,其他桌面数据库几乎都不支持Null
值。
3) 在Access中, Memo字段作为Text类型来处理,其长度可达1.2GB。
4) Access提供了长二进制(Large Binary)对象(BLOB),其大小仅受数据
库大小的限制,不受MDB文件结构的限制;而数据库的大小仅受硬盘
容量的限制。可以在Access表的BLOB字段中存储任何类型的数据,包
括多媒体数据,并可用GetChunk和Append方法对BLOB字段的数据进
行读写操作。
二、SQL Server数据库
SQL Server 是Microsoft公司设计开发的一种可以在Web上运行的关系型数据库管理系统。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本
范文二:数据库相关知识
选择题:
1. 插入变量与方法声明的标记<%! 和 %>
2.Jsp 的page 编译指令的属性language 默认值 java
3.RequestDispatcher dispatcher =request.getRequestDispatcher(“a.jsp ”); dispatcher.forward(request,response)作用是将请求转发到a.jsp 页面
4.JavaBean 可以使用的jsp 动作指令 5. 6.Jsp 内置对象是out 对象,response 对象,application 对象 7. 设置文档背景颜色的属性 background 9. 10. 对Servlet 和jsp 描述错误的是一般用jsp 处理业务逻辑,servlet 是实现页面显示 11. 当每个客户首次访问服务器上的一个jsp 页面时,jsp 引擎产生一个session 12.Application 被web 服务目录下所有用户共享,任何客户对Bean 属性修改都会影响到其他用户 13. 三层体系结构设计的web 应用程序优点:可维护性强,可扩展性强,代码重复较少 14.request 对象获取单表中某输入框提交的信息方法:getParameter(String s) 15.jdbc 是Java 数据库连接API ,不正确的是:建立odbc 数据源 16.MVC 不正确的是:代码率低 18.j2ee 中<%=2+4%>将输出6 19. 20. 不是jsp 运行必须的是数据库 采用三层体系结构设计的web 应用程序有以下优点,除了:(大大减少代码量) Jsp 页面可以在<%=“和”%>标记之间放置Java 表达式:(不可以有空格) JSP 中,(include )指令用于将文件嵌入JSP 页面 在form 标记符中指定表单内容的接收程序使用属性(action ) 要设计一个大型的基于多层体系结构的web 应用系统,系统界面基于HTML 和XML ,该系统要不断进行升级(MVC ) 下面哪个是换行标记( 在客户端浏览器的源代码中可以看到(HTML 注释) 下列变量声明在(整个页面内有效,被多个客户共享) Jsp 哪个内置对象封装了用户提交的信息,使用该对象可以获取用户提交的信息(request ) 在servlet 里,获取session 的正确方式是(HttpSession session=request.getSession();) 40:page指令的作用是:用来定义整个Jsp 页面的一些属性和这些属性的值; 41:下面那个标记是正确的链接标记:新浪网 42:out对象是一个输出流,其输出各种类型并换行的方法是:out.printLn(); 43:request.getRemoteAddr()方法的作用是:获取客户ID ; 44:在j2ee 中,jsp 想要使用User 包中的user 类,则正确的是: 46:给定jsp 中,使用 47:j2ee中,当把来自客户机的HTTP 请求委托servlet 时,默认会调用HttpServlet 类的(service ) 方法、 48:查询数据库得到的结果集,游标最初定位在第一行; 49:在j2ee 中,关于设计模式错误的是:设计模式是一段通用代码,可以重用; 50:在MVC 模式,(视图)层用于客户端的图形数据表示,合实际的数据无关。 51:在jsp 中,(include ) 指令用于讲文件嵌入jsp 页面。 53:JDBC 是java 数据库连接API ,不正确的是:向数据库发送sql 语句; 54:某jsp 程序中声明使用javaBean 语句如下 55:下列说法哪一项是正确的:Tomcat 用于jsp 技术所开发的网站服务器; 56:在j2ee 中,当用户在浏览器中输入:http://Localhost:8080/myWebApp/start,就会调用pk 包中的student 的Servlet ,在Web.xml 中配置正确的是: 57:下面不属于jsp 内置对象的是:page 对象; 58:能在浏览器的地址中看到的提交数据的表单方式是:GET 60:在j2ee 中,在a.jsp 中有代码如下:<%request.setAttribute(“loginName ”, ”JACK ”);%>,在b.jsp 中有如下代码:<%String loginName=(String)request.getAttribute(“loginName ”);out.print%>下面正确的是:在a.jsp 中使用 填空 1. 使用(jsp :usebean )动作,jsp 可以动态使用 2. (“refresh ”,“5”)指刷新时间为<5秒> 3. 4. 在web 项目中web-inf 必须配置文件是 5. Tomcat 服务端默认端口是<8080> 6. 使用bean 首先在jsp 页面中使用 7. Jsp 技术开发的程序架构只能是c/s或 8. 层叠样式设置HTML 内容,其文件扩展名的3个字符 9. Java 程序对数据库操作需要用 10. 客户与web 服务器通信通过 11. 如果程序语法均没错,一般需要用 12. 三种常用动态网页php ,jsp 13. Jsp 有以下9种内置对象 14. 基于mvc 的软件开发,v 层往往可以用 16. 代码几乎相同,我们可以用一个java 类存放代码以便<重用> 17. 18. Servlet 适合在mvc 分层结构程序中充当<控制器> 19. 删除数据库表的记录需要执行stmt.executeupdate( 20. 软件的<集成>将整个软件组装在一起,使他们成为一个整体 21. Javabean 的应用语言是 22. Servlet 编写业务层很好,但编写<表现层>不方便 23. 软件架构设计是<顶层设计> 24. 软件可以认为由功能模块组成,从模块角度对软件进行<开发> 25. Java 类存放在src 中,而jsp 文件放在 26. 27. JSTL 标准标签需要添加 28. Servlet 的url 地址需要在 29. Servlet 生命周期分4个阶段:实例化,<初始化>,服务,销毁 30. 应用程序需要部署到Tomcat 安装目录的 32. Servlet 负责接受客户的请求,在服务器上运行,将结果返回到客户端浏览器显示 33. Java 程序中进行数据库操作,如果语法等都没有错误………需要用try 语句将这些操作语句括起来。 34. Page 指令的属性language 的默认值是java 通过response 对象的sendRedirect 方法设置页面重定向,实现页面跳转 35. Include 指令的语法格式<…………>其中relativeURL 意思是相对地址 36. Id 表示动作的名称,scope 表示动作的作用域 37. Jsp 页面中显示一个变量的值,需要用到jsp 的表达式 38. 不加声明就可以在jsp 页面中使用的对象成为jsp 内置对象 39. 表格定义中 40. Mvc 软件开发v 可以用jsp 技术实现 M 用javabean 实现 41. Jsp 程序操作都在服务器端执行。 42. 从模块的角度对软件进行开发,使软件开发着更容易把握软件的结构 43. 客户端请求jsp 页面,jsp 容器会将请求信息包装在request 对象中。 44. Jsp 内置对象application 代表应用程序上下文,session 是每个客户专用的 判断题 45. Servlet 不需要部署就能直接使用。N 46. 负责处理客户请求的内置对象是request 。Y 47. 执行数据库操作的不一定使用SQL 语句。N 48. 使用 49. 在Servlet 中处理Http 和Post 请求时调用的方法是doPost 方法。Y 50. Session 对象常用于记住客户的名字。Y 51. JavaEE 规范是SUN 公司定义开放的分布式系统开发规范。Y 52. 实现转发需要两个步骤,首先在Servlet 中要得到RequestDispatcher 对象,然后在调用 该对象的forward 方法实现转发。Y 53. JSP 中的Javabean 是一个Java 类,对该类没有什么约束规范。N 54. JSP 第一次执行的速度比第二次执行的速度慢。Y 简答题 JSP 页面组成元素:1. 静态内容,即普通胡HTML 标示符2.JSP 指令标记3.JSP 动作标记4. 变量方法声明5.Java 程序片6.Java 表达式7. 注释 器端进行,不显示地址。2.Response.sendRedirect()重新发送请求,会显示地址。 Bean 的作用域和生命周期是:1.Page(当前页面有效)2.request(局部有效)3.session(会话有效)4.application(全体有效) JSP 有那些常用的内置对象?作用分别是:application 对象代表应用程序上下文,它允许Jsp 页面与包括在同一应用程序中的任何WEB 组件共享信息;Out 对象代表提供输出流的访问;Resquest 对象提供Http 请求数据的访问,同时还提供于加入特定请求数据的上下文;response 对象允许直接访问HttpServleResponse 对象;Session 对象用来在会话期间存取数据,Tomcat 服务器分配给session 一个ID ,并将ID 发送到客户端,存放在客户的Cookie 中 JSP 有那些动作,作用分别是什么: WEB 开发项目中如何使用JavaScript 脚本文件:首先需要在js 文件中定义方法;其次,要在页面中引入js 文件,这通过语句 简述JSP 的设计模式:1.Model1,JSP+JavaBean设计模式。在这种模式中,JSP 页面独自响应请求并将处理结果返回客户,所有的数据库操作通过JavaBean 来实现。大量地使用这种模式,常会导致在JSP 页面中嵌入大量的Java 代码,当需要处理的商业逻辑非常复杂时,这种情况就会变得很糟糕,大量的Java 代码使得JSP 页面变得非常臃肿。前端的页面设计人员稍有不慎,就有可能破坏到商业逻辑的代码2.Model2,MVC 设计模式。”mvc ”模式即是:”Model-View-Controller ”模式。在这种模式中,通过JSP 技术来表现页面,通过Servlet 技术来完成大量的事务处理工作,实现用户的商业逻辑在这种模式中,servlet 用来处理请求的事务,充当了控制器的角色,servlet 负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP 页面发送给客户。JSP 页面处于表现层,也就是视图的角色。JavaBean 则负责处理数据的,也就是模型的角色 Include 指令合 2. 对于boolean 类型的成员变量,允许使用is 代替get 和set 。 3. 类中方法的访问属性必须是public 的。 4. 类中如果有构造方法,那么这个构造方法也是public 的,并且是无参数的。 web 开发项目中如何通过链接使用外部样式表文件:首先讲STYLE 标记中的内容存成一个文件,其次必须在页面引入这个样式文件,这由HTML 的标签完成,如 简述jsp 直接操作mysql 数据库的步骤:1. 加载java 数据库驱动程序 Class.forName(“com.mysql.jdbc.Driver”);2.连接数据库:Connection con =DriverManger.getConnection(“jdbc: mysql://ip//databaseName”,”username”,”password”);3.创建一个Statement 对象,用于吧SQl 语句发送到数据库系统:Statement stmt=con.crestStatement();4.使用executeQuery 或者executeupdate 方法将SQl 语句发送到数据库。如果是从数据库查询数据,则查询操作结束后会返回一个ResultSet, 其中包含一系列的行和列。可以调用nex 和各种getXxx 方法进行处理5. 关闭连接,释放与就、数据库相关联的资源:con.close(). 1.JSP 页面的执行步骤: (1)客户通过浏览器向服务器端的JSP 页面发送请求; (2)JSP 引擎检查JSP 文件对应的Servlet 源代码是否存在,若不存在转向(4); (3)JSP 引擎检查JSP 页面是否修改,若未修改,转向(5),否则执行下一步操作; (4)JSP 引擎将JSP 页面文件转译为Servlet 源代码(相应的.java 代码); (5)JSP 引擎将Servlet 源代码编译为相应的字节码(.class 代码); (6)Servlet 引擎加载字节码到内存; (7)字节码处理客户请求,并将结果返回给客户。 13.web 开发项目中如何通过链接使用外部样式表文件? 首先将STYLE 标记中的内容存成一个文件,其次必须在页面中引入这个样式文件,这由HTML 的标签完成,如 (1)SEQNAME.NEXTVAL里面的值如何值出,可以直接在来insert into test values(SEQNAME.NEXTVAL) 是可以用 值值, SELECT tmp#_seq.NEXTVAL INTO id_temp FROM DUAL; 然后可以用id_temp (2)PLS-00103: 出值符 号">"在需要下列之一值, 代值如下, IF (sum>0) THEN begin INSERT INTO emesp.tp_sn_production_log VALUES (r_serial_number, , id_temp); EXIT; end; 一直值sum>0 值是郁值的值值 因值值量用了个很sum 所以不行~后改值i_sum>0 (3)oracle 值法 1. Oracle值用值值方法值概 答,1) Pro*C/C++/... : C值言和据值打交道的方法~比数OCI更常用; 2) ODBC 3) OCI: C值言和据值打交道的方法~和数ProC很很相似~更底值~少用; 4) SQLJ: 很新的一值用Java值值Oracle数会据值的方法~的人不多; 5) JDBC 6) PL/SQL: 存值在据行数内运, 其他方法值在据值外值据值值值数数; 2. PL/SQL 答,1) PL/SQL(Procedual language/SQL)是在值准SQL的基值上增加了值程化值理的值言; 2) Oracle客值端工具值值Oracle服值器的操作值言; 3) Oracle值SQL的值充; 4. PL/SQL的值缺点 答,值点, 1) 值化模值化值程~不是面向值象构; 2) 良好的可移植性(不管Oracle运行在何值操作系值); 3) 良好的可值值性(值值通值后存值在据值里数); 4) 提升系值性能; 第二章 PL/SQL程序值构 1. PL/SQL值 答,1) 申明部分, DECLARE(不可少); 2) 值行部分, BEGIN...END; 3) 异常值理~EXCEPTION(可以有没); 2. PL/SQL值值值境 答,可以用任何值文本的值值器值值~例如,运VI ~toad很好用 3. PL/SQL字符集 答,PL/SQL值大小不敏感写 4. 值值符命名值值 答,1) 字母值值; 2) 后任意的非空格字符、字、值值符、下值、或跟数号划# ; 3) 最大值度值30个字符(八字符左右最合适个); 5. 值量明声 答,值法 Var_name type [CONSTANT][NOT NULL][:=value]; 注,1) 申明值可以有默值值也可以有没; 2) 如有[CONSTANT][NOT NULL], 值量一定要有一初始值个; 3) 值值值句值“:=”; 4) 值量可以值值是据值里一字段数个; 5) 值定有初始化的值量值没NULL; 第三章 1. 数据值型 答,1) 值量型,字型、字符型、布值型、日期型数; 2) 值合型,RECORD(常用)、TABLE(常用)、VARRAY(值少用) 3) 参考型,REF CURSOR(游值)、REF object_type 4) LOB(Large Object) 2. %TYPE 答,值量具有据值的表中某一字段相同的值型与数 例,v_FirstName studengts.first_name%TYPE; 3. RECORD值型 答,TYPE record_name IS RECORD( /*其中TYPE~IS~RECORD值值值字~record_name 值值量名称*/ field1 type [NOT NULL][:=expr1], /*每等价的成值值用逗分隔个号*/ field2 type [NOT NULL][:=expr2], /*如果一字段限定个NOT NULL~那值必值值有一它个初始值*/ ... /*所有有初始化的字段都初始值没会NULL fieldn type [NOT NULL][:=exprn]); 4. %ROWTYPE 答,返回一基于据值定值的值型个数 DECLARE v_StuRec Student%ROWTYPE; /*Student值表的名字*/ 注,与3中定一个record相比~一步就完成~而3中定值分二步,a. 所有的成值值量都要申明; b. 值例化值量; 5. TABLE值型 答,TYPE tabletype IS TABLE OF type INDEX BY BINARY_INTEGER; 例,DECLARE TYPE t_StuTable IS TABLE OF Student%ROWTYPE INDEX BY BINARY_INTERGER; v_Student t_StuTable; BEGIN SELECT * INTO v_Student(100) FROM Student WHERE id = 1001; END; 注,1) 行的目的限制由数BINARY_INTEGER的范值定决; 6. 值量的作用域和可值性 答,1) 值行值里可以嵌入值行值; 2) 里值值行值的值量值外值不可值; 3) 里值值行值值外值值行值值量的修改影外值值值量的值会响; 第四章 1. 条件值句 答,IF boolean_expression1 THEN ... ELSIF boolean_expression2 THEN /*注意是ELSIF~而不是ELSEIF*/ ... /*ELSE值句不是必值的~但END IF;是必值的*/ ELSE ... END IF; 2. 循值值句 答,1) Loop ... IF boolean_expr THEN /* */ EXIT; /* EXIT WHEN boolean_expr */ END IF; /* */ END LOOP; 2) WHILE boolean_expr LOOP ... END LOOP; 3) FOR loop_counter IN [REVERSE] low_blound..high_bound LOOP ... END LOOP; 注,a. 加上REVERSE 表示值~值束值界到起始值界~值步值值一减从减; b. low_blound 起始值界; high_bound 值束值界; 3. GOTO值句 答,GOTO label_name; 1) 只能由部值跳往外部值内; 2) 值置值值, 3) 示例, LOOP ... IF D%ROWCOUNT = 50 THEN GOTO l_close; END IF; ... END LOOP; ... 4. NULL值句 答,在值句值中加空值句~用于值充值句的完整性。示例, IF boolean_expr THEN ... ELSE NULL; END IF; 5. SQL in PL/SQL 答,1) 只有DML SQL可以直接在PL/SQL中使用; 第五章 1. 游值(CURSOR) 答,1) 作用,用于提取多行据集数; 2) 声明,a. 普通申明,DELCARE CURSOR CURSOR_NAME IS select_statement /* CURSOR的容必值是一值值值句内条*/ b. 值申明,参数DELCARE CURSOR c_stu(p_id student.ID%TYPE) SELECT * FROM student WHERE ID = p_id; 3) 打值游值,OPEN Cursor_name; /*相于值行当select值句~且把值行值果存入CURSOR; 4) 从数游值中取,a. FETCH cursor_name INTO var1, var2, ...; /*值量的量、值型、值序要数和Table中字段一致;*/ b. FETCH cursor_name INTO record_var; 注,值值将从CURSOR取出放入值量中~每FETCH一次取一值值条; 5) 值值游值: CLOSE Cursor_name; 注,a. 游值使用后值值值值; b. 值值后的游值不能FETCH和再次CLOSE; c. 值值游值相于存中当将内CURSOR的容空内清; 2. 游值的性属 答,1) %FOUND: 是否有值; 2) %NOTFOUND: 是否有值没; 3) %ISOPEN: 是否是打值值状; 4) %ROWCOUNT: CURSOR当号前的值值; 3. 游值的FETCH循值 答,1) LOOP FETCH cursor INTO ... EXIT WHEN cursor%NOTFOUND; /*当cursor中值值后退出没*/ END LOOP; 2) WHILE cursor%FOUND LOOP FETCH cursor INTO ... END LOOP; 3) FOR var IN cursor LOOP FETCH cursor INTO... END LOOP; 第六章 1. 异常 答,DECLARE ... e_TooManyStudents EXCEPTION; /* 申明常 异*/ ... BEGIN ... RAISE e_TooManyStudents; /* 触异值值常 */ ... EXCEPTION WHEN e_TooManyStudents THEN /* 触异值值常 */ ... WHEN OTHERS THEN /* 值理所有其他常 异*/ ... END; 2004-9-8 星期三 值 PL/SQL数据值值程(下) 1. 存值值程(PROCEDURE) 答,值建值程, CREATE [OR REPLACE] PROCEDURE proc_name [(arg_name[{IN|OUT|IN OUT}]TYPE, arg_name[{IN|OUT|IN OUT}]TYPE)] {IS|AS} procedure_body 1) IN: 表示值不能被值值参数(只能位于等右值号); 2) OUT:表示值只能被值值参数(只能位于等左值号); 3) IN OUT: 表示值值型能被值值也能值值既; 2. 存值值程例子 答,CREATE OR REPLACE PROCEDURE ModeTest( p_InParm IN NUMBER, p_OutParm OUT NUMBER, p_InOutParm IN OUT NUMBER) IS v_LocalVar NUMBER; /* 声明部分 */ BEGIN v_LocalVar:=p_InParm; /* 值行部分 */ p_OutParm:=7; p_InOutParm:=7; ... EXCEPTION ... /* 异常值理部分 */ END ModeTest; 3. 值用PROCEDURE的例子 答,1) 匿名值可以值; 2) 其他PROCDEURE可以值用; 例, DECLARE v_var1 NUMBER; BEGIN ModeTest(12, v_var1, 10); END; 注,此值v_var1等于7 4. 指定值的模式参 答,1) 位置值示法,值用值添入所有~值形按值序一一值值参数参与参; 2) 名字值示法,值用值值出形名字~值出值参并参 ModeTest(p_InParm=>12, p_OutParm=>v_var1, p_Inout=>10); 注,a. 两值方法可以混用; b. 混用值第一必值通值位置指定。个参数来 5. 函数(Function)与值程(Procedure)的值区 答,1) 值程值用本身是一个PL/SQL值句(可以在命令行中通值exec值句直接值用); 2) 函值用是表式的一部分数达; 6. 函的明数声 答,CREATE [OR REPLACE] PROCEDURE proc_name [(arg_name[{IN|OUT|IN OUT}]TYPE, arg_name[{IN|OUT|IN OUT}]TYPE)] RETURN TYPE {IS|AS} procedure_body 注,1) 没数将个有返回值句的函是一值值; 7. 值除值程函与数 答,DROP PROCEDURE proc_name; DROP FUNCTION func_name; 第八章 1. 包 答,1) 包是可以相值值象存值在一起的将PL/SQL的值构; 2) 包只能存值在据值中~不能是本地的数; 3) 包是一值有名字的明个声; 4) 相于一当个PL/SQL值的明部分声; 5) 在值的明部分出值的任何值西都能出值在包中声; 6) 包中可以包含值程、函、游值值量数与; 7) 可以其他从PL/SQL值中引用包~包提供了可用于PL/SQL的全局值量。 8) 包有包值和包主~如包值中有任何函值程~值包主可以不需要。体没数与体 2. 包值 答,1) 包值包含了有值包的容的信息~包值不含任何值程的代值。内 2) 值法, CREATE [OR REPLACE] PACKAGE pack_name {IS|AS} procedure_specification|function_specification|variable_declaration|type_definition| exception_declaration|cursor_declaration END pack_name; 3) 示例, CREATE OR REPLACE PACKAGE pak_test AS PROCEDURE RemoveStudent(p_StuID IN students.id%TYPE); TYPE t_StuIDTable IS TABLE OF students.id%TYPE INDEX BY BINARY_INTEGER; END pak_test; 3. 包主体 答,1) 包主是可值的~如包值中有任何函值程~值包主可以不需要。体没数与体 2) 包主包值存放在不同的据字典中。体与数 3) 如包值值值不成功~包主无法正值值。体确 4) 包主包含了所有在包值中明的所有值程函的代值。体声与数 5) 示例, CREATE OR REPLACE PACKAGE BODY pak_test AS PROCEDURE RemoveStudent(p_StuID IN students.id%TYPE) IS BEGIN ... END RemoveStudent; TYPE t_StuIDTable IS TABLE OF students.id%TYPE INDEX BY BINARY_INTEGER; END pak_test; 4. 包的作用域 答,1) 在包外值用包中值程(需加包名),pak_test.AddStudent(100010, 'CS', 101); 2) 在包主中可以直接使用包值中明的值象和值程体声(不需加包名); 5. 包中子程序的重值 答,1) 同一包中的值程函都可以重值个与数; 2) 相同的值程或函名字~但不同数参数; 6. 包的初始化 答,1) 包存放在据值中数; 2) 在第一次被值用的值候~包据值中值入存被初始化从数内并; 3) 包中定值的所有值量都被分配存内; 4) 每值都值有自己的包值量的副本。个会将内 第九章 1. 触值器 答,1) 触与值器值程/函的相同点数 a. 都是值有名字的值行值; b. 都有明、值行和常部分声体异; 2) 触与值器值程/函的不同点数 a. 触数值器必值存值在据值中; b. 触值器自值值行; 2. 值建值器触 答,1) 值法, CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE|AFTER} triggering_event ON table_reference [FOR EACH ROW [WHEN trigger_condition]] trigger_body; 2) 范例, CREATE OR REPLACE TRIGGER UpdateMajorStats AFTER INSERT OR DELETE OR UPDATE ON students DECLARE CURSOR c_Statistics IS SELECT * FROM students GROUP BY major; BEGIN ... END Up; 3. 触值器 答,1) 三值句个(INSERT/UPDATE/DELETE); 2) 二值值型(之前/之后); 3) 二值值值(row-level/statement-level); 所以一共有 3 X 2 X 2 = 12 4. 触值器的限制 答,1) 不值值使用事值控制值句; 2) 不能明任何声LONG或LONG RAW值量; 3) 可以值值的表有限。 5. 触体值器的主可以值值的表 答,1) 不可以值取或修改任何值化表(被DML值句正在修改的表); 2) 不可以值取或修改限制表(值有值束的表)的主值、唯一值、外值列。 (4)Java值值中使用Oracle的ORA-01000 多朋友在很Java值值中~使用Oracle数会碰据值的值候~值常到有ORA-01000: maximum open cursors exceeded.的值值。 值值上~值值值的原因~主要值是代值值值引起的。 个 ora-01000: maximum open cursors exceeded. 表示已值到一值程打值的最大游值。 达个数 值 值的值值容易出值在很Java代值中的主要原因是,Java代值在值行conn.createStatement()和 conn.prepareStatement()的值候~值值上都是相在据值中打值了一当与数个cursor。尤其是~如果你的 createStatement和prepareStatement是在一循值里面的值~就非常容易出值值值值。因个会个 值游值一直在不停的打值~而且 有值值。没 一般来写值~我值在Java代值的值候~createStatement和prepareStatement都值值要放在循值外面~而且 使用了值些Statment后~及值值值。最好是在值行了一次executeQuery、executeUpdate等之后~如果不需要使用值果集 ;ResultSet,的据~就值上数将Statment值值。 值于出值ORA-01000值值值值情况~值值的加大open_cursors并不是好值法~那只是治值不治本。值值上~代值中的值患并没有解除。 而且~值大部分情况下~open_cursors只需要值置一比值小的值~就个足值使用了~除非有非常特值的要求。 (5)在store procedure中值行 DDL值句 一 是,execute immediate 'update '||table_chan||' set '||column_changed||' = '''|| v_trans_name||''' where empid = '''||v_empid||'''' ; 二是,The DBMS_SQL package can be used to execute DDL statements directly from PL/SQL. 值是一值建一表的值程的例子。值值程有,表名和字段个个两个参数及其值型的列表。 CREATE OR REPLACE PROCEDURE ddlproc (tablename varchar2, cols varchar2) AS cursor1 INTEGER; BEGIN cursor1 := dbms_sql.open_cursor; dbms_sql.parse(cursor1, 'CREATE TABLE ' || tablename || ' ( ' || cols || ' )', dbms_sql.v7); dbms_sql.close_cursor(cursor1); end; / 2 如何据值表的主值字段的名找数称? SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='TABLE_NAME'; 3 如何值值据值有多少表数? SQL>select * from all_tables; 4 使用sql值配符 通 配符 描述 示例 % 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将找值值值于值名任意位置的包含值值 computer 的所有值名。 _;下值划个, 任何值字符。 WHERE au_fname LIKE '_ean' 将找值值以 ean 值尾的所有 4 个字母的名字;Dean、Sean 等,。 [ ] 指定范值 ([a-f]) 或集合 ([abcdef]) 中的任何值字符。 个WHERE au_lname LIKE '[C-P]arsen' 将找值值以arsen 值尾且以介于 C 与 P 之值的任何值字符值始的作个者姓氏~例如~Carsen、Larsen、Karsen 等。 [^] 不于指定范值 属([a-f]) 或集合 ([abcdef]) 的任何值字符。 个WHERE au_lname LIKE 'de[^l]%' 将找值值以 de 值始且其后的字母不值 l 的所有作者的姓氏。 5使普通用值有值看v$Session的值限 GRANT SELECT ON "SYS"."V_$OPEN_CURSOR" TO "SFISM4"; GRANT SELECT ON "SYS"."V_$SESSION" TO "SFISM4"; 常用函数 distinct 去掉重值的 minus 相减 在第一表但不在第二表个个 SELECT * FROM FOOTBALL MINUS SELECT * FROM SOFTBALL; intersect 相交 INTERSECT 返回表中共有的行。两个 SELECT * FROM FOOTBAL~ UNION ALL 与UNION 一值值表值行了合但是不并它去掉重值的值值。 值值函数 count select count(*) from test; SUM SUM 就如同的本意一值返回某一列的所有值的和。它它数 SELECT SUM(SINGLES) TOTAL_SINGLES FROM TEST; SUM 只能值理字如果的值理目值不是字数它数你将会收到如下信息 值入/值出 SQL>SELECT SUM(NAME) FROM TEAMSTATS; ERROR ORA-01722 invalid number no rows selected 值值值信息然的合理的因值当NAME 字段是无法值行值值的。 AVG AVG 可以返回某一列的平均值。 SELECT AVG(SO) AVE_STRIKE_OUTS FROM TEAMSTATS~ MAX 如果你想知道某一列中的最大值值使用MAX。 SELECT MAX(HITS) FROM TEAMSTATS; MIN MIN 与MAX 值似返回一列中的最小值。它数 VARIANCE VARIANCE 方差不是值准中所定值的但它个数却是值值值域中的一至值重要的值。 SELECT VARIANCE(HITS) FROM TEAMSTATS; STDDEV 值是最后一值值函个数STDDEV 返回某一列值的值准数差。 SELECT STDDEV HITS FROM TEAMSTATS~ 日期值值函数 ADD_MONTHS ADD_MONTHS也可以工作在select 之外 值函的功能是值定的日期增加一数将个来划月值例值由于一些特殊的原因上述的值需要推值两个月那值就用到了。 LAST_DAY LAST_DAY 可以返回指定月份的最后一天. MONTHS_BETWEEN 如果你两个个想知道在值定的日期中有多少月可以使用MONTHS_BETWEEN。 select task, startdate, enddate ,months between(Startdate,enddate) duration from project; 返回值果有可能是值值. 可以利用值值来断另个将会判某一日期是否在一日期之前下例值示所有在1995 年5 月19 日以前值始的比值. SELECT * FROM PROJECT WHERE MONTHS_BETWEEN ('19-MAY-95', STARTDATE)>0; NEW_TIME 如果你你区你想把值值值整到所在的值可以使用NEW_TIME. SQL>SELECT ENDDATE EDT, NEW_TIME('ENDDATE',' EDT',' PDT') FROM PROJECT; NEXT_DAY NEXT_DAY 将与个个内你返回指定日期在同一星期或之后一星期的所要求的星期天 的数确你你几号切日期如果想知道所指定的日期的星期五是可以值值做. SQL>SELECT STARTDATE, NEXT_DAY(STARTDATE,' FRIDAY') FROM PROJECT; SYSDATE SYSDATE 将返回系值的日期和值值。 SELECT DISTINCT SYSDATE FROM PROJECT~ 函数学数 ABS ABS 函返回值定字的值值值数数 CEIL 和FLOOR CEIL 返回值定相等或比值定在的最小整与参数参数数.FLOOR 值正好相反它返回 值定相等或比值定小的最大整与参数参数数. COS COSH SIN SINH TAN TANH COS SIN TAN 函可以返回值定的三数参数数参数角函值默值的值定值弧度制. EXP EXP 将会参数数返回以值定的值指以e 值底的值数. LN and LOG 值是值函值其中两个数数LN 返回值定的自然值参数数. MOD 知道在ANSI 值准中值定取模运号算的符值%在一些解值器中被函数MOD 所取代. POWER 值函可以返回某一值一的值在使用值函值第一值底第二值指。数个数另个数数个参数数个数 SIGN 如果的值值值那值参数数SIGN 返回-1 如果的值值正那值参数数SIGN 返回1,如果值参数零那值SIGN 也返回零. SQRT 值函返回的数参数平方根,由于值是不能值数将数数平方的所以我值不能值函值用于值. 字符函数 CHR 值函返回所值值等的字符返回的字符取于值据值所数与数参数当决数依值的字符集. CONCAT 和||一作用~把字符个两个来串值接起. INITCAP 值函的第一字母值值大此外其的字母值值值成小数将参数个写它写. LOWER 和UPPER 如所你料LOWER 将参数写值值值全部小字母而UPPER 值把全部值值成大字母参数写. LPAD 与RPAD 值函最少需要最多需要三每一是需要值理的字符两个数两个参数个参数个参数串 第二是需要字符个参数将个参数来填串值充的值度第三表示加值部分用什值字符做值 第三的默值值值空格但也可以是值的字符或字符个参数个串. LTRIM 与RTRIM LTRIM 和RTRIM至少需要一最多个参数两个参数个参数与允值第一LPAD 和RPAD 值似是一字符个个参数个个串第二也是一字符或字符串默值值是空格如果第二 不是空格的值那值值函数数将会像剪除空格那值剪除所指定的字符. REPLACE 的工作就如果的名字所值的那值值函需要三第一是需要它它数个参数个参数搜索 的字符串(列名,~第二是个参数内个参数搜索的容第三值是需要替值成的字符串如果第三个 参数省略或者是NULL 那值只值行将会内搜索操作而不替值任何容. SUBSTR 值函有三个数个参数你将份个参数允值目值字符串的一部值出~第一值目值字符串~ 第二字符个将个参数将串是要值出的子串的起点~第三是要值出的子串的值度。 如果第二值值那值个参数数将会从数源串的尾部值始向前定位至值的值值值的位置。 TRANSLATE 值一函有三~目值字符数个参数与串、源字符串和目的字符串~在目值字符串源字符 串中均出值的字符被将会替值成值值的目的字符串的字符。 INSTR 如果需要知道在一字符个内串中值足特定的容的位置可以使用INSTR ~的第一它个参 是目值字符数个参数内个参数数串~第二是匹配的容~第三和第四是字用以指定值始搜 索的起点以及指出第值几个条将会足件的被返回。 LENGTH LENGTH将返回指定字符串的值度。 值值函数 值值函有三可以使方数个你将数从另便地据一值值型值值值一值值型。 TO_CHAR 值函的最初功能是一字值值值字符型~不同的数将个数会它来它解值器可能使用值值其的 据值型例如日期型值值值字符型或数参数者是值有更多的。 TO_NUMBER 值函数与TO_CHAR 函相值值值而易值是一字符数它将个数数串型字值值值值型。 其他函数 GREATEST 与LEAST 值函返回表式中最大的和最小的。两个数将几个达 SELECT GREATEST;‘ALPHA’~‘ BRAVO’~‘ FOXTROT’~‘ DELTA’, FROM CONVERT~ 看来有必要使用FROM 子句可是如果FROM 子句有的值没你将会个收到一值值信息每 一个SELECT 值句都需要FROM 子句。 USER 值函返回前使用据值的用值的名字数当数 用 java 值用 oracle 存值值程值值 网址: http://www.eygle.com/digest/2008/05/java_oracle_procedure.html 1、什值是存值值程。存值值程是据值服值器端的一段程序~有值值型。一值值似于数它两SELECT值值~用于值索数数数另据~值索到的据能值以据集的形式返回值客值。一值值似于INSERT或DELETE值值~它数个个既数不返回据~只是值行一值作。有的服值器允值同一存值值程可以返回据又可以值行值作。2、什值值候需要用存值值程 如果服值器定值了存值值程~值当决根据需要定是否要用存值值程。存值值程通常是一些值常要值行的任值~值些任值往往是值值大量的值值而值行的。在服值器上值行存值值程~可以改善值用程序的性能。值是因值, .服值器往往具有强大的值算能力和速度。 .避免把大量的据下值到客值端~少值上的值值量。数减网 例如~假值一值用程序需要值个个数个数算一据~值据需要涉及到值多值值。如果不使用存值值程的值~把值些数网据下值到客值端~值致值上的流量值增。 不值如此~客值端可能是一台老掉牙的值算机~的它运很算速度慢。而改用存值值程后~服值器会很数来并个数快地把据值算出~且只需值值一据值客值端~其效率之高是非常明值的。3、存值值程的参数 要值行服值器上的存值值程~往往要值值一些参数参数。值些分值四值值型, 第一值值值入~由客值程序向存值值程值值值。称参数 第二值值值出~由存值值程向客值程序返回值果。称参数 第三值值值入称/值出~可以由客值程序向存值值程值值值~也可以由存值值程向客值程序返回值果参数既。 第四值值值值值值~由存值值程向客值程序返回值值信息。称状参数 要值明的是~不是所有的服值器都并参数支持上述四值值型的~例如~InterBase就不支持状值参数。 4、oracle 存值值程的基本值法 1.基本值构 CREATE OR REPLACEPROCEDURE 存值值程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 值量1 INTEGER :=0; 值量2 DATE; BEGIN END 存值值程名字 2.SELECT INTO STATEMENT 将select值值的值果存入到值量中~可以同值多列存值多值量中~必值有一将个个条 值值~否值抛出常异(如果有值值没抛出NO_DATA_FOUND) 例子, BEGIN SELECT col1,col2 into 值量1,值量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN xxxx; END; 一,无返回值的存值值程 存值值程值, CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGIN INSERT INTO HYQ.B_ID (I_ID,I_NAME) S (PARA1, PARA2); END TESTA; 然后~在呢java里值用值就用下面的代值, package com.hyq.src; import java.sql.*; import java.sql.ResultSet; public class TestProcedureOne {public TestProcedureOne() { } public static void main(String[] args ){ String driver = "oracle.jdbc.driver.OracleDriver"; String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521: hyq "; Statement stmt = null; ResultSet rs = null; Connection conn = null; CallableStatement cstmt = null; try { Class.forName(driver); conn = DriverManager.getConnection(strUrl, " hyq ", " hyq "); CallableStatement proc = null; proc = conn.prepareCall("{ call HYQ.TESTA(?,?) }"); proc.setString(1, "100"); proc.setString(2, "TestOne"); proc.execute(); } catch (SQLException ex2) { ex2.printStackTrace(); } catch (Exception ex2) { ex2.printStackTrace(); } finally{ try { if(rs != null){ rs.close(); if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } } } catch (SQLException ex1) { } } } } 当然了~值就先要求要建值表TESTTB,里面字段两个;I_ID~I_NAME,。二,有返回值的存值值程;非列表, 存值值程值, CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS BEGIN SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1; END TESTB; 在java里值用值就用下面的代值, package com.hyq.src; public class TestProcedureTWO { public TestProcedureTWO() { } public static void main(String[] args ){ String driver = "oracle.jdbc.driver.OracleDriver"; String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq"; Statement stmt = null; ResultSet rs = null; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(strUrl, " hyq ", " hyq "); CallableStatement proc = null; proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }"); proc.setString(1, "100"); proc.registerOutParameter(2, Types.VARCHAR); proc.execute(); String testPrint = proc.getString(2); System.out.println("=testPrint=is="+testPrint); } catch (SQLException ex2) { ex2.printStackTrace(); } catch (Exception ex2) { ex2.printStackTrace(); } finally{ try { if(rs != null){ rs.close(); if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } } } catch (SQLException ex1) { } } } } } 注意~值里的proc.getString(2)中的值数2并非任意的~而是和存值值程中的out列值值的~如果out是在第一位置~那就是个proc.getString(1)~如果是第三位置~就是个proc.getString(3)~然当也可以同值有多返回值~那就是再多加个几个out参数了。 三,返回列表 由于oracle存值值程有返回值~的所有返回值都是通值没它out参数来替代的~列表同值也不例外~但由于是集合~所以不能用一般的~必值要用参数pagkage了.所以要分部分~两1~ 建一程序包。如下,个 CREATE OR REPLACE PACKAGE TESTPACKAGE ASTYPE Test_CURSOR IS REF CURSOR;end TESTPACKAGE; 2~建立存值值程~存值值程值, CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR) IS BEGIN OPEN p_CURSOR FOR SELECT * FROM HYQ.TESTTB; END TESTC; 可以看到~是把游值它个个;可以理解值一指值,~作值一out 参数来返回值的。在java里值用值就用下面的代值, package com.hyq.src; import java.sql.*; import java.io.OutputStream; import java.io.Writer; import java.sql.PreparedStatement;import java.sql.ResultSet; import oracle.jdbc.driver.*; public class TestProcedureTHREE { public TestProcedureTHREE() { } public static void main(String[] args ){ String driver = "oracle.jdbc.driver.OracleDriver"; String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq"; Statement stmt = null; ResultSet rs = null; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(strUrl, "hyq", "hyq"); CallableStatement proc = null; proc = conn.prepareCall("{ call hyq.testc(?) }"); proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); proc.execute(); rs = (ResultSet)proc.getObject(1); while(rs.next()) { System.out.println(" " } } catch (SQLException ex2) { ex2.printStackTrace(); } catch (Exception ex2) { ex2.printStackTrace(); } finally{ try { if(rs != null){ rs.close(); if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } } } catch (SQLException ex1) { } } } } 在值里要注意~在值行前一定要先把oracle的值值包放到class路径会里~否值值值。 数据库相关知识 1 向数据库表中添加数据 insert into 表名 (列名,列名) values (数据,数据) ??数据为非数字用''包涵 ??列名与数据一一对应 2 向表中添加别的表中已有的数据 insert into 此表(此表列名) select 原表列名 from 原表名 ??规则同上 3 新建表并添加别的表中已有的数据 select 原表名.原表列,原表列 into 新建表名 from 原表名 ??规则同上 4 重复插入多个数据 insert 表名 (列名,列名) select 数据,数据 union select 数据,数据 ??除最后一行外每行数据都用union结尾 5 新建表 从原表中添加列 并添加标识列 select 原表名.列名,identity(类型,标识种子,增量) as 标识列名称(自己命名) into 新表名称 from 原表名 ??标识种子为新列的第一个数据 6 更新数据 update 表名 set 列名=更新后的内容 where 列名=更新前的内容 ??两个列名相同 更新整列 update 表名 set 列名=更新后的内容 7 删除数据 delete from 表名 where=要删除的数据 删除所有数据 truncate table 表名 查询 8 查询数据并以数字形式体现 select count(*) from 表名 9 查询表中所有数据 select *from 表名 10 查询指定的表中的数据 select 列名 as 显示,列名 as 显示 from 表名 where 查找列名 查找符号 查找内容 ??列名为查找后显示的列名 和查找本身没关系 ??显示是指列名显示成通俗易懂 的 和内容没本质关系 11合并两个列并重新命名 select 首列列名+'.'+尾列列名 as '显示列名' from 表名 ??首列尾列的意思是象姓名 一样有个先后顺序 另一种方法 selecrt '显示列名'=首列+'.'+尾列 from 表名 12查询空行 select 列名 from 表名 where 查找列名 is null ??为空行null时前用is ******13两表关联查询 1 select 表名.列名,表名.列名 from 主表名 inner join 副表名 on(表名.列名=表名.列名)----------两表关联量 where 条件 2 select 表名.列名,表名.列名 from 表名,表名 where 表名.列名=表名.列名 and 条件 14记数(一个列中的几个数据在另一个列中体现相同的值 求没个值的个数) select 列名 count(列名[此列名为需要统计的列名]) from 表名 group by 列名 ??两个未加注释的列名为同一列名 数据库里有个sysobjects的表 保存的是数据库中所以表的名字和其他一些东西 可以通过 查这个表得到数据 查询所以表的名字 select name from sysobjects where xtype='u' 数据库中有个syscolumns的表 保存的是每个表中所以字段的名字它是通过id字段与 sysobjects表的id字段相关联的 查询相应表中的字段 select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '相应表名') :数据库的作用及相关概念(数据与信息、数据管理与数据库、数据库管理 系统与管理信息系统);数据管理技术的发展;数据库系统结构;数据模 型及分类;数据模型的组成要素;层次模型;网状模型;关系模型;关系 模式 掌握数据库的基本概念(如data、db、dbs、mis、三级模式两级映像等); 数据模型的基本概念 数据库系统结构;概念数据模型 4学时 讲授 1.1数据库技术概述 一、 数据库系统的应用 1.应用实例 (1) 银行业务系统 (2) 铁路售票系统 (3) 超市购物系统 (4) 图书管理系统 (5) 学生选课系统 除了上述常见系统外,还有许多我们熟悉的网上的应用系统也都用到了数据库技术。 2.数据库系统的应用前景 应用日益广泛,医学监控、医学诊断、计算机辅助设计、计算机辅助制造、计算机 辅助工程、能源管理、航空系统、天气预报、交通预订等许多领域。 二、 与数据库相关的基本概念 1.数据与信息 (1)信息:泛指通过各种方式传播的可被感受的数字、文字、图像和声音等符号所 1 表征的某一事物的消息、情报和知识。 特点:是客观事物的反映;是有用的;有传递性;需一定的表现形式。 (2)数据:是记录信息的物理符号,是表达和传递信息的工具。描述事物的符号可 以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表现形式,它们都 可以经过数字化后存入计算机。 特点:有“型”和“值”之分;数据有类型和范围等约束;数据有多种物理载体和 表现形式。 (3)数据与信息的关系:既有联系、又有区别。数据是信息的载体,信息则是对数 据加工的结果,是对数据的解释。 2.数据管理与数据库 数据管理是数据处理的基础工作,数据库是数据管理的技术和手段。 区别: 数据管理 数据加工 数据处理:指对数据的收集、组织、整理、加工、存储和传播等工作。 数据传播 数据管理:是其他数据处理的核心和基础。主要任务是收集信息、将信息用数据表 示并按类别组织保存。实际上,管人、管财、管物或管事的工作就是数据管理工 作。 数据库:DB,是一个长期存储在计算机内、有组织的、可共享的、统一管理的数据 集合。是能够合理保管数据的“仓库”;是数据管理的新方法和技术。 3.数据库管理系统与管理信息系统 数据库管理系统(DBMS),是提供数据库管理的计算机系统软件,是为数据库的 建立、使用和维护而配置的系统软件。 管理信息系统(MIS)是实现某种具体事物管理功能的应用软件。是以数据库技术 为基础,它的核心是数据库。 4.数据库系统的组成 数据库系统(DBS)由DB、DBMS(及其开发工具)、应用系统、数据库软/硬件支撑环境、数据库管理员(DBA)和用户构成。 三、 数据管理技术的发展 2 数据管理是数据库的核心任务,内容包括对数据的分类、组织、编码、储存、检索 和维护。 人工管理阶段 文件系统阶段 数据库系统阶段 20世纪50年代后期—阶段 20世纪50年代中期 20世纪60年代后期 —60年代中期 应用背景 科学计算 科学计算、管理 大规模管理 硬件背景 无直接存取存储设备 磁盘、磁鼓 大容量磁盘 背 软件背景 没有操作系统 有文件系统 有数据库管理系统 景 联机实时处理、分布处理、批处理方式 批处理 联机实时处理、批处理 处理 数据的管理者 用户(程序员) 文件系统 数据库管理系统 数据面向的对象 某一应用程序 某一应用 现实世界 数据的共享程度 无共享,冗余度极大 共享性差,冗余度大 性高, 特 不独立,完全依赖于有高度的物理独立性和一定的 数据的独立性 独立性差 程序 逻辑 记录内有结构、整体无 数据的结构化 无结构 整体,用数据模型描述 结构 点 由提供数据安 数据控制能力 应用程序自己控制 应用程序自己控制 全性、完整性、并发控制和恢 复能力 四、 数据库系统结构 从DBMS的角度:DBS分为三级模式结构。是DBMS内部的系统结构,常称为数 集中式结构 据库体系结构。 DBS外部的体系结构 分布式结构 从数据库最终用户的角度:是面向用户的数据库应用系统。可分为 客户/服务器结构 并行结构 数据库体系结构——三级模式结构 1.三级模式 3 也称为子模式、用户模式。是用 户能够看见和使用的局部数据的 逻辑结构和特征的描述。 也称为概念模式、逻辑模式、数据库模式。是 数据库中全体数据的逻辑结构和特征的描述。 也称为存储模式。是对数据库中数据物理结构 和存储方式的描述。 这儿模式是指对数据库中全体数据的逻辑结构和特征的描述。 如学生选课系统中,三层结构P8图。 2.两级映像 外模式/模式映像:对于每一个外模式,数据库系统都有一个外模式/模式映像,通 常在各自的中加以描述。当模式变时,改变映像,可以使 外模式不变,保证数据与程序的。 模式/内模式映像:这个映像是唯一的,通常包含在描述中。当内模式改变时, 改变映像,可使模式不变。保证数据与程序的。 五、数据模型 现有的数据库系统均是基于某种数据模型建立的,因此,了解数据模型的基本概念 是学习数据库的基础。 1.数据模型及分类 在数据库中不仅要反映数据本身的内容,还要反映数据之间的联系。而计算机不可 能直接处理现实世界中的具体事物,所以必须使用相应的工具,先将具体事物转换成计 算机能够处理的数据,然后再由计算机进行处理。这个工具就是数据模型。 通俗地讲数据模型就是现实世界的模拟。 4 事物及其联系 实体及其联系 数据及其联系 信息在计算现实世界在机中的数据人的头脑中的反应。 存储。 现实世界 数据世界 (计算机能处理的) 信息世界 认识抽象 存在于人脑之概念模型 数据模型 外的、客观存转换 在的事物 数据模型应满足三方面要求: 一是能比较真实地模拟现实世界; 二是容易为人所理解; 三是便于在计算机上实现。 在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。 概念数据模型:也称信息模型,它是按用户的观点来对数据和信息建模, 按应用主要用于数据库设计。是独立于计算机系统的数据模层次不 型。 同划分 为: 逻辑数据模型:也称为结构数据模型,简称为数据模型。是按计算机系 统的观点对数据建模,主要用于DBMS的实现。 分为:层次数据模型、网状模型、关系模型。 2.数据模型的组成要素 数据模型是现实世界中的事物及其之间联系的一种抽象表示,是一种形式化的描述 数据、数据间联系以及有关语义约束规则的方法。 组成要素: (1) 数据结构:规定了如何把基本的数据项组织成较大的数据单位,以描述数据 的类型、内容、性质和数据之间的相互关系。规定了数据模型的。 (2) 数据操作:指一组用于指定数据结构的任何有效的操作或推导规则。主要有 查询和更新两大类。规定了数据模型的。 (3) 数据的约束条件:保证数据库中数据的正确性、有效性和相容性。 3.层次数据模型 使用树形结构表示记录类型及其联系。数据操作:查询、插入、删除、修改。层次 模型所体现的记录之间的联系只限于二元1:N或1:1的联系。 5 优点:结构简单、层次分明,便于在计算机内实现,处理效率较高。 缺点:缺乏直接表达复杂联系的能力,对插入或删除操作有较多的限制。 4.网状数据模型 网状模型结点之间的联系不受层次的限制,可以任意发生联系。 优点:能够更为直接地描述现实世界,具有存取效率高等良好性能。 缺点:结构复杂,不便于终端用户掌握,加重了编写应用程序的负担。 5.关系数据模型 是目前最重要、应用最广泛的一种数据模型。 把二维表称为关系,列称为属性,行称为元组。关系模型中的数据操作的特点是集 合操作方式,即操作的对象和结果都是集合。定义三类完整性约束:实体完整性、参照 完整性、用户定义完整性。下面着重介绍关系数据模型。 : 1.P16习题1、5、6、7; 2.查找资料指出你生活所见的有哪些是数据库管理系统。 3.预习P10第1.2.2节“数据模型”和第2.1、2.2节 6
)的含义是单元格 …………>范文三:数据库相关知识
");" + rs.getString(1) + "+rs.getString(2)+" 范文四:数据库相关知识
范文五:主要知识点:数据库的作用及相关概念(数据与信息