sql select解析
时间:2009-08-12 来源:mingwjj
SQL的查询命令也称作SELECT命令,它的基本形式由SELECT-FROM-WHERE查询块组成,多个查询块可以嵌套执行。SELECT-SQL命令的格式包括三个基本子句:SELECT子句、FROM子句、WHERE子句,还包括操作子句:ORDER子句、GROUP子句、UNION子句以及其他一些选项。
SELECT [All | distinct] <字段列表>
FROM <表>
[WHERE 〈条件〉
[GROUP BY [〈组表达式〉 ][, 〈组表达式〉 …]]
[HAVING [〈筛选条件〉 ] [UNION [ALL] 〈SELECT命令〉 ]]
[ORDER BY 〈关键字表达式〉 [ASC |DESC] [, 〈关键字表达式〉 [ASC |DESC]…]
]
联接类型
Inner Join(内部联接) :只有满足联接条件的记录包含在结果中
Left Outer Join(左联接) 左表某记录与右表所有记录比较字段值,若有满足联接条件的,则产生一个真实记录;若都有满足,则产生一个含.NULL值的记录。直到右表所有记录都比较完
Right Outer Join(右联接) 右表某记录与左表所有记录比较字段值,若有满足联接条件的,则产生一个真实记录;若都不满足,则产生一个含.NULL值的记录。直到右表所有记录都比较完
Full Jion(完全联接) 先按右联接比较字段值,再按左联接比较字段值,不列入重复记录
几个特殊运算符: (1)[NOT]IN:表示[不]在…之中。 (2)[NOT]BETWEEN…AND…:表示[不]在…之间。 (3)[NOT]LIKE:表示[不]与…匹配。 说明: (1)NOT运算符来设计否定条件。 (2)LIKE运算符提供两种字符串匹配方式,一种是使用下划线符号“_”,匹配一个和任意字符,另一种是使用百分号“%”,匹配0个或多个任意字符。 (3)IN运算符,格式为IN(常量1,常量2,…)。含义为查找和常量相等的值。 例1:检索所有姓陈和姜的记录。 SELECT 编号,姓名 FROM zgda WHERE 姓名 IN("陈","姜")上式可以改为VFP条件,执行结果是一样的。
SELECT 编号,姓名 FROM zgda WHERE 姓名="陈" OR 姓名="姜"
例2:在zgda表和zggz表中,检索实发工资大于2000元的记录。
SELECT zgda.编号,zgda.姓名,zggz.实发工资 FROM zgda,zggz WHERE (实发工资>2000) AND (zgda.编号=zggz.编号)