类型
1. 整型(Integer)
2. 浮点型(float)
3. 字符串类型(Character string)
4. ID类型
5. 日期类型(Date)
整型
取值范围从 -2147483647 到 +2147483647
浮点型
支持科学计数法
5.347 ; 10.4e-6 ; 10.4E-6
取值范围, 和数据库有关联
数据库 | 范围 | 有效数字位数 |
Oracle | 1.0*10-129 to 9.99*10+129 | 15 |
DB2 | 1.0*10-307 to 1.798*10+308 | 15 |
MS SQL | 1.7e-308 to 1.7e+308 | 15 |
字符串类型
使用单引号包起来, 如果要使用单引号作为字串的一部分的话, 使用两个单引号包起来就可以了。
长度限制取决于数据库的长度限制, 但是不要超过 1999 bytes
ID 类型
长度为16的字符串。 此值为系统自动产生的。
日期类型
有效值从 01/01/1753 - 12/31/9999
DATE(TODAY) ; DATE(NOW), DATE(YESTERDAY),DATE(TOMORROW)
特殊关键字
USER : 代表当前用户
TRUE and FALSE : 布尔型的对和错
DM_SESSION_DD_LOCALE:与客户端的连接语言环境最合适的数据字典语言环境。
函数
——————————————————————————————————————————————————————————————
1. 纯量函数(Scalar)
2. 合计函数(Aggregate)
3. 日期函数(Date)
4. ID 函数
5. MFILE_URL 函数
纯量函数(Scalar)
1. ASCII
返回字符串首字母的ASCII码
select count(*) from dm_document where ascii(owner_name)=98;
2. BITAND, BITCLR,BITSET
位运算
BITAND and 运算 ;相同位的两个数字都为1,则为1;若有一个不为1,则为0。
BITCLR , 两个数的位数运算, 第二个位数为1, 运算为0, 否则取第一个数的位数值. as BITCLR(5,9) --> 0100 BITCLR(9,5) --> 1000
BITAND: or 运算 ,相同位只要一个为1即为1
select user_name from dm_user where BITAND("user_privileges",1)=1;
3. UPPER,LOWER
返回大小写
4. SUBSTR 字符串截取
合计函数(Aggregate)
1. COUNT
2. MIN
select MIN(owner_name) from dm_document;
3. MAX
4. AVG
5. SUM
日期函数(Date)
1.DATEDIFF DATEDIFF(date_part,date1,date2)
date1和date2之间的时间差, date_part 可以是day, month, week
select "task_number","supervisor_name" from dm_tasks_queued where DATEDIFF(month,"plan_start_date","actual_start_date")>=1;
2. DATEADD DATEADD(date_part,number,date)
在原时间上加上某个值
3. DATEFLOOR DATEFLOOR (date_part,date)
原时间的开始时间
如果Date 是March 23, 1996 at 9:30:15 am
DATEFLOOR(year,"r_creation_date") -- January 1, 1996 at 00:00:00
DATEFLOOR(month,"r_creation_date") -- March 1, 1996 at 00:00:00
DATEFLOOR(day,"r_creation_date") -- January 23, 1996 at 00:00:00
4. DATETOSTRING DATETOSTRING (date,''format)
DATETOSTRING("r_creation_date",'dd-mon-yy') 14-May-95
ID 函数
ID('object_id')
以下例子为查找在某个floder 下的document
select * from dm_document where folder (ID('0b00000b8031d105'));
MFILE_URL 函数
MFILE_URL('format',page_no,'page_modifier')
select MFILE_URL('jpeg_th',0,'image1') from dm_document;
谓词(Predicates)
————————————————————————————————————————————————————————————————————————————
1. 算术运算(Arithmetic)
2. 比较运算 (Comparison)
3. 栏位和属性谓词
4. SysObjects 谓词
算术运算
+ ;-; * ;/ ; **
比较运算
=
>=
<=
>
<
<>
!=
栏位和属性谓词
1) single-valued properties
IS [NOT] NULL
IS [NOT] NULLDATE
IS [NOT] NULLSTRING
IS [NOT] NULLINT
[NOT] LIKE pattern[ESCAPE character]
[NOT] IN value list
[NOT] EXISTS(subquery)
comparison_op SOME(subquery)
comparison_op ANY(subquery)
comparison_op ALL(subquery)
2) - repeating properties
attr_name [NOT] LIKE pattern[ESCAPE character]
attr_name IN (value_list)
[IN|EXISTS] attr_name IN (subquery)
attr_name IS [NOT] NULL
attr_name IS [NOT] NULLDATE
attr_name IS [NOT] NULLSTRING
attr_name IS [NOT] NULLINT
attr_name comparison_op value_expression
转义字符
select "r_object_id" from "dm_document" where object_name like '%\_%' ESCAPE '\';
SysObjects 谓词
TYPE -- TYPE(type_name)
select * from dm_sysobject where TYPE("dm_document");
FOLDER
[NOT] FOLDER(folder_expression{,folder_expression}[,DESCEND])
CABINET
[NOT] CABINET(cabinet_expression[,DESCEND])
逻辑操作符
AND
OR
NOT