日期:2009-01-08  浏览次数:20489 次


SQL 概述
    要操作数据源中的数据,可以使用结构化查询语言(Structured Query Language)。SQL 的正确念法是S?Q?L,不过大家都习惯念成Sequel,SQL 几乎是所有大型数据服务器都支持的数据操作语言,它提供一些可以帮我们快速的执行数据查询、更新、删除等数据操作的叙述;要撰写操作数据的应用程序,SQL 语言是个非常重要的课题。SQL 的用法非常灵活,在这里我们不深入讨论,我们只介绍比较常用的SQL 叙述。

Select 陈述
    Select 陈述可以从资料源传回我们所指定的字段,其语法如下所示:

Select 字段1 [, 字段N] From 数据表名称

    例如我们想要传回Members 数据表中UserId 以及UserPwd 这两个字段的数据,可以使用如下叙述:

Select UserId, UserPwd From Members

    如果要将所有的字段传回,则可以使用「*」来代表。例如我们要将Members 数据表中的所有字段传回,则使用下列叙述:

Select * From Members

利用Where 子句来过滤数据
利用Where 子句可以限制我们所要过滤的纪录,其语法如下所示:

Select 字段一[, 字段N] From 数据表名称Where 条件

    条件可以是=、>、<、>=、<= 比较运算子,其中如果所要判断的数据是日期或是字符串,必须用单引号「'」刮起来。例如我们要将会员数据中UserId 字段为tina 的数据全部传回,使用下列叙述:

Select * From Members Where UserId = 'tina'

    另外我们也可以搭配逻辑运算子来过滤两个字段的条件。例如我们要将UserId 字段为tina 以及UserPwd 字段为1234 的数据传回来,可以使用下列叙述:

Select * From Members Where UserId = 'tina' And UserPwd = '1234'

Where In
    如果只要符合某些条件的资料我们都要找出来,则可以使用Where In。例如下列范例传回使用者名称为tina 或是jacky 的纪录:

Select * From Members Where UserId In ('tina', 'jacky')

Where Like
    如果我们想搜寻住台北市的顾客,则可以使用Like 比对。Like 比对要配合「%」符号来操作,可以找出以特定字符串为开头或是结尾的字段。例如下列SQL 叙述将住台北市的使用者列出:

Select * From Members Where UserAdd Like '台北市%'

Order By
    若要将查询回的资料表进行排序的工作,则可以利用Order By 子句。Order By 子句是依照字段内数据的顺序进行排序,其语法如下所示:

Select 字段一[,字段N] From 数据表[Where 子句] [Order By 子句]

    Order By 依照字段顺序排序的方式有升幂以及降序,如过要由小排到大,则在最后指定Asc;倘若是由大排到小,则是Desc。例如下列叙述将所有使用者数据传回,并依UserId 字段作升幂排列:

Select * From Members Order By UserId ASC

Insert 陈述
Insert 陈述可以将新的纪录加入数据源中,其语法如下所示:

Insert Into 数据表名称[(字段1, 字段2, ...字段N)] Values(字段1, 字段
2, ...字段N)


    数据表后面的字段可以省略。如果省略表示全部的字段都要输入,并且必需按照字段的顺序来输入。例如下列叙述增加一位新的使用者:

Insert Into Members Values('elvira', 'wxyz', '邓宜玲', '0935123000',_
'台北县中和市', 'elvira@hotmail.com')

Update 陈述
Update 陈述可以更新数据源中纪录的数据,其语法如下所示:

Update 数据表名称Set 字段一= 叙述[,...字段N=叙述] [Where 子句]

例如下列叙述将使用者数据表中UserId 字段为elvira 的纪录,将其UserPwd 更改为zyxw:

Update Members Set UserPwd = 'zyxw' Where UserId = 'elvira'

Delete 陈述
Delete 陈述可以删除数据源中的纪录,其语法如下所示:

Delete 数据表名称[Where 子句]

特别注意如果没有设定