掌握数据库及数据库管理系统的概念2掌课件.ppt

上传人:小飞机 文档编号:1922162 上传时间:2022-12-26 格式:PPT 页数:51 大小:537KB
返回 下载 相关 举报
掌握数据库及数据库管理系统的概念2掌课件.ppt_第1页
第1页 / 共51页
掌握数据库及数据库管理系统的概念2掌课件.ppt_第2页
第2页 / 共51页
掌握数据库及数据库管理系统的概念2掌课件.ppt_第3页
第3页 / 共51页
掌握数据库及数据库管理系统的概念2掌课件.ppt_第4页
第4页 / 共51页
掌握数据库及数据库管理系统的概念2掌课件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《掌握数据库及数据库管理系统的概念2掌课件.ppt》由会员分享,可在线阅读,更多相关《掌握数据库及数据库管理系统的概念2掌课件.ppt(51页珍藏版)》请在三一办公上搜索。

1、1. 掌握数据库及数据库管理系统的概念 2. 掌握关系型数据库模型的关系(表),记录、字段、关键字、索引概念等。 3. 学会使用可视化数据管理器建立的数据库是Access数据库(类型名为.mdb) 4. 了解数据库控件的常用属性及与相关控件的绑定 5. 了解结构化查询语言SQL对数据库中的数据进行操作,本章要求:,第15章Visual Basic与数据库技术,本章重点:,本章难点:,1、查询语言SQL对数据库中的数据进行操作2、ADO对象模型,数据库的建立与使用,15.1数据库的基本概念,一、数据库的概念 数据库是以一定方式组织、存储及处理相互关联的数据的集合,它以一定的数据结构和一定的文件组

2、织方式存储数据,并允许用户访问。这种集合具备下述特点: 最少冗余; 数据资源共享; 数据独立性,即数据独立于使用它的应用程序; 由统一的软件系统管理和控制数据的增加、删除、修改和检索。,15.1数据库的基本概念,二、数据库发展的三个阶段 人工管理阶段; 文件管理阶段 数据库管理阶段,15.1数据库的基本概念,三、数据库分类 数据库中数据的组织形式有多种,按数据库使用的数据结构模型划分,到目前为止,数据库可分为: 层次数据库:采用层次模型; 网状数据库:采用网状模型; 关系数据库:采用关系模型; 面向对象数据库:采用面向对象模型。,15.1 数据库基本概念,根据数据模型,即实现数据结构化所采用的

3、联系方式,数据库可以分为层次数据库、网状数据库和关系数据库。,1 关系(表)在关系数据库中,数据以关系的形式出现,可以把关系理解成一张二维表(Table)。2 记录(行)每张二维表均由若干行和列构成,其中每一行称为一条记录(Record),3 字段(列)二维表中的每一列称为一个字段(Field),每一列均有一个名字,称为字段名,各字段名互不相同。4 主键关系数据库中的某个字段或某些字段的组合定义为主键(Primary Key)。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一标识一条记录。,关系数据库的有关概念,5索引 为了提高数据库的访问效率,表中的记录应该按照一定顺序排列,通常建立一

4、个较小的表索引表,该表中只含有索引字段和记录号。通过索引表可以快速确定要访问记录的位置。,15.2 数据库管理器,1 建立数据库,VB提供了两种方法建立数据库,分别是: 可视化数据管理器 数据访问对象(DAO),大型数据库(如Oracle、Sybase等)不能在Visual Basic 6.0中创建,要创建这些类型的数据库,需要使用相应数据库管理系统提供的工具来完成。VB6.0提供了创建Microsoft Access数据库和其它一些数据库的工具“可视化数据管理器”。 在Visual Basic开发环境内单击“外接程序”菜单中的“可视化数据管理器”选项或在操作系统桌面上运行Visual Bas

5、ic系统目录中的Visdataexe,都可打开可视化数据管理器。,15.2数据库管理器(Visdata),一、创建一个数据库,(1) 选择“可视化数据管理器”中“文件”菜单中的“新建”菜单项用于创建数据库,若选择“打开数据库”则用于打开一个已经建立好的数据库。 (2) 选择“Microsoft Access”菜单项,单击该菜单项下的“Version 7.0 MDB”菜单项,打开如图10-3所示的“选择要创建的Microsoft Access数据库”对话框。 (3) 选择新建数据库要保存的目录后,在“文件名”文本框中输入数据库的名称student,也就是数据库的文件名称。 (4)单击“确定”按钮

