详解如何使用DedeCms sql语句

DedeCMS SQL 标记
功能说明:用于从模板中用一个SQL查询获得其返回内容。
适用范围:非扩展模块所有模板。
(1)语法:{dede:sql sql=""}底层模板{/dede:sql}
(2)属性:
[1] sql 完整的SQL查询语句。
(3)底层模板:
SQL语句中查出的所有字段都可以用[field:字段名/]来调用。

SQL 标记使用范例和应用
——————————————————————————–

例如我要查询mobile_addoninfos  (分类信息)表中 message字段,phone字段
用法:{dede:sql sql="SELECT message,phone
FROM mobile_addoninfos
LIMIT 0 , 30″}[field:message/][field:phone/]{/dede:sql}
【注意:Select 字段1 [, 字段N] From 数据表名称】
【注意2:Limit 0 , 30  表示从0记录到30 ,通俗就是返回30条结果,这里可以控制结果条数】
【注意3:SQL语句中查出的所有字段都可以用[field:字段名/]来调用。例如上表查询的message和phone,所以字段调用:[field:你要查询字段名/]】
——————————————————————————–

附:数据库各表名

作品          dede_addonvote   
产品          dede_addonproduct
Flash                dede_addonflash
软件          dede_addonsoft 
图片集        dede_addonimages
普通文章      dede_addonarticle 
专题          dede_addonspec
分类信息      dede_addoninfos
——————————————————————————–
 

附:结构化查询语言SQL

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 子句]

特别注意如果没有设定Where 子具的条件,则会将所有数据表中的纪录全部删除。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索