VB数据库编程技术实.pdf
《VB数据库编程技术实.pdf》由会员分享,可在线阅读,更多相关《VB数据库编程技术实.pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VB数据库编程技术一 ODBC 概述在传统的数据库管理系统中,每个数据库管理系统都有自己的应用程序开发接口(API),为了解决此问题,微软公司开发了ODBC(Open DataBase Connectivity,即开放数据库互连)。ODBC 是一套开放数据库系统应用程序接口规范,目前它已成为一种工业标准,它提供了统一的数据库应用编程接口(API),为应用程序 提供了一套高层调用接口规范和基于动态连接库的运行支持环境。使用ODBC 开发数据库应用时,应用程序调用的是标准的ODBC 函数和SQL 语句,屏蔽了DBMS 之间的差异,数据库底层操作由各个数据库的驱动程序完成。因此应用程序有很好的适应性
2、和可移植性,并且具备了同时访问多种数据库管理系统的能力,从而彻底克服了传统数据库应用程序的缺陷。主要任务包括:建立与数据源的连接;向数据源发送SQL 请求;断开与数据源的连接数据源数据源是指任一种可以通过ODBC 连接的数据库管理系统,它包括要访问的数据库和数据库的运行平台。数据源名掩盖了数据库服务器或数据库文件间的差别,通过定义多个数据源,每个数据源指向一个服务器名,就可在应用程序中实现同时访问多个DBMS 的目的。数据源(Data Source Name,简称 DSN)是驱动程序与DBS 连接的桥梁,数据源不是DBS,而是用于表达一个ODBC 驱动程序和DBMS 特殊连接的命名。在连接中,
3、用数据源名来代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接。数据源分为以下三类:(1)用户数据源:用户创建的数据源,称为“用户数据源”。此时 只有创建者才能使用,并且只能在所定义的机器上运行。任何用户都不能使用其他用户创建的用户数据源。(2)系统数据源:所有用户和在Windows NT 下以服务方式运行的应用程序均可使用系统数据源。(3)文件数据源:文件数据源是ODBC 3.0 以上版本增加的一种数据源,可用于企业用户,ODBC 驱动程序也安装在用户的计算机上。(与机器无关)二、SQL 语言基础创建表格SQL语言中的create table语句被用来建
4、立新的数据库表格。Create table语句的使用格式如下:create table tablename(column1 data type,column2 data type,column3 data type);如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项:create table tablename(column1 data type constraint,2 column2 data type constraint,column3 data type constraint);举例如下:create table employee(firstname varchar
5、(15),lastname varchar(20),age number(3),address varchar(30),city varchar(20);简单来说,创建新表格时,在关键词create table后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。注意,所有的 SQL语句在结尾处都要使用“;”符号。使用 SQL语句创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用字母,数字或下划线,名称的长度不能超过30 个字符。注意,用户在选择表格名称时不要使用SQL语言中的保留关键词,如 select,create,insert等,作为表格
6、或列的名称。数据类型用来设定某一个具体列中数据的类型。例如,在姓名列中只能采用varchar或 char 的数据类型,而不能使用number 的数据类型。SQL语言中较为常用的数据类型为:char(size):固定长度字符串,其中括号中的size用来设定字符串的最大长度。Char 类型的最大长度为255 字节。varchar(size):可变长度字符串,最大长度由size 设定。number(size):数字类型,其中数字的最大位数由size设定。Date:日期类型。number(size,d):数字类型,size 决定该数字总的最大位数,而d 则用于设定该数字在小数点后的位数。最后,在创建新
7、表格时需要注意的一点就是表格中列的限制条件。所谓限制条件就是当向特定列输入数据时所必须遵守的规则。例如,unique 这一限制条件要求某一列中不能存在两个值相同的记录,所有记录的值都必须是唯一的。除 unique 之外,较为常用的列的限制条件还包括not null和 primary key 等。Not null用来规定表格中某一列的值不能为空。Primary key则为表格中的所有记录规定了唯一的标识符。查询简单的 SQL 查询只包括选择列表、FROM 子句和 WHERE 子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。完整结构:Select All/Distinct From,W
8、hereGroup by HavingOrder by Asc/Desc Group by:按列名1 的值进行分组,属性值相等的为一个组,如果带Having 短句,表示只有满足指定条件的才输出。例如,下面的语句查询testtable 表中姓名为“张三”的 nickname 字段和 email 字段。SELECT nickname,email FROM testtable WHERE name=张三 (一)选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变3 量和全局变量)等构成。1、选择所有列例如,下面语句显示testtable 表中所
9、有列的数据:SELECT*FROM testtable 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。例如:SELECT nickname,email FROM testtable 3、更改列标题在选择列表中,可重新指定列标题。定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行SELECT 语句中使用ALL 或 DISTINCT选项来显示表中符合条件的所有行或删除
10、其中重复的数据行,默认为 ALL。使用 DISTINCT选项时,对于所有重复的数据行在SELECT 返回的结果集合中只保留一行。5、限制返回的行数使用 TOP n PERCENT 选项限制返回的数据行数,TOP n 说明返回 n 行,而 TOP n PERCENT 时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如:SELECT TOP 2*FROM testtable SELECT TOP 20 PERCENT*FROM testtable(二)FROM 子句FROM 子句指定SELECT 语句查询及与查询相关的表或视图。在FROM 子句中最多可指定256 个表或视图,它们之
11、间用逗号分隔。在 FROM 子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable 和 citytable 表中同时存在cityid 列,在查询两个表中的cityid 时应使用下面语句格式加以限定:SELECT username,citytable.cityid FROM usertable,citytable WHERE usertable.cityid=citytable.cityid 在 FROM 子句中可用以下两种格式为表或视图指定别名:表名as 别名表名别名(二)FROM 子句4 FROM 子句指定SELECT 语句查
12、询及与查询相关的表或视图。在FROM 子句中最多可指定256 个表或视图,它们之间用逗号分隔。在 FROM 子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable 和 citytable 表中同时存在cityid 列,在查询两个表中的cityid 时应使用下面语句格式加以限定:SELECT username,citytable.cityid FROM usertable,citytable WHERE usertable.cityid=citytable.cityid 在 FROM 子句中可用以下两种格式为表或视图指定别名:表名
13、as 别名表名别名例如上面语句可用表的别名格式表示为:SELECT username,b.cityid FROM usertable a,citytable b WHERE a.cityid=b.cityid SELECT 不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如:SELECT a.au_fname+a.au_lname FROM authors a,titleauthor ta(SELECT title_id,title FROM titles WHERE ytd_sales10000)AS t WHERE a.au_id=ta.au_id AND
14、ta.title_id=t.title_id 此例中,将SELECT 返回的结果集合给予一别名t,然后再从中检索数据。(三)使用 WHERE 子句设置查询条件WHERE 子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20 的数据:SELECT*FROM usertable WHERE age20 WHERE 子句可包括各种条件运算符:比较运算符(大小比较):、=、=、=、!、!=10 AND age=30 2、列表运算符例:country IN(Germany,China)3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar
15、、text、ntext、datetime 和 smalldatetime 等类型查询。5 可使用以下通配字符:百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%。下划线 _:匹配单个任意字符,它常用来限制表达式的字符长度。方括号 :指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。:其取值也 相同,但它要求所匹配对象为指定字符以外的任一个字符。例如:限制以 Publishing 结尾,使用LIKE%Publishing限制以 A 开头:LIKE A%限制以 A 开头外:LIKE A%4、空值判断符例WHERE age IS NULL 5、逻辑运算符:优先级为NOT
16、、AND、OR(四)查询结果排序使用 ORDER BY 子句对查询返回的结果按一列或多列排序。ORDER BY 子句的语法格式为:ORDER BY column_name ASC|DESC,n其中 ASC 表示升序,为默认值,DESC 为降序。ORDER BY 不能按 ntext、text 和 image 数据类型进行排序。例如:SELECT*FROM usertable ORDER BY age desc,userid ASC 另外,可以根据表达式进行排序。向表格中插入数据SQL语言使用insert语句向数据库表格中插入或添加新的数据行。Insert语句的使用格式如下:insert into
17、 tablename(first_column,.last_column)values(first_value,.last_value);例如:insert into employee(firstname,lastname,age,address,city)values(,Li?,Ming?,45,No.77 Changan Road?,Beijing”);简单来说,当向数据库表格中添加新记录时,在关键词insert into后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。更新记录SQL语言
18、使用update 语句更新或修改满足规定条件的现有记录。Update 语句的格式为:update tablename set columnname=newvalue,nextcolumn=newvalue2.where columnname OPERATOR value and|or column OPERATOR value;例如:update employee 6 set age=age+1 where first_name=,Mary?and last_name=,Williams?;使用 update 语句时,关键一点就是要设定好用于进行判断的where 条件从句。删除记录SQL语言使
19、用delete语句删除数据库表格中的行或记录。Delete 语句的格式为:delete from tablename where columnname OPERATOR value and|or column OPERATOR value;例如:delete from employee where lastname=May;简单来说,当需要删除某一行或某个记录时,在delete from关键词之后输入表格名称,然后在where 从句中设定删除记录的判断条件。注意,如果用户在使用delete语句时不设定where 从句,则表格中的所有记录将全部被删除。删除数据库表格在 SQL语言中使用drop
20、table命令删除某个表格以及该表格中的所有记录。Drop table命令的使用格式为:drop table tablename;例如:drop table employee;如果用户希望将某个数据库表格完全删除,只需要在drop table命令后输入希望删除的表格名称即可。Drop table命令的作用与删除表格中的所有记录不同。删除表格中的全部记录之后,该表格仍然存在,而且表格中列的信息不会改变。而使用drop table命令则会将整个数据库表格的所有信息全部删除。三、数据控件1、ADO 数据控件1.1 ADO 对象模型ADO(ActiveX Data Object)数据访问接口是Micr
21、osoft 处理数据库信息的最新技术。它是一种ActiveX对象,采用了被称为OLE DB 的数据访问模式,是数据访问对象DAO、远程数据对象RDO 和开放数据库互连ODBC 三种方式的扩展。ADO 对象模型定义了个可编程的分层对象集合,主要由三个对象成员Connection、Command 和 Recordset 对象,以及几个集合对象Errors、Parameters和 Fields 等所组成。图 9.13示意了这些对象之间的关系。表9.6 是对这些对象的分工描述。7 图 9.13 ADO 对象模型表 9.6 ADO 对象描述对象名描 述Connection 连接数据来源Command 从
22、数据源获取所需数据的命令信息Recordset 所获得的一组记录组成的记录集Error 在访问数据时,由数据源所返回的错误信息Parameter 与命令对象有关的参数Field 包含了记录集中某个字段的信息要想在程序中使用ADO 对象,必须先为当前工程引用ADO 的对象库。引用方式是执行“工程”菜单的“引用”命令,启动引用对话框,在清单中选取“Microsoft ActiveX Data Objects 2.0 Library”选项。1.2 使用 ADO 数据控件在使用ADO数 据控件前,必须先通过“工 程|部件”菜单命令选择 Microsoft ADO Data Control 6.0(OL
23、EDB)”选项,将ADO 数据控件添加到工具箱。ADO 数据控件与Visual Basic 的内部 Data 控件很相似,它允许使用ADO 数据控件的基本属性快速地创建与数据库的连接。1ADO数据控件的基本属性(1)ConnectionString 属性ADO 控件没有DatabaseName属性,它使用ConnectionString 属性与数据库建立连接。该属性包含了用于与数据源建立连接的相关信息,ConnectionString 属性带有4 个参数,如表9.7 所示。(2)RecordSource 属性RecordSource 确定具体可访问的数据,这些数据构成记录集对象Recordse
24、t。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL 查询语言的一个查询字符串。表 9.7 ConnectionString 属性参数参数描述Provide 指定数据源的名称FileName 指定数据源所对应的文件名RemoteProvide 在远程数据服务器打开一个客户端时所用的数据源名称Connection 对象Command 对象Recordset对象Error集合Error对象Parameter 集合Parameter 对象Field集合Field对象8 RemoteServer 在远程数据服务器打开一个主机端时所用的数据源名称(3)ConnectionTimeout
25、 属性用于数据连接的超时设置,若在指定时间内连接不成功显示超时信息。(4)MaxRecords 属性定义从一个查询中最多能返回的记录数。2.ADO 数据控件的方法和事件ADO 数据控件的方法和事件与Data 控件的方法和事件完全一样。3设置 ADO数据控件的属性下面通过使用ADO 数据控件连接Student.mdb 数据库来说明ADO 数据控件属性的设置。步骤 1:在窗体上放置ADO 数据控件,控件名采用默认名“Adodcl”。步骤 2:单击 ADO 控件属性窗口中的ConnectionString 属性右边的“”按钮,弹出“属性页”对话框。在该对话框中允许通过三种不同的方式连接数据源:“使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 数据库 编程 技术
限制150内