6、关闭对话框,“可视化数据管理器”开始在指定的目录下创建以指定名称命名的Microsoft Access数据库,完成数据库创建工作,,15.2 数据库管理器(Visdata),二、向数据库中添加数据表,操作步骤为: (1)在“数据库窗口”中右击鼠标,系统弹出一快捷菜单,单击其中的“新建表”菜单项,系统将打开“表结构”对话框 。 (2)在“表名称”文本框中键入表名,这里键入名称xjb。 (3)单击“添加字段”按钮,系统显示“添加字段”对话框,在这个对话框中定义表的字段。在“名称”文本框中输入字段名称,这里输入第一个字段“学号”的名称“st_No”;单击“类型”下拉列表框,从中选择字段类型“Inte

7、ger”;“大小”文本框用于指定Text类型字段的宽度,该长度限制了输入到这个字段的文本字符的最大长度,选择Text之外的数据类型时,不需要指定宽度。单击“确定”按钮,这样我们就定义了xjb表的第一个字段。,15.2 数据库管理器(Visdata),15.2 数据库管理器(Visdata),三、数据表中数据的编辑,四、添加或删除索引,五、使用查询生成器,一、数据控件的概念 数据控件(Data控件)是Visual Basic中最常见的控件,在工具箱中的图标为 ,利用它可以在应用程序中访问前面所创建的数据库。 数据控件不能显示数据,需要与数据绑定控件配合使用。,15.3 数据控件,二、 数据控件常

8、用属性,Connect属性,Connect属性指定数据控件所要连接的数据库类型。,Visual Basic 60提供了7种可访问的数据库类型,Visual Basic可识别的数据库有:,1)Microsoft Access的MDB文件(缺省值);,2)Borland dBASE、Microsoft Foxpro的DBF文件;,3)Borland Paradox的DB文件;,4)Novell Btrieve的DDF文件;,5)Microsoft Excel的XLS文件;,6)Lotus的WKS文件;,7)Open DataBase Connectivity(ODBC)数据库,2. Databas

9、eName属性,DatabaseName属性指定具体使用数据库的名称,包括所有的路径名。如果连接的是单表数据库,则DatabaseName属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource属性中。如果在“属性”窗口中单击DatabasName属性右边的按钮,会出现一个公用对话框用于选择相应的数据库。例如,下面语句设置了可访问的数据库名称:如果连接一个Microsoft Access的数据库C:职员档案mdb,则Data1DatabaseName”C:职员档案mdb”;如果连接一个Foxpro数据库C:yang职员档案1dbf,因为Foxpro数据库只含有一个表,则D

10、ata1DatabaseName”C:yang”,RecordSource=”职员档案1dbf”。如果未写数据库文件的扩展名,则缺省情况下为使用以.mdb为扩展名的数据库文件。,3、RecordSource属性,RecordSource属性确定具体可访问的数据,这些数据构成记录集对象Recordset。4)RecordsetType属性RecordsetType属性确定记录集类型。5)ReadOnly属性在对数据库只查看不修改时,通常将ReadOnly属性设置为True,而在运行时根据一定的条件,响应一定的指令后,才将它设置为False。6)Exclusive属性Exclusive属性值设置为

11、True时,则在通过关闭数据库撤消这个设置前,其他任何人不能对数据库访问。这个属性的缺省值是False。,7)BOFAction、EOFAction属性当BOFAction值为0,控件重定位到第一个记录;BOFAction值为1,移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件。当EOFAction值为0,控件重定位到最后一个记录;当EOFAction值为1,移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件;EOFAction值为2,向记录集加入新的空记录,可以对新纪录进行编辑,移动记录指针新纪录写入数据库。,数据控件的常用方法,1 Refre

