三、SQL基础教程(最简单的查询)
基本知识:
简单的SQL语句由五个标准段的结构构成:
例:select top 10 ArticleID,ClassID,Title,Author,Hits from PE_Article where Deleted=false and Status=3 order by ArticleID desc
第一段 选择段:select 选择操作,从数据库中选择
第二段 输出主表段:top 值 主表名,主表名 只选择符合要求的前几条相应主表的内容,如:top 10 ArticleID,ClassID,Title,Author,Hits,显示前10条包含文章ID、栏目ID、文章标题、作者、点击数的信息。其中ArticleID,ClassID(指定输出主表名称,多个主表以“,”隔开)。
第三段 从属字段:from 字段内容 从哪里查、查什么。如from PE_Article(查询PE_Article字段),名字也可以简写,如PE_Article可以简写成Article。要注意填写的字段必须是系统数据库中存在的字段名,并且要与前面的主表内容相对应,否则就会出错。
第四段 条件约束段:where 语句 条件约束语句部分(即规则语句)。定义内容如:定义显示所有内容如field=0,定义显示大于、小于、等于、相似于、'%0(前面忽略后面等于0即可)条件下的内容等等条件语句。
动易的文章表最常用的:动易表中的“Deleted”表示文章是否删除状态,这个条件经常要加上的,“Deleted=false”表示不是被删除的文章才被输出显示出来。动易表中的“Status”表示文章状态值,“Status=3”表示输出显示终审通过的文章。一般有这二个条件就不会输出错误的内容出来。
例:select top 2 ArticleID,Title from Article where Deleted=false and Status=3 。如果有二个条件,可以继续加上“and ”(并列条件)或“or”(或条件)进行连接。

第五段 排序段:order by 语句 排序定义。类似于动易系统超级函数标签中按时间、ID等排序的参数设置。如order by ArticleID ,指按文章ID从小到大进行正序排序。如果要倒序排列,可以加上“desc”,如order by ArticleID desc(“asc”表示正序排列)。
例:select top 2 ArticleID,Title from Article where Deleted=false and Status=3 order by ArticleID desc
到这里,简单的SQL语句基本讲完了。简单地说,写全了选择段、输出主表段、从属字段、条件约束段和排序段这五段内容即可完成简单的SQL语句的书写。一般建议您使用可视化的编辑方式操作,这样写出来的动态标签不容易出错。
注意:若您在操作网站后台的动态标签时,您本网站的Access数据库正被同时Microsoft Access软件打开着,则会出现“SQL查询失败,错误原因:表正被用户以独占方式打开”的错误提示。此时关闭Microsoft Access软件后重新操作即可。
| 操作练习: 练习题目:制作一个列出显示文章列表、文章标题、作者、点击数、发表时间的动态标签查询语句 答案参考:select top 10 ArticleID,Title,Author,Hits,UpdateTime from PE_Article 提示:若操作正确,则会进入动态标签操作第二步,若提示错误则退回第一步再修改。 |
添加动态标签(第二步)界面效果:

在动态标签第二步操作中:
“查询语句”内容框中的内容是不能再修改的。
“字段列表”中显示的是系统自动从查询语句中提取出来的字段列表,以方便我们构建下面标签内容(即标签模板)时所用。每点击一个字段列表,则会弹出相应的列表属性设置对话框。

