SQL21日自学通笔记(1)

时间:2023-03-09 01:58:24
SQL21日自学通笔记(1)

查找不重复数据

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(子查询)