12、sh方法,如果在设计状态没有为打开数据控件的有关属性全部赋值,或当RecordSource在运行时 被改变后,必须使用激活数据控件的Refresh方法激活这些变化。,2 UpdateCountrols方法,UpdateCountrols方法可以将数据从数据库中重新读到 被数据控件绑定的空件内。使用UpdateCountrols方法终止用户对绑定内控件的修改。,3 UpdateRecord方法,当对绑定内的控件修改后,数据控件需要移动记录集的指针才能保存修改,如果使用UpdateRecord方法可强制数据控件将绑定控件内的数据写入到数据库中而不再触发Vaildate事件。在代码中用该方法修改。,

13、数据控件的事件,1 Reposition事件,Reposition事件发生在一条记录成为当前记录后。,只要改变记录集的指针使其从一条指针移到另一条记录。会产生Reposition事件,可以在该事件过程中建立程序,可反映出记录位置、记录总数等。,2 Validate事件,当要移动记录指针前,修改与删除记录前或卸载含有数据控件的窗体时触发Validate事件。Validate事件检查被数据控绑定的控件内的数据是否发生变化。它通过save参数()True或False)判断是否有数据发生变化,Action参数判断哪一种操作触发了Validate事件。Action参数可为表156中的值:,Records

14、et对象代表一组与数据库相关的逻辑记录集合。它所对应的数据来源可以是数据表,也可以是和SQL语言中查询语句(SELECT)有关的查询结果。Recordset对象有三种类型:Table类型:记录集为表集,可以显示、添加、删除和修改,具有较好的更新性能。Dynaset类型:记录集为动态集,可以显示、添加、删除和修改,并具有较大的操作灵活性。Snapshot类型:记录集为快照集,只能显示,具有较好的显示速度。,RecordSet对象的属性和方法, 记录集 Recordset的属性 Recordset 是一个数据结构,通常用来表示从数据库中提取的一个记录集。在VB中只能通过Recordset 对象对数

15、据库进行操作。,(1)BOF和EOF 属性 用来测试记录指针是否已超出数据库的首记录或尾记录。BOF属性用来测试记录指针是否超出文件头;EOF属性用来测试记录指针是否超出文件尾。,假设需要读出数据库中的全部记录,可以使用Recordset 的EOF属性,程序如下: Do While Data1.Recordset.Eof=False 依次读出记录 记录指针下移一个 Loop,(2)AbsolutePosition 属性 AbsolutePosition 属性用于反映记录指针的当前位置。注意: AbsolutePosition 属性所反映出来的记录指针的当前位置值比它的绝对位置的编号少1,假设当

16、前位置十号记录,由AbsolutePosition 给出的值则是2。,(3)Bookmark 属性 Bookmark 属性用于返回或设置当前记录指针的书签,其数据类型为String。在程序中可以用Bookmark 属性对记录指针重新定位。,(4)RecordCount 属性 RecordCount 属性用于测量数据库的总记录数。在多用户情况下,由于Recordset 对象的不断变化, RecordCount 测出的数据可能不准确。为了能得到准确的记录总数,在测量记录总数时需要先将记录指针移动到最后一个,记录,语句如下: Data1.Recordset.MoveLast 然后使用RecordCo

17、unt属性, Data1.Recordset. RecordCount这样就能准确地得到当前记录集的记录总数了。,(5)Nomatch 属性 Nomatch属性用于判断在使用Find方法和Seek方法做查询操作时是否查询到符合查询条件的记录,如果其返回值为True则表示没有符合条件的记录,反之则表示有相应记录被找到,对记录的操作能够通过Recordset对象的方法实现。其常用方法有:1)AddNew方法加入一条新记录到记录集内存缓冲区。2) Edit方法允许对当前记录进行修改。3) Delete方法用于删除当前记录。4) Update方法把内存缓冲区的内容写进数据库文件,保存对数据库所作的改动

18、。5) Close方法关闭记录集和数据库。该方法也能用在数据库对象上,将数据库关闭。,RecordSet对象的方法,5) Move方法使用Move方法可代替对数据库控件对象的4个箭头的操作遍历整个记录几种的记录。5种Move方法是:(1)MoveFirst方法移至第一条记录(2)MoveLast方法移至最后一条记录(3)MoveNext方法移至下一条记录(4)MovePrevious方法移至上一条记录(5)Moven方法向前或向后移动n条记录,n为指定的数值。,(6) Find方法 可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一个记录,并使之成为

