VisualBasic中的数据库编程.ppt
《VisualBasic中的数据库编程.ppt》由会员分享,可在线阅读,更多相关《VisualBasic中的数据库编程.ppt(132页珍藏版)》请在三一办公上搜索。
1、10.1 数据库的概念10.2 关系数据库操作语言SQL简介10.3 Visual Basic 中的数据库操作,第10章 Visual Basic 中的数据库编程,一个数据库系统由数据库和数据库管理系统(DBMS,Data Base Management System)组成。数据库存储数据,是一个静态的存储结构。数据库中的数据是存放在外存储器中的永久性数据,使用时必须把它调入内存。数据库管理系统是一个专门的管理软件,负责数据的检索、增加。、删除与修改,维护数据的一致性与完整性,提供正确使用的各种机制。应用程序不能直接使用数据库中的数据,只能提出访问数据的请求,由DBMS完成对数据的操作。,10
2、.1 数据库的概念,关系数据库的逻辑结构,关系数据库是二维表的集合。这些二维表是有应用语义的。表中的每行是描述事物状态的一组数据,每列描述事物的某个特征。下列是几个重要的术语。元组:表中的一行,应用上常称为记录。属性:表中的一列,应用上常称为字段。候选码:能够惟一地标识表中一个记录的最小的字段集合。主码(主键,主关键字):被指定用作记录标识的候选码。从上述定义可见,候选码可有多个,主码则只有一个。,例 10_1 某数据库中包含三个表,教师表(教师号,教师名,系,教研组);,例 10_1 某数据库中包含三个表,教师表(教师号,教师名,系,教研组);课程表(课程号,课程名,学时,学分,层次);,例
3、 10_1 某数据库中包含三个表,教师表(教师号,教师名,系,教研组);课程表(课程号,课程名,学时,学分,层次);排课表(班级号,课程号,教师号,上课时间,课室号)。,例 10_1 某数据库中包含三个表,教师表(教师号,教师名,系,教研组);课程表(课程号,课程名,学时,学分,层次);排课表(班级号,课程号,教师号,上课时间,课室号)。括号内是每个表的字段名。在教师表中,根据“教师号”可以惟一决定一个记录。因此,“教师号”可以作为教师表的候选码。如果无一教师同姓同名,则“教师号”也可作为候选码。可以任选其中之一作为主码。课程表中只有“课程号”可以作为候选码,因此它就是主码。排课表中只有同时给
4、定“班级号”和“课程号”才能惟一决定一个记录,所以它的主码是字段集合(班级号,课程号)。,排课表中的字段名“课程号”与课程表的主码“课程号”语义相同且取值范围也相同,称为课程表的外码。排课表可以通过它与课程表中的“课程号”联系。字段名“教师号”与教师的主码“教师号”语义相同且取值范围也相同,是教师表的外码。排课表可以通过它与教师表中的“教师号”联系,即排课表除主码外有两个外码。,SQL Structured Query Language(结构化查询语言)是最重要的关系数据库操作语言。SQL语言不是一个完整的程序设计语言。它没有用于控制程序分支的GOTO语句,也没有用于控制循环的DO或For语句
5、。它主要包括创建、更新和操作数据库中的数据的语句。SQL的语句 SQL中的数据操作,10.2 关系数据库操作语言SQL简介,SQL语句分两大类:DDL(数据定义语言)语句DDL语句用于创建和定义新的数据库表,字段和索引。DML(数据操作语言)语句DML语句用于检索,更新和插入数据。,10.2.1 SQL的语句,DDL语句用于创建和定义新的数据库表,字段和索引。有三类:CREAT(表定义),ALTER(表修改)和DROP(表删除)。CREATE 创建新表、字段、索引ALTER 在表中添加字段或改变字段定义DROP 删除数据库中的表或索引,DML语句用于检索,更新和插入数据。包括数据检索语句(SE
6、LECT语句)和数据更新语句(INSERT语句、UPDATE语句和DELETE语句)两大类。SELECT 检索满足条件的记录INSERT 插入新纪录UPDATE 更新指定的记录或字段DELETE 删除记录,1.数据检索语句SELECT功能:返回一张表。该表由满足检索条件的记录排列而成。格式:SELECT DISTINCT FROM,WHERE GROUP BY HAVING ORDER BY ASC/DESC,10.2.2 SQL中的数据操作,“SELECT”把所要选择查看的字段(即返回的表中所要包含的字段)的名字排列在关键字“SELECE”后面,各字段名之间用都逗号“,”分隔。其中:DIST
7、INCT 表示删掉查询结果中重复的行;FROM SELECT语句必须带的子句,指明要从哪个(些)表中选择所要查看的字段,表的名字排列在“FROM”后面,各表之间用逗号“,”分隔;,FROM 指定要从中检索的表WHERE 指定选择的标准GROUP BY 把所选择的记录分组HAVING 分组的提取条件ORDER BY 指定查询所得记录的排序方式,SQL子句,WHERE 选择的标准用跟在“WHERE”后面的表示;GROUP BY 该语句的是记录分组的根据,即把在该字段中有相同值的记录分在同一组;HAVING 该语句的是记录组提取的条件,即满足该条件的组才会最终出现在“返回表”中;ORDER BY 该
8、语句的是记录排序所用的“关键字”。ASC是升序,DESC是降序。,例 10_2 查看教师表中的全部数据.SELECT*FROM 教师在此,*代表全部字段的字段名。这是简化的写法,等价于:SELECT 教师号,教师名,系,教研组FROM 教师检索结果返回一张表。例 10_3 查看教师表中的全部教师的编号、姓名和所在系SELECT 教师号,教师名,系,FROM 教师例 10_4 在教师表中检索计算机系的教师SELECT*FROM 教师 WHERE 系=“计算机”,例 10_5 在课程表中查找学时数75大于,小于90的课程的课程名、学时数和学分数。SELECT 课程名,学时,学分 FROM 课程 W
9、HERE学时WHERE75 And 学时.,例 10_8 在课程表中使用”GROUP BY”,按课程名分组。SELECT 课程名,SUM(学时),SUM(学分)FROM 课程 GROUP BY课程名例 10_9 在课程表中使用”GROUP BY”按课程名分组后,使用HAVING提取同组课程学时之和70大于的行SELECT 课程名,SUM(学时),SUM(学分)FROM 课程 GROUP BY课程名HAVING SUM(学时)70,2.数据更新语句SQL的数据更新语句包括UPDATE语句,INSERT语句和DELETE语句三类。(1)UPDATE语句功能:对合乎条件的记录,改变其中一个或多个字段
10、(列)的值。格式:UPDATE 表名 SET=,=WHERE,例 10_10 把课程表中每门课程增加18学时,增加1个学分。UPDATE 课程SET学时学时+18,学分+1例 10_11 把0102号课程星期二3,4节的课改为星期一3,4节,地点不变。UPDATE 排课SET止课时间“周一34”WHERE 课程号“0102”And 上课时间“周二34”,(2)INSERT语句功能:添加新的记录到表中。格式:INSERT INTO(,)VALUES(,)(3)DELETE语句功能:删除表中记录。若无WHERE语句则删除表中全部数据,但表仍存在。格式:DELETE FROM WHERE,例 10_
11、12 在教师表中增加一个教师。INSERT INTO 教师(教师号,教师名,系,教研组)VALUES(“1031”,”余佩玉”,“电信工程”,“系统”)例 10_13 删除排课表中全部数据。DELETE FROM 排课例 10_14 从教师表中删除0873号教师的记录。DELETE FROM 教师 WHERE 教师号=“0873”,VB数据库应用程序包括三部分,用户界面、Jet引擎、数据库。,10.3 Visual Basic 中的数据库操作,用户界面,Jet引擎,数据库,VB提供的数据库引擎名叫“Jet”。它位于用户程序与数据库文件之间,功能是把用户程序访问数据库的请求变成对数据库的实际操作
12、,实现“透明”访问。只要是Jet支持的数据库,不管它是什么格式,在用户程序中都使用相同的数据访问对象和编程技术。此外,Jet包含一个“查询处理器”,接受、解释与执行SQL语句的请求。Jet还包含一个“结果处理器”,管理查询返回的结果。VB应用程序的用户界面的可视部分是窗体。通过窗体,用户可以查看和更新数据。驱动这些窗体的是应用程序的VB代码,包括用来请求数据库服务的“数据访问对象”的属性和方法。,数据库是包含数据库表的一个或多个文件,它包含数据但不对数据做任何操作。数据操作是数据库引擎的人任务。数据库应用程序的这三个部分可都放在一台计算机上,供单用户应用程序使用;也可放在不同的计算机上,通过网
13、络连接起来。,把数据存放在一台计算机上,而把应用程序存放在另外的计算机上的这种数据库应用程序有两种结构。一种叫“远程数据库”,另一种叫“客户机/服务器数据库”。在客户机/服务器数据库系统中,数据库引擎与数据库一同放在服务器上。数据库引擎可以同时为多台客户机服务。在远程数据库系统中,数据库引擎与用户应用程序放在同一台计算机上,数据库单独放在远程计算机上。,用户界面,数据库引擎,数据库,客户机/服务器,服务器,客户机,服务器,客户机,用户界面,数据库引擎,数据库,远程,在VB中不能直接对数据库内的表进行访问。VB通过“记录集”(Record set)对象访问数据库。记录集由一个或几个表中的数据构成
14、,也是由行和列组成的一张表。在VB中的记录集有表、动态集和快照三种类型。,1.表(Table)类型表类型的记录集当中的数据只能来源于实际数据库中的一个表,不能是多个表中数据的联合。VB中的各种数据库操作对表类型的记录集都适用。2.动态集(DynaSet)类型动态集类型的记录集当中的数据是对一个或几个表中的记录的引用。动态集和产生动态集的基本表可以互相更新。在打开动态集时,如果其他用户修改了基本表,动态集将反映这种修改。,3.快照(SnapShot)类型快照类型的记录集是静态的数据(只读)。它反映产生快照的一瞬间数据库的状态。因此,只适合于浏览。快照类型有一个变形类型,被称为“仅向前快照”或“向
15、前滚动快照”。仅向前快照只允许在记录集内向前移动,而且在VB中的仅向前快照类型的记录集是不可更新的。在VB中建立数据库有下列4种方法。(1)使用可视化数据管理器无需编程。(2)使用数据反访问对象通过编程。(3)通过 Microsoft Access 数据库管理系统。用Microsoft Access 创建的数据库与在VB中创建的库是一样的。(4)通过外部数据库应用程序。如 FoxPro,dBASE或ODBC客户机/服务器应用程序产品。VB可以访问这些外部数据库。,1.启动可视化数据管理器在VB的 设计 模式窗口中单击“外接程序”菜单中的“可视化数据管理器”命令即弹出可视化数据管理器窗口。,10
16、.3.1 可视化数据管理器,2.使用可视化数据管理器建立数据库使用可视化数据管理器建立数据库的过程大致分为三步。第一步,建立数据库结构;第二步,向数据库中添加表;第三步,向表中输入数据。,例 10_15 新建取名为“排课信息.mdb”的数据库并在其中建立名为“课程”的表。“课程”表的内容为表10-2所示。,第一步,建立数据库结构,单击此处,第一步,建立数据库结构,存储路径,第一步,建立数据库结构,数据库名,单击此处,第一步,建立数据库结构,数据库路径和名字,下面开始在数据库中建立表。,第二步,向数据库中添加表,右击可弹出菜单,单击这里,第二步,向数据库中添加表,单击这里,第二步,向数据库中添加
17、表,Text类型需设长度,第二步,向数据库中添加表,添加索引,第二步,向数据库中添加表,单击这里则可生成表,第三步,向表中输入数据,第三步,向表中输入数据,第三步,向表中输入数据,第三步,向表中输入数据,基本概念DAO 是 Microsoft Jet 数据库引擎的面向对象的编程接口,由一系列数据访问对象以分层形式组织而成。分层结构的顶部是 Microsoft Jet 数据库引擎本身DBEngine 对象,它是惟一不被其他对象包含的数据访问对象。它拥有一个Workspaces(工作区集合)对像,该集合包含一个或多个Workspace(工作区)对象。每个Workspace对象拥有一个DataBas
18、es(数据库集合)对象,该集合包含一个或多个DataBase(数据库)对象。每个DataBase对象拥有一个TableDefs(表集合)对象,该集合包含一个或多个TableDef(表)对象。如此等等.,10.3.2 DAO数据访问对象,DAO 分层结构图中的元素实际上是类而不是对象。它们只描述对象的“类型”。例如语句:Dim db As DataBase所表示的意思是:db 是一个变量,代表一个 DataBase(数据库)类型的对象。语句:Dim rs As RecordSet所表示的意思是:rs 是一个变量,代表一个RecordSet(记录集)类型的对象。,在这个分层结构的模型中,集合的成员
19、可用于基于0的索引来访问。例如在名叫 db 的 DataBase 中的第一个 TableDef,可以用 db.TableDefs(0)来表示,第二个用 db.TableDefs(1)来表示,等等。分层结构中的对象通过它们的完整路径来标识。在路径中使用点“.”定位符。例如:DBEnging.Workspaces(0).DataBases(0).TableDefs(0).Fields(“课程号”)表示一个名叫“课程号”的字段。该字段在TableDefs集合的第一个TableDef中,TableDefs集合在DataBases集合的第一个DataBase中,DataBases集合在Workspace
20、s集合的第一个Workspace中,而Workspaces集合则在DBEnging中。,使用 DAO 数据访问对象编程包括两个内容:一是创建对象变量;二是通过设置其属性和调用其方法来操作它们,实现对数据库本身的访问。,(1)DBEngine 对象DBEngine对象位于 DAO 顶层,容纳并控制其他 DAO 对象的行为。它不属于任何对象集合,不能在程序中创建它的实例。,(2)Workspace 对象和 Workspaces 集合Workspace 对象不是一个永久性的对象。它是DBEngine 对象的一个“会话”(session)。它从用户注册开始完成一系列操作和事务处理,描述 Microso
21、ft Jet 数据库引擎所进行的一系列工作。在用户注销或管理员强制终止时结束。Workspaces 集合包含当前 DBEngine 对象中所有活动的 Workspace 对象。第一次引用 Workspace 对象时,DBEngine 自动创建默认工作区 Workspaces(0)。,Workspace 对象的属性和方法摘要,Name 属性 Workspace 对象的名字Type 属性 Workspace 对象的类型,共有两种:通过 DAO 直接访问 ODBC 数据源时,使用 ODBCDirect Workspace;访问 Microsoft Jet 数据库时使用 Microsoft Jet W
22、orkspace,OpenDataBase 方法 打开 Microsoft Jet 3.51 支持的所有类型的数据库CreateDataBase 方法 在指定的 Microsoft Jet 工作区创建一个新的数据库,以*.mdb 文件的形式存放在磁盘上,并返回一个打开的 DataBase 对象,Workspace 对象的方法摘要,OpenDataBase 方法功能:在一个 Workspace 对象中打开指定的(物理)数据库,并且把该数据库的引用返回代表它的 DataBase 对象。格式:Set=.OpenDataBase(,),DataBase 一个对象变量,代表要打开的数据库Workspac
23、e 可选。是一个对象变量,代表一个存放的Workspace 对象,它是数据库所在的工作区。如 果不指定这个值,则使用默认 Workspacedbname 一个字符串,是已经存在的Microsoft Jet 数据库文件的名字或者是一个 ODBC 数据源的名字Options 可选。如果是 Microsoft Jet Workspace,则 True 表示以“独占”方式打开数据库,False 表示以“共享”方式打开Read-Only 可选,是一个布尔变量。True 表示只读,False 表示可读/写Connect 可选,是一个字符串变量,指明包括口令在内的各种连接信息,CreateDataBase
24、方法格式:Set=.CreateDataBase(,),DataBase 一个对象变量,代表要创建的数据库对象Workspace 一个对象变量,代表一个存在的工作区对象,所要创建的数据库对象就将被包含在这个工作区。如果默认这个部分,则自动使用默认工作区Name 1 至 255 个字符的字符串,是数据库文件的名字。可以使用完全的路径和文件名。默认的类型是.mdbLocale 一个字符串表达式,指定排序方式。此域不能缺(但可以使用默认值),否则出错。如果要为新数据库建立一个“口令”,可在“口令”前加上字符串“;pwd=”连接到 locale 字符串的后面。例如,locale参数使用默认值,口令用“
25、little-cat”则应在此位置填写“;pwd=“little-cat”Options 常数的组合,指定诸如版本号等信息。若不指定则使用 version 3.0 文件格式,(3)DataBase 对象和 DataBases 集合DataBase 对象映射的是打开的数据库。建立数据库映射,必须结合 Set 语句和 Workspace 对象的 OpenDataBase 或 CreateDataBase 方法,将一个 DataBase 型的对象变量指定为对数据库的引用,然后通过该变量的属性和方法来操作数据库。DataBases 集合是当前打开的数据库的集合。当一个 DataBase 对象在某个 W
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualBasic 中的 数据库 编程
链接地址:https://www.31ppt.com/p-6523017.html