主题:  cfm 的数据库查询

jaway

职务:普通成员
等级:1
金币:1.0
发贴:153
注册:2002/3/27 8:15:32
#12002/4/9 11:29:01
-------------- 查询嵌套的用法 -------------------------------

select name
form aaa
where id >100


Update bbb
set name='#name#'



------------------- 数据查询中的多重判断 -------------------------------

select * from 表名 where 0=0
and parkname like '%#parkname#%'
and parktype = '#parktype#'
and state = '#state#'


---------------- 数据查询中的视图建立和访问 -----------------------
数据查询中的视图建立

create view vget_applicants as
select 'applicant name'as name,
'''best quality''mentioned in interview' as quality,
'does back' as back_end
from 表名


数据查询中的视图访问

select name,quality,back_end from vget_applicants


----------------- 数据查询中的子查询 -------------------------------

select name from 表名 where id in
(select id from 表名2 where name like '%#name#%')


------------------- 数据查询中的合计函数 -------------------------------------

select count(字段名) as name
min(age) as min_age
max(age) as min_age
avg(age) as min_age
from 表名 where 字段名=条件


-------------------- 数据查询中的列别名 ------------------------------

select 字段名 as name from 表名

#name#

以上内容是一些简单的查询方法,请熟练掌握。



jaway

职务:普通成员
等级:1
金币:1.0
发贴:153
注册:2002/3/27 8:15:32
#22002/4/9 12:04:03
熟悉SQL内置函数的用法,能加速你的数据库网站运行速度。
最近看了一些新手写的程序,发现初学者来,也许会用COLDFUSION去计算数据库中字段列的值,或许他们对SQL的认知才刚刚开始,我认为还是有必要的讲解一下。

我举几个例子
统计COUNT

我们都知道COUNT在CF里可以用recordcount来统计记录数,
如:

select * from mytable

#recordcount#
recordcount将显示数据中有多少数据。

但,我们猜想如果一张数据库中数据量非常大,我们是否有必要让他们浪费系统资源呢?
我们常用的SQL语句中,有一个COUNT的函数,和AS的用法。
请换成下列的写法

select count(*) as CNUMBER from mytable


#CNUMBER#

对了,这里的AS是起别名的意思。

我们再举一个数字之和地例子SUM

select sum(string1) as StringSum from mytable


#StringSum#

计算字段string1之和

非常好,利用数据库内嵌的SQL函数,我们能替代CF做很多事。当然,如果你对SQL不熟悉的话,也可以使用CF来完成工作。
以上是转winit 的一段



5DDC版主

职务:版主
等级:6
金币:10.0
发贴:3820
注册:2002/3/25 21:30:11
#32002/4/9 12:14:12
不错SQL得用出很大!不过有些时候也可以在CFML中作二次过滤,减少重复query的负担!
比如在cfif 中也可以使用 where #count# is 1这样的写法!