19、当前记录。4种Find方法是: FindFirst或 FindLast方法. 找到满足条件的第一个或最后一个记录。 FindNext或FindPrevious方法找到满足条件的下一个或上一个记录。 4种Find方法的语法格式相同: 数据集合.Find方法 条件,数据绑定控件,要使文本等控件与数据控件捆绑在一起,成为数据控件的绑定控件。并且能够受到数据库约束,必须在运行时对这些控件的两个属性进行设置:,1)DataSource属性,DataSource属性用来将一个有效的数据控件与一个数据库连接。,2)DataFleld属性,DataFleld属性设置数据库有效的字段与绑定控件建立联系。,绑定控

20、件、数据控件和数据库三者的关系,SQL(结构化查询语言,Structure Query Language)是操作数据库的工业标准语言,许多数据库和软件系统都支持SQL或提供SQL语言接口。这一节将向用户介绍SQL的常用语句。,1SQL命令,SQL的功能实际上包括查询、操作、定义和控制四个方面。其中最常用的是查询功能,其次为数据定义功能。,SQL基本命令动词,15.6 SQL语言,SQL语言的核心是查询语句,它的基本格式为:,SELECT列名表名,FROM基本表名或视图名,WHERE条件表达式,GROUP BY 列名l HAVING内部函数表达式,ORDER BY 列名2 ASC或DESC 31

21、,SQL在VB中的应用 1. 使用SELECT语句查询 无论是数据控件还是数据对象都可使用SELECT语句查询数据。 例如 用SQL语句显示数据库Biblio.mdb中出版日期为1996年全部记录。 Data1.RecordSource = SELECT * FROM Titles WHERE Year Published =1996用Data1.Refresh方法激活这些变化。,选择表中所有字段,指定表Title,构成查询条件,SELECT语句可以看作记录集的定义语句,它从一个或多个表中获取指定字段,生成一个较小的记录集。下面通过一组对前面建立的学生成绩数据库的查询操作来学习SELECT语句

22、的基本用法。(1)选取表中部分列。例如查询学生成绩表中的英语和计算机成绩:SELECT 英语,计算机 FROM score(2)选取表中所有列。例如查询学生成绩表中的所有信息:SELECT * FROM score(3)WHERE子句。例如查询数学成绩不及格的学生信息:SELECT * FROM score WHERE 数学60(4)复合条件。例如查询数学和英语成绩均不及格的学生信息:SELECT * FROM score WHERE 数学60 AND 英语60,(5)ORDER BY子句。例如查询学生成绩表中的所有数学成绩及格的学生信息,并将查询结果按数学成绩降序排列(ASC表示升序,DES

23、C表示降序):SELECT * FROM score WHERE 数学=60 ORDER BY 数学 DESC (6)统计信息。例如查询数学成绩不及格的人数、数学平均分、最高分:SELECT COUNT(*)AS 人数 FROM score WHERE 数学60SELECT AVG(数学)AS 平均分,MAX(数学)AS 最高分 FROM score (7) GROUP BY子句。例如查询男生与女生的数学平均分:SELECT 性别,AVG(数学)AS 平均分FROM score GROUP BY 性别,(8) HAVING子句。例如查询数学成绩不及格的人数大于10人的班级和相应人数:SELEC

24、T 班级,COUNT(*)AS 人数 FROM score WHERE 数学10(9)多表查询。例如查询学生的学号、姓名和籍贯(假设有一个student表,其中包含了学生的学号、籍贯等信息):SELECT score . 学号,score . 姓名,score . 数学,student . 籍贯 FROM score,student WHERE score . 学号= student . 学号如前所述,数据控件的RecordSource属性除了可以设置成表名外,还可以设置为一条SQL语句,格式如下:数据控件名 . RecordSource=“SQL语句”,在使用ADO据控件前,必须先通过“工程

25、/部件”菜单命令选择“Microsoft ADO Data control6.0(0LE DB)”选项,将ADO数据控件添加到工具箱。ADO数据控件与Visual Basic的内部数据控件很相似,它允许使用ADO数据控件的基本属性快速地创建与数据库的连接。 1ADO数据控件的基本属性 (1)ConnectionString属性 ADO控件没有DatabaseName属性,它使用Connectionstring属性与数据库建立连接。该属性包含了用于与数据源建立连接的相关信息,Connectionstring属性带有4个参数,如下表 所示。,15.7 Activex数据对象及其使用,(2)Reco

