Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

SQL语言基本教程(一)

时 间:2008-01-17 09:33:33
作 者:UMVSOFT整理   ID:16  城市:江阴
摘 要:SQL语言基本教程(一)
正 文:

SQL语言基本教程(一)
    数据库查询语言(SQL)是使用于关系数据库的标准语言,被很多类型的数据库所支持。本文将以VB加DAO为例,来介绍
基本的SQL语法以及使用。本章将介绍的是SQL语言中的基本查询语句,并带有范例。
    要更好的阅读本文,读者需要对数据库的基本结构以及术语有一个基本的了解,而且最好能有一定的VB数据库编程经验。
除非特别说明,本文将使用的数据库是VB中附带的BIBLIO.MDB数据库。

一、Select...FROM...Where语句
    语句的语法如下:
 Select [all | * | distinct column1, column2]
 FROM table1[, table2]
 Where [condition1 | expression1] [AND condition2 | rxpression2]
    在上面的语法中,[]外的语句是必须的,而[]内的是可选的,对于以 | 分割的操作符,则表明语法中必须从| 分割的
操作符中选择一个。下面的语法描述同上。
    在Select...FROM...Where语句中其中Select指定需要检索的字段,FROM指定要查询的表,Where指定选择纪录的条件,
另外还可以包含ORDER BY语句来制定排序纪录。语法如下:
 ORDER BY column1 | Integer [ASC | DESC]
    其中column1制定排序的字段,也可以使用Integer指定的字段索引来排序,ASC为升序、DESC为降序。

范例一:找到Titles表中所有出版日期在1990年以后以及包含文字Beginner的书名
建立一个新工程,加入DAO定义库(点击菜单中的 Project | References项,在列表中选择Microsoft DAO 3.51 Object Library
(也可以是更高版本的3.60,如果安装了的话),然后在Form中加入一个ListBox控件。在Form1的代码窗口中加入以下代码:
Private Sub Form_Load()
    Dim rsTemp As Recordset
    Dim dbTemp As Database
    Dim astr As String
   
    Set dbTemp = DBEngine(0).OpenDatabase("e:\program files\microsoft visual studio\vb98\biblio.mdb", _
 dbOpenSnapshot)
    astr = "Select [Title] FROM [Titles] Where [Year Published] > 1990 " & _
            "AND Title LIKE ´*Beginner*´ orDER BY Title DESC"
    Set rsTemp = dbTemp.OpenRecordset(astr)
    If rsTemp.RecordCount > 0 Then
        rsTemp.MoveFirst
        Do Until rsTemp.EOF
            List1.AddItem rsTemp![Title]
            rsTemp.MoveNext
        Loop
    End If
End Sub
    运行程序,List1中就会列出所有出版日期在1990年以后以及包含文字Beginner的书的书名并将书名按照降序进行排列。
    在上面的Select语句的Where中,我们使用了操作符号 > 来比较大小以及使用LIKE进行匹配。在Where语句中,可以使
用的操作符有以下几类:
1、比较操作符
    包含 =、<>、>、<、>=、<= 等若干类
2、逻辑操作符
    包含以下若干类:
    LIKE、IN、BETWEEN、UNIQUE、IS NULL、EXISTS、ALL和ANY
    LIKE 操作符通过使用通配符将一个值同其它值比较,在VB的SQL查询中,可以使用的通配符是 * 和 ? 其中 * 代表任
意的若干个字符,而 ? 代表一个字符,例如上面语句中的LIKE ´*Beginner* 代表查找所有包含字符串Beginner的值。不
过要注意的是使用 * 和 ? 作为通配符是VB的专利。真正的SQL语言的通配符是 % 和 _ ,其中 % 代表任意多个字符,_
代表一个字符例如VB中的Data Environment使用的就是 % 和 _ 作为查询通配符。另外Microsoft Jet Engine对于LIKE
操作符还提供了其它一些的过滤选项,具体的内容可参见MSDN索引中的 Like Operator 条目。
    IN 操作符用于比较某一个值是否等于几个值中的一个值,例如下面的语句:
    "Select [Title],[Year Published] FROM [Titles] Where [Year Published] IN (1990,1991,1995)"
    将从表Titles中选择所有在1990、1991、1995年出版的书籍纪录。
    BETWEEN 操作符勇于在两个值之间搜索,例如 Where [Year Published] BETWEEN 1989 AND 1991 指定出版日期必须
在1989年和1991年之间。
    对于逻辑操作符,可以结合NOT操作符实现改变查询条件的方向。例如 Where [Year Published] NOT IN (1990,1991,1995)
3、连接符
    Where中的连接符包括 AND 和 or ,使用AND时,所有查询都必须是True时,条件才成立,而使用OR时,只要连接的
一个查询为True,条件就成立。象上面的范例中,只有书名中包含 "Beginner" 同时又是在1990年以后出版的纪录才会被
查询到。
    在使用比较操作符时要注意,在VB操作数据库引擎时对于查找的字符串,要使用单引号或者双引号将字符串括起来,例
如 Where [Name]=´LiGang´。而

Access软件网QQ交流群 (群号:54525238)       Access源码网店


常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助