DQL 学习--> DQL 基本元素

类型

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


猜你喜欢

转载自blog.csdn.net/oscar999/article/details/7885171
DQL