六天学会Visual Basic数据库编程
- 格式:doc
- 大小:369.50 KB
- 文档页数:63
六天学会Visual Basic数据库编程第一天SQL基础所有数据库均支持结构化查询语言SQL,SQL是所有数据库操作的基础语言,因此我们第一讲就谈谈结构化查询语言SQL。
SQL功能与特性其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以:(一)建立数据库的表格。
(包括设置表格所可以使用之空间)(二)改变数据库系统环境设置。
(三)针对某个数据库或表格,授予用户存取权限。
(四)对数据库表格建立索引值。
(五)修改数据库表格结构。
(新建、删除或是修改表格字段)(六)对数据库进行数据的新建。
(七)对数据库进行数据的删除。
(八)对数据库进行数据的修改。
(九)对数据库进行数据的查询。
这几项便是通过SQL命令可以完成的事情,看起来是不是比起“查询”两个字所代表的功能要多的多了呢?SQL语法的分类其实SQL命令并不是非常多,可是要把SQL用到出神入化,却也只需要短短几个命令便够,因为SQL命令是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,以下将针对在VB中常用的SQL语法基本命令加以分类介绍。
在说明SQL的命令以及使用语法之前,以下将SQL做了的分类,在致上SQL语法所使用到的类型,可以说都已包含在这些类别当中。
第一类、属性词(Predicates)在SQL命令中用来指明所要选择的记录的方式。
如ALL、TOP与DISTINCT等等。
第二类、声明(Declaration)针对SQL Parameter或Parameter Query 的名称与数据类型做声明,如PARAMETERS的声明等等。
第三类、条件子句(Clause)在SQL的查询中,利用一些表达式定义出查询的条件,以缩小寻找的范围,如WHERE。
第四类、运算符(Operator)与操作数(Operation)在SQL的查询中,与Operation共同组成表达式(Expression),如BETWEEN....AND 运算符与INNER JOIN操作数。
六天学会BASIC......木鸿飞一直神游在BASIC程序之间,直到晚自习铃声响起,才依依不舍的合上书本。
此后,只要是课间时间,木鸿飞都沉醉于程序之中。
木鸿飞希望按部就班的学习BASIC,但老天爷似乎嫌他的学习速度太慢了,两天后,邵邵过来要书。
“我还没有看完。
”现在交书出去,无异于要了木鸿飞的命。
“我答应借给导弹了。
”邵邵不好意思的回答。
那边导弹也点点头,表示赞同。
“强取豪夺。
”木鸿飞心里恶狠狠地腹议着导弹。
书自然是不能还的,讨价还价是有可能的。
经过一番激烈的争吵,三方达成协议,木鸿飞可以保留书籍到下一次电脑课。
此时留给木鸿飞的时间还剩下3天,木鸿飞不得不采取一切手段,进行意义深远地阅读大提速。
阅读大提速的首要点是开源,就是尽一切可能增加阅读时间。
虽说时间挤一挤总是有的,但是鉴于学校宿舍的电灯是统一熄灭的,而且熄灯后学校还有专门查寝,在睡眠中挤时间是不可能的,只能打白天的主意。
对此,木鸿飞有绝招,即:拉拢一切可以拉拢的时间,压缩一切可以压缩的时间,创造一切可以创造的时间。
拉拢绝招就是充分利用休息时间,课间、午休、睡觉前等等都可以学习。
于是木鸿飞放弃了课间休息,放弃了午休,星期天也没有回家,下完晚自习后总是带上《BASIC语言》回寝室坐在床上看到熄灯。
鲁迅先生把别人喝咖啡的时间用来看书,木鸿飞不喝咖啡,全部休息时间都用来看书。
压缩绝招就是压缩不必要的时间耗费,加速必要的时间行为。
那三天里,同学们发现木鸿飞去食堂、澡堂和厕所时一概是风风火火的,他风一般的来,风一般的去,他快速行动,不浪费一丝光阴。
创造绝招就是向其他课程要时间。
自习课上,在完成必要的作业、复习和预习后,只要老师不在或者不上下走动,木鸿飞肯定在学习计算机程序。
政治课时,木鸿飞将《BASIC语言》放到政治书下面,小心翼翼的学习。
阅读大提速的第二点就是节流,必须节约每一次的阅读时间,尽可能的保证阅读的有效性,保证每一次学习都能取得尽可能多的效果。
Visual Basic学习方法Visual Basic是微软公司推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具。
Visual Basic提供的是可视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且Visual Basic提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以Visual Basic学起来简单,用起来方便。
下面把对Visual Basic学习中需要注意的几点列出来供大家参考。
一、Visual Basic的编程基础什么是程序首先需要知道下面这个问题的答案:“程序到底是什么?”计算机程序是指令集,它告诉计算机如何执行特殊的任务。
大家也许对许多种指令熟悉,如按菜谱烹调特殊的食物或按指定的方向到达不熟悉的目的地。
没有这些特殊的指令,就不能执行预期的任务。
计算机也是一样,只是它们需要为执行的每一个任务提供指令。
甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存信息。
幸运的是,许多这样的指令包含在处理器芯片中或内置于操作系统中,因此用户不必担心它们。
相反,应集中于为任务提供指令,如计算雇员工资,创建邮件列表,或设置格式化文本以显示最近的年度报表信息。
虽然我们用自然语言读这些指令,但计算机指令必须是二进制代码,即一系列在计算机内存和处理器中的开或关的状态。
有些语言,如汇编程序,可以允许直接写这种类型的代码。
但是,以这种方法编程十分困难,因此Visual Basic和其他编程语言使程序员可以用与自然语言有点相近的方式编写指令。
然而,即使是这些指令仍有限,并要遵循高度定义的结构。
二、事件驱动编程Visual Basic允许创建反映用户动作和系统事件的程序。
这种编程叫事件驱动编程。
要了解事件驱动程序是怎样工作的,先要了解过去的程序怎样运行及在Windows环境中有何不同。
在Windows之前(回到往日的DOS和“史前时代”),程序以顺序方式运行。
六天学会Visual Basic数据库编程第一天SQL基础SQL功能与特性其实,在前面的文章中,已经提及SQL命令的一些基本功能,然而,通过SQL命令,程序设计师或数据库管理员(DBA)可以:(一)建立数据库的表格。
(包括设置表格所可以使用之空间)(二)改变数据库系统环境设置。
(三)针对某个数据库或表格,授予用户存取权限。
(四)对数据库表格建立索引值。
(五)修改数据库表格结构。
(新建、删除或是修改表格字段)(六)对数据库进行数据的新建。
(七)对数据库进行数据的删除。
(八)对数据库进行数据的修改。
(九)对数据库进行数据的查询。
这几项便是通过SQL命令可以完成的事情,看起来是不是比起“查询”两个字所代表的功能要多的多了呢?SQL语法的分类其实SQL命令并不是非常多,可是要把SQL用到出神入化,却也只需要短短几个命令便够,因为SQL命令是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,以下将针对在VB中常用的SQL语法基本命令加以分类介绍。
在说明SQL的命令以及使用语法之前,以下将SQL做了的分类,在致上SQL语法所使用到的类型,可以说都已包含在这些类别当中。
第一类、属性词(Predicates)在SQL命令中用来指明所要选择的记录的方式。
如ALL、TOP与DISTINCT等等。
第二类、声明(Declaration)针对SQL Parameter或Parameter Query 的名称与数据类型做声明,如PARAMETERS的声明等等。
第三类、条件子句(Clause)在SQL的查询中,利用一些表达式定义出查询的条件,以缩小寻找的范围,如WHERE。
第四类、运算符(Operator)与操作数(Operation)在SQL的查询中,与Operation共同组成表达式(Expression),如BETWEEN....AND 运算符与INNER JOIN 操作数。
第五类、函数(Function)一些SQL常见的函数,像是A VG()是求算数平均数的函数。
第六类、SQL语句(Statement)SQL的语句,可以说是SQL语法的主体,用来对某一个特定的数据库发出指示,并返回相关的数据,而SQL 的语法结构,基本上可以利用下面的式子来表示:命令+条件子句例如:SELECT*FROM TAB WHERE ='A'其中的“FROM....WHERE”便是一个条件子句,其实SQL的语法并不难,您只需记住这样的一个规则,相信可以很快的了解SQL用法。
SQL语法与命令SELECT 语句SELECT[predicate]{*|table.*|[table.]field [,[table.]field2[,...]]} [AS alias1 [,alias2[,...]]]FROM tableexpression [,...][IN externaldatabase][WHERE...][GROUP BY...][HA VING...][ORDER BY...][WITH OWNERACCESS OPTION]SELECT 语句包括下面几个部分predicate如前面所述,包括了ALL,DISTINCT,DISTINCTROW,与TOP 我们可以利用这样的语句去限制查询后所得的结果。
*从指定表格中指定所有的字段。
table针对被选择出的记录的字段,所指定表格的名称。
field1,field2想要读取数据的字段名称,如果包含了一个以上的字段,会依照列出的顺序来读取数据。
alias1,alias2用来替代在表格实际字段名称的化名。
tableexpression表格名称或包含我们所想要的数据的表格。
externaldatabase若使用到不是目前的数据库则将其名字定义在externaldatabase当中。
ALL,DISTINCT,DISTINCTROW,TOP属性词用法SELECT [ALL|DISTINCT|DISTINCTROW|[TOP n[PERCENT]]] FROM tableALL若是您不指定任何的字段数据,则Microsoft Jet数据库引擎(database engine)将会选择所有的字段,并依据所定的条件查询出需求数据集。
例如下面这两个例子将会具有相同的效果,都会从职员表格中返回所有字段的数据。
例如:若是我们要查询出职员表格中的所有记录,可以通过下面的语句来完成。
SELECT ALL* FROM 职员表格; DISTINCT对某个表格所选择的字段数据,略过重复的情况,也就是说,针对某个字段查询出来的记录结果是唯一的。
例如有许多存放在职员表格的职员数据,也许会具有相同的姓名,所以若是我们用SQL语句中的SELECT DISTINCT,则查询出来的结果将会针对不一样的姓名加以筛选。
若是您把DISTINCT 加以省略,则这样的查询会显示所有的记录。
DISTINCTROW将整条记录重复的记录忽略掉,而不是只有针对某一个字段的数据。
table指定查询记录所需要的表格。
例如:SELECT DISTINCTROW 公司名称FROM 顾客表格 INNER JOIN 订单表格ON 顾客表格.顾客ID=订单表格.顾客IDORDER BY 公司名称;如果您忽略 DISTINCTROW 则会对每个公司产生一行以下的订单数据。
此外,若是DISTINCTROW只有用在一个表格当中,则会被省略掉。
TOP从第一条或最后一条开始(利用ORDER BY条件子句),返回特定条数的数据。
例如:当您想要知道在2000年,班上前25名的学生姓名数据时,您可以输入这样的语句:SELECT TOP 25 学生姓名FORM 学生表格WHERE 毕业年份=1994ORDER BY 毕业成绩平均分数 DESC;如果您没有加上ORDER BY 这行条件的话,您所得到的数据,将会随机的数据。
此外,在TOP语句之后,除了可以加上数字以外,还可以利用保留字PERCENT来查询。
例如:SELECT TOP 10 PERCENT学生姓名FROM学生表格WHERE毕业年份=1994ORDER BY毕业成绩平均DESC;PARAMETERS(参数)声明的用法对于参数型的查询语法中,对参数的名称以及数据类型作声明的操作。
PARAMETERS name datatype[,name datatype[,...]]namePARAMETERS的名称。
您可以把参数名称当作字符串来使用,若是名称中包含了空字符串,可以利用中括号来处理,例如:“VBeden”。
datatype输入参数的数据类型。
例如:若是您在查询时,需要机动的输入姓名,可以利用下列的方式完成:PARAMETERS “输入姓名” Text;SELECT*FROM 职员表格WHERE姓名=“输入姓名:”;ORDER BY条件语句此条件子句,通常与SELECT语句合并使用目的是将查询的结果,依照指定字段加以排序。
SELECT fieldlistFROM tableWHERE selectcriteriaORDER BY field[ASC|DESC][,field2[ASC|DESC][,...]]fieldlist欲查询的字段名称。
其中可以与ALL,DISTINCT,DISINCTROW,或TOP一起来使用。
table欲查询的表格名称。
selectcriteria查询的标准设置。
field1指定要依照那个字段作为排序的依据,若是你没有加上ORDER BY查询出的数据集将不会作排序的操作。
ASC递增顺序类别。
(默认值)DESC递减顺序类别。
例如:或是我们要将输出数据依据出生的先后次序排列,可以利用下面的命令。
SELECT 姓名,生日FROM 职员表格ORDER BY 生日SELECT LastName,FirstNameFROM EmployeesORDER BY LastName ASC;IN 条件子句指定要速胜哪一个外部数据库的表格。
(必须是Microsoft Jet数据库引擎所可以连接的数据库,如dBase,Paradox等等)SELECT|INSERT]INTO destination IN{path|["path" "type"]|[""[type;DATABASE=path]]}FROM tableexpression IN{path|["path" "type"]|[""[type;DATABASE=path]]}destination欲插入数据的外部表格名称。
tableexpression表格名称或是被读取数据的表格名称。
这个参数可以是一个单一的表格名称,或是一段已经被存储的SQL查询等。
path包含该表格的完整路径名称。
type数据库的类型名称,通常是当数据库部属于Jet database时才会使用。
(例如:dBASE III,dBASE IV,Paradox 3.x,Paradox 4.x,或 Btrieve)例如:下面这两段的意义相同PartA....FROM TableIN ""[dBASE IV;DATABASE=C:\DBASE\DATA\SALES;];PartB....FROM TableIN "C:\DBASE\DATA\SALES" "dBASE IV;"例如:Microsoft Jet databaseSELECT 顾客编号FROM 顾客表格IN CUSTOMER.MDBWHERE 顾客编号 Like "A*";其中CUSTOMER.MDBO 为Jet database 的数据库名称,其中包含了顾客表格。
例如:dBASE III or IVSELECT 顾客编号FROM 顾客表格IN "C:\DBASE\DATA\SALES" "dBASE IV;"WHERE 顾客编号 Like "A*";所以当我们使用不同于ACCESS 的数据库时,必须指明该数据库的类型名称。
HAVING 条件子句指定一特定的分组记录,并满足HAVING 所指定的条件或状态,但条件是针对分组的条件设置。
SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlistHAVING groupcriteriafieldlist显示被查询的字段名称。
(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)table欲查询数据的表格名称。