1第9章java数据库编程接口9.1知识框架图9.1本章知识结构9.2知识点分析一、数据库基础知识概述1.数据库技术概述:数据库是在长期存储在计算机内的、有组织的、可共享的数据集合。数据是数据库中存储的基本对象。数据库管理系统DBMS(DatabaseManagementSystem)是位于用户和操作系统之间的一层数据管理数据库基础知识数据库技术概述数据库结构java数据库编程接口SQL语言SQL语言基础知识表的创建与维护数据查询SELECT插入语句INSERT数据维护数据库的逻辑结构(二维表)外来码二维表的操作投影操作选择操作查询排序输出ORDERBY修改语句UPDATE删除语句DELETE表的创建与删除连接操作:多表查询查询统计Access数据库实例Access操作界面在Access中创建表表中数据的维护与浏览创建数据源JDBC与数据库访问JDBC概述利用JDBC访问数据库的基本方法JDBC的常用类与接口建立数据库连接创建语句对象向数据库发送SQL语句:查询,插入,删除和修改执行带有参数的SQL语句在数据库中创建表CREATETABLE语句数据维护2软件。主要包括数据定义、数据操纵、数据库的运行管理和建立和维护等功能。数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。常常把数据库系统简称为数据库。数据库管理技术的发展经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。2.数据库结构数据模型决定了数据库组织和管理数据的方式,在数据库领域中最常用的数据模型有层次模型、网状模型、关系模型和面向对象模型。(1)二维表关系模型是目前最重要的一种数据模型,关系型数据库采用关系模型作为数据的组织方式。关系模型中数据的逻辑结构是一张二维表,由行和列组成。列决定了二维表的结构,每列表示一个属性。每行存储二维表的一条记录。表9.1学生信息表就是一张二维表。表9.1学生信息表学号姓名性别出生年月学院号2008111101王晓明男1990-4-6D012008111102黄大忠男1989-8-1D022008111103张丽丽女1991-1-1D012008111104李萍女1990-2-8D03……表9.2学院表学院号学院名电话D01计算机学院86361302D02外语学院86381333D03材料学院86361311D04建筑城规学院86361388……在表9.1学生信息表中,每个学生都用学号、姓名、性别、出生年月和学院号等五个属性来描述,每一行的取值对应一条学生记录。所有学生信息表中的记录构成了一个集合,每条学生记录可以看作这个集合中的一个元素。因为集合中的元素不能重复,所以关系型数据库的二维表的记录也不能重复。(2)关系:一个关系对应一张二维表,如表9.1学生信息表和表9.2学院表。(3)元组:标的一行。(4)属性:一列为一个属性。(5)表的主码(Key):表中的某个属性或者属性组,可以唯一的确定表中的一组记录。关系模型以主码作为唯一性标识,主码不能为NULL。如学生信息表可以采用学号作为主码,因为每个学生的学号是唯一的,字段学号在任何一条学生记录中都不能为空;学院表一般采用学院号作为主码。(6)表的外码(Foreignkey):一个表中的某一列是另一个表的主码。如表9.1学生信息表中的学院号是表9.2学院表的主键,那么在表9.1中字段学院号就是外码。学生信息表和学院表之间是有联系的,每个学生只能属于一个学院,而一个学院可以包含很多名学生。学生信息表和学院表之间也是存在于某种约束关系的,学生信息表中的“学院号”的取值必须是学院表中“学院号”取值的某个有效值。删除学院表之前,必须确定学生信息表中已经没有学院号等于待删除学院编号的学生记录。通过这些约束关系,来保持学院表和学生信息表中数据的一致性。二、SQL语言简介1.SQL3SQL(StructuredQueryLanguage)结构化查询语言,是一个通用的,功能极强的关系数据库语言。SQL语言结构简洁,功能强大,简单易学。自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。大多数数据库都采用SQL作为共同的数据存储语言和标准接口,如Oracle,Sybase,Informix,SQLserver等。掌握SQL语言是编写Java数据库应用程序的基础。2.表的创建、数据维护和查询的SQL操作(1)创建和删除表的SQL操作CREATETABLEstudentInfo//创建学生信息表studentInfo{snoCHAR(10)PRIMARYKEY,snameVARCHAR(20),sexVARCHAR(2),birthdateDATE,dnovarchar(3)};DROPTABLEstudentInfo;//删除学生信息表studentInfo说明:①SQL语句不区分大小写。②创建表时,各个字段的定义之间用逗号隔开。③一条SQL语句书写结束后以分号结束。每条SQL语句完成一项具体的功能。④注意char和varchar的区别。uchar为定长字符型,CHAR(10)代表字符串的长度为10,当输入数据不足为10的时候,系统会自动补足空格。uVARCHAR为变长字符型,VARCHAR(20)代表最大字符数为20,当输入字符不足20的时候,系统只会存储用户实际输入的字符长度,而不会补空格。(2)维护表的SQL操作主要包括从表中插入新的记录,删除记录和修改记录的操作。①向表中出入一条新的记录INSERTINTOstudentInfoVALUES(‘2008111105’,‘刘晓’,‘女’,‘1991-3-6’,‘D04’);向学生信息表studentInfo中插入一条新记录。②修改表中的一条记录UPDATEstudentInfosetsex=’女’WHEREsno=’2008111105’;将studentInfo表中学号为2008111105的学生的性别改为女。③删除表中符合条件的记录DELETEFROMstudentInfoWHEREsno=’2008111105’;从studentInfo表中删除学号为2008111105的学生记录。(3)数据查询操作从数据库中查找符合条件的记录,并对数据进行排序、统计等。①单表查询SELECT*FROMstudentInfowheresex=’女’ANDbirthdate#1990-1-1#从学生信息表studentInfo中查询1990年1月1号后出生的所有女生信息。SELECTsno,sname,dnoFROMstudentInfoWHEREdno=’D01’ANDsex=‘男’;4显示学院号是D01的所有男生的学号,姓名和学院号。②多表查询SELECTsname,sex,birthdate,dnameFROMstudentInfo,deptwherestudentInfo.sno=dept.snoANDsex=’男’;查询显示计算机学院所有男生的姓名、性别、出生日期和学院名称。③查询统计SELECTCOUNT(*),SUM(salary)FROMempWHEREdno=’d01’;统计部门号d01的职工人数和工资总和。④模糊查询SELECT*FROMstudentInfoWHEREsnamelike‘王*’;查找studentInfo表中所有姓王的同学。三、ACCESS数据库实例1.ACCESS数据库简介ACCESS是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。在ACCESS中创建数据库,有两种方法:一是使用模板创建,模板数据库可以原样使用,也可以对它们进行自定义,以便更好地满足需要;二是先建立一个空数据库,然后再添加表、窗体、报表等其他对象,这种方法较为灵活,但需要分别定义每个数据库元素。无论采用哪种方法,都可以随时修改或扩展数据库。2.ACCESS中的数据类型在Access中有“文本”、“备注”、“数字”、“日期/时间”、“货币”、“自动编号”、“是/否”、“OLE对象”、“超级链接”、“查阅向导”十种数据类型。每种数据类型的用法如下:(1)文本:这种类型允许最大255个字符或数字,Access默认的大小是50个字符,而且系统只保存输入到字段中的字符,而不保存文本字段中未用位置上的空字符。可以设置“字段大小”属性控制可输入的最大字符长度。(2)备注:这种类型用来保存长度较长的文本及数字,它允许字段能够存储长达64000个字符的内容。但Access不能对备注字段进行排序或索引,却可以对文本字段进行排序和索引。在备注字段中虽然可以搜索文本,但却不如在有索引的文本字段中搜索得快。(3)数字:这种字段类型可以用来存储进行算术计算的数字数据,用户还可以设置“字段大小”属性定义一个特定的数字类型,任何指定为数字数据类型的字型可以设置成“字节”、“整数”、“长整数”、“单精度数”、“双精度数”、“同步复制ID”、“小数”五种类型。在Access中通常默认为“双精度数”。(4)日期/时间:这种类型是用来存储日期、时间或日期时间一起的,每个日期/时间字段需要8个字节的存储空间。(5)货币:这种类型是数字数据类型的特殊类型,等价于具有双精度属性的数字字段类型。向货币字段输入数据时,不必键入人民币符号和千位处的逗号,Access会自动显示人民币符号和逗号,并添加两位小数到货币字段。当小数部分多于两位时,Access会对数据进行四舍五入。精确度为小数点左方15位数及右方4位数。(6)自动编号:这种类型较为特殊,每次向表格添加新记录时,Access会自动插入唯一顺序或者随机编号,即在自动编号字段中指定某一数值。自动编号一旦被指定,就会永久地与记录连接。如果删除了5表格中含有自动编号字段的一个记录后,Access并不会为表格自动编号字段重新编号。当添加某一记录时,Access不再使用已被删除的自动编号字段的数值,而是重新按递增的规律重新赋值。(7)是/否:这种字段是针对于某一字段中只包含两个不同的可选值而设立的字段,通过是/否数据类型的格式特性,用户可以对是/否字段进行选择。(8)OLE对象:这个字段是指字段允许单独地“链接”或“嵌入”OLE对象。添加数据到OLE对象字段时,可以链接或嵌入Access表中的OLE对象是指在其他使用OLE协议程序创建的对象,例如WORD文档、EXCEL电子表格、图像、声音或其他二进制数据。OLE对象字段最大可为1GB,它主要受磁盘空间限制。(9)超级链接:这个字段主要是用来保存超级链接的,包含作为超级链接地址的文本或以文本形式存储的字符与数字的组合。当单击一个超级链接时,WEB浏览器或Access将根据超级链接地址到达指定的目标。超级链接最多可包含三部分:一是在字段或控件中显示的文本;二是到文件或页面的路径;三是在文件或页面中的地址。在这个字段或控件中插入超级链接地址最简单的方法就是在“插入”菜单中单击“超级链接”命令。(10)查阅向导:这个字段类型为用户提供了一个建立字段内容的列表,可以在列表中选择所列内容作为添入字段的内容。3.ACCESS数据库的创建步骤在ACCESS建立空数据库,名称为student,然后在数据库student中创建表student和dept。(1)启动ACCESS2003,选择“文件”菜单,“新建”,然后选择“空数据库”,在弹出的对话框中输入数据库的名称“student”。如图9.2所示。图9.2创建空数据库student单击确定后出现如图9.3所示的对话框。图9.3student的数据库主窗口(2)从图9.3可以看出有三种方法可以创建表:“使用设计器创建表”,“使用向导创建表”和“通过输入数据创建表”。这里双