下面讲解“标签内容”部分,先从理论上了解一下动态标签内部使用标签。
三、动态标签内部使用标签的说明
动态标签的模板是独立的,与系统的页面模板不同,它有自己独特使用的标签,我们称为动态标签的“内部使用标签”。动态标签的内部使用标签总共有六类:
1、SQL查询语句专用特殊标签:
{$Now}
{$NowDay}
{$NowMonth}
{$NowYear}
{$PE_True}
{$PE_False}
{$PE_Now}
{$PE_OrderType}
只能放在语句中,解决一些运用时的特殊问题。目的是为了兼容AC与SQL版。
提示:以上的标签不能用于动易系统的模板设计中,只能用于动态标签构建SQL语句中使用。您可以直接在界面中点击“参数列表”中的链接进行可视化操作。
这些标签的具体含义在以后课程中进行运用讲解。
2、输入标签:
{input(0)}
这个输入标签是用于接收一些动态函数标签参数时使用,可通用于SQL语句与标签模板中。
动态函数标签支持很多参数,您可以自定义相应的参数,利用本输入标签参数是按顺序进行接收和替换。这本标签的具体含义在以后“动态函数标签”课程中进行运用讲解。
3、外循环标签:
{Loop}
循环内容……
{/Loop}
仅用于标签模板{Loop}{/Loop}所定义部分的内侧。
作用:定义循环体部分,即以标签定义显示循环体(循环体即为需要循环的内容),以{Loop}{/Loop}定义循环区域:{Loop}开始循环内容,{/Loop}结束循环内容。
例1 循环一行内容:
<table>
{Loop}
<tr><TD></TD></TR>
{/Loop}
</table>
例2 循环二行内容:
<table>
{Loop}
<tr><TD></TD></TR>
<tr><TD></TD></TR>
{/Loop}
</table>
注意:一个动态标签模板中只能有一个循环体。若要循环多个,则每需要一个循环体就要添加一个动态标签,同样查询同样循环输出。
4、内循环标签:
{Infobegin}
循环内容……
{/Infoend}
仅用于标签模板中{Loop}{/Loop}所定义部分的内侧,如:我们要显示一个文章列表中奇数行(1、3、5……行)、偶数行(2、3、4……行)的背景不同,并且循环显示的效果(类似于动易超级函数标签中的CssName1、CssName2的定义效果)。
作用:定义循环体内的单一记录模板。
例1 单行定义:
<table>
{Loop}
{Infobegin}
<tr><TD></TD></TR>
{Infoend}
{/Loop}
</table>
例2 隔行背景效果定义:
<table>
{Loop}
{Infobegin}
<tr CLASS="AT1"><TD></TD></TR>
{Infoend}
{Infobegin}
<tr CLASS="AT2"><TD></TD></TR>
{Infoend}
{/Loop}
</table>
例2中隔行背景效果定义输出10条记录的效果:
<table>
<tr CLASS="AT1"><TD></TD></TR>
<tr CLASS="AT2"><TD></TD></TR>
<tr CLASS="AT1"><TD></TD></TR>
<tr CLASS="AT2"><TD></TD></TR>
<tr CLASS="AT1"><TD></TD></TR>
<tr CLASS="AT2"><TD></TD></TR>
<tr CLASS="AT1"><TD></TD></TR>
<tr CLASS="AT2"><TD></TD></TR>
<tr CLASS="AT1"><TD></TD></TR>
<tr CLASS="AT2"><TD></TD></TR>
</table>
本效果可以进一步拓展成指定列数的表格等效果,大家可以进一步思考一下如何内循环标签的进一步应用。实例可以参考本文修改五中的说明。
5、字段标签:
{$Field(参数1,参数2)}
仅用于标签模板中{Infobegin}{Infoend}所定义部分的内侧。本标签功能重要,是主管输出的标签。“外循环标签”、“内循环标签”仅用于定义按一定规则进行循环,“字段标签”指定从数据库中提取出来的按什么样的格式来显示。
作用为:显示字段内容。
例:
<table>
{Loop}
{Infobegin}
{$Field(参数1,参数2)}
{Infoend}
{/Loop}
</table>
本标签内容可以以可视化方式进行编辑,不再具体讲解,以后通过实例课程进行示范说明。
6、特别标签:
{$AutoID}:依次输出记录行数,指按指定选择的结果进行输出。
{$totalPut} :输出本标签查询到的全部记录数,可用于分页显示时显示查询的全部记录数。
仅用于标签模板中。