查找不重复数据
DISTINCT
查询日期
在access中格式是yyyy-mm-dd,Query执行的语句中用‘#’+Formatdata(‘yyyy-mm-dd’,date)+‘#’
SQL运算符
取模%,MOD()
+,-,*,%
比较运算(true,false,Unknow)
比较运算(<,>,<>,!=)
逻辑运算(And,OR,Not)
为提高效率一般不用OR改用IN
||连接,CONCAT
Like通配符%,_
SQL中排序大写字母总在小写的后面,不论是在ASCII,还是EBCDIC
SQL对大小写不敏感,但是数据库对大小写是敏感的
判断字段为空,非法
Select * from 学生 where Number IS NULL
IS NOT NULL
集合运算(SET)
就是高中数学中的集合操作
UNION 并集
INTERSECT 交集
[.ɪntər'sekt]
UNION ALL 两数据集的全部结果
MINUS 相减
IN
统计函数
CONUT,SUM,AVG,MAX,MIN
方差 VARIANCE
标准差 STDDEV
日期函数
ADD_MONTHS(date,2) 加两个月
LAST_DAY(date)指定月的最后一天
正值
MONTHS_BETWEEN(S,E) 0
负值(E早于S)
NEW_TIME修改时区
NEXT_DAY(date,’FRIDAY’)date最近一个周五的日期,本周或者下周
SYSDATE系统时间
数学函数
ABS绝对值
CELL 减去小数部分
FLOOR 去掉小数加1
三角函数 COS,COSH,SIN,SINH,TAN,TANH(都是弧度制)
EXP自然指数
LN自然对数
LOG(n,m) LogmN
MOD
POWER(a,b)a的b次方
SIGN(n)判断n是不是正值
SQRT平方根
字符函数
CHR 跟 delphi的用法一样
CONCAT 同||
INITCAP 把 COME 变成Come
LOWER,UPPER
LPAD,RPAD
LTRIM,RTRIM
REPLACE(字段,‘目标’,‘替换为’)
SUBSTR 跟delphi的Copy函数用法一样,当index是负值的时候 是倒着数
TRANSLATE(字段,目标集合,替换为集合)
INSERT(字段,‘目标’,StartIndex,EndIndex)
LENGTH
转换函数
TO_CHAR,TO_NUMBER
其他
GREATEST集合中的最大值
LEAST中的最小值
USER使用者用户名
注意
汇总函数不能在Where中使用
WHERE
STRING WITH 类似 LIKE(exp%)
ORDER BY
GROUP BY
明 SQL 无法把正常的列和汇总函数结合在一起 这时就需要 GROUP BY 子
句 它可以对 SELECT 的结果进行分组后在应用汇总函数 查询 SELECT * FROM CHECKS
返回了 14 行 而 SELECT PAYEE SUM AMOUNT FROM CHECKS GROUP BY
PAYEE 则把返回的 14 行分成了 7 组 然后对每组应用了汇总函数
当要求分组结果返回多个数值时不能在在 SELECT 子句中使用除分组列以外
的列 这将会导致错误的返回值 你可以使用在 SELECT 中未列出的列进行分组
HAVING
HAVING后面可以使用汇总函数
表的联合
交叉联合 等值联合 不等值联合
JOIN ON
RIGHT OUTER JOIN ON
返回右表的所有的内容,不合条件的返回控值
LEFT OUTER JOIN ON
联合的where部分的第一个子句是联合的条件
子查询
子查询应该只返回一个值
IN
EXISTS
如果子查询结果非空返回True
Any,Some
对查询结果中的每一个真值返回一个True
同IN相比,IN相当是多个选号的使用;ANY,SOME可以使用其他的比较运算
ALL
一般用于排除
WHERE Name<>ALL(子查询)