26、rdSource属性 RecordSource确定具体可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。 (3)ConnectionTimeout属性 用于数据连接的超时设置,若在指定时间内连接不成功显示超时信息。 (4)MaxRecords属性 定义从一个查询中最多能返回的记录数。 2ADO数据控件的方法和事件 ADO数据控件的主要方法和事件与Data控件的方法和事件一样 。 3设置ADO数据控件的属性 具体内容请参见教材。,下面是某公司人力资源部的认识数据库管理系统的员工管理程序,其中实现了员

27、工的增加、修改、删除、查询等功能。解析:首先建立如图所示的用户界面,并设置各个控件的属性,然后编写相应代码。,应用举例,Dim mbookmark As Variant“第一个按”钮的事件代码Private Sub Command1_Click() If Not Data1.Recordset.BOF Then Data1.Recordset.MovePrevious Else MsgBox 已到数据库头,无法再移动!, vbCritical, 数据库 Data1.Recordset.MoveFirst End If Me.RefreshEnd Sub“下一个”按钮的事件代码Private S

28、ub Command2_Click() If Not Data1.Recordset.EOF Then Data1.Recordset.Movenext Else MsgBox 已到数据库尾,无法再移动!, vbCritical, 数据库 Data1.Recordset.Movelast End If Me.RefreshEnd Sub,“第一个”按钮的事件代码Private Sub Command3_Click() Data1.Recordset.MoveFirst Me.RefreshEnd Sub“末一个”按钮的事件代码Private Sub Command4_Click() Data1

29、.Recordset.Movelast Me.RefreshEnd Sub“查找”按钮的事件代码Private Sub Command5_Click() Dim mno As String mno = InputBox$(请输入员工编号, 查找) Data1.Recordset.FindFirst 员工编号= & mno & If Data1.Recordset.NoMatch Then MsgBox 无此编号, , 提示End Sub,“新增”按钮的事件代码Private Sub Command6_Click() Command7.Enabled = Not Command7.Enabled

30、 Command8.Enabled = Not Command8.Enabled Command9.Enabled = Not Command9.Enabled If Command6.Caption = 新增 Then Command6.Caption = 确认 mbookmark = Data1.Recordset.Bookmark Data1.Recordset.AddNew Text1.SetFocus Else Command6.Caption = 新增 Data1.Recordset.Update Data1.Recordset.Movelast End IfEnd Sub,“删除

31、”按钮的事件代码Private Sub Command7_Click() Dim s As String On Error GoTo DelErr s = MsgBox(确定删除这组记录吗?, vbQuestion + vbOKCancel, 删除确定) If s = 1 Then Data1.Recordset.Delete Data1.Recordset.Movenext If Data1.Recordset.RecordCount 0 Then If Data1.Recordset.EOF Then Data1.Recordset.Movelast End If End If End I

32、f Exit SubDelErr: MsgBox Err.DescriptionEnd Sub,“修改”按钮的事件代码Private Sub Command8_Click() Command6.Enabled = Not Command6.Enabled Command7.Enabled = Not Command7.Enabled Command9.Enabled = Not Command9.Enabled If Command8.Caption = 修改 Then Command8.Caption = 确认 mbookmark = Data1.Recordset.Bookmark Dat

33、a1.Recordset.Edit Text1.SetFocus Else Command8.Caption = 修改 Data1.Recordset.Update End IfEnd Sub,“放弃”按钮的事件代码Private Sub Command9_Click() Command6.Caption = 新增 Command8.Caption = 修改 Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = False Data1.UpdateControls D

34、ata1.Recordset.Bookmark = mbookmarkEnd Sub“退出”按钮的事件代码Private Sub Command11_Click() EndEnd Sub,数据库控件的检查是否输入合法数据:Private Sub Data1_Validate(Action As Integer, Save As Integer) If Text1.Text = And (Action = 6 Or Text1.DataChanged) Then MsgBox 数据不完整,必须要有编号! Data1.UpdateControls End If If Action = 1 And Action = 4 Then Command6.Caption = 新增 Command8.Caption = 修改 Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = False End IfEnd Sub,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号