一、SQL简介
1、select    distinct     amount    from(表名);其中的“distinct"表示:不显示重复数据。
2、 取模 运算将返回一个除法的余数部分(取模运算符:MOD)    。如:5%2=1        6%2=0
3、在数据库领域内 NULL 的意义就是在一个字段之中没有数据。
4、select * from price where who>0.25 and who<0.75;
        select * from price where who 0.25 and 0.75;
        这二个公式结果相同。
5、“ || ” 为连接符,可以将二个字符串连接起来。   
6、集合运算(SET):
union与union all :union将返回两个查询的结果并去除其中的重复部分。union all 不去除重复的部分。
intersect(相交) :返回两个表中共有的行。公式:select * from abc intersect select * from abc
minus(相减) :返回的记录是存在于第一个表中但不存在于第二个表中的记录。
二、函数

1、汇总函数:
count :该函数将返回满足where 条件子句中记录的个数。
sum :返回某一列的所有数值的和。
avg :返回某一列的平均值。
max :返回某一列的最大值。 (注:既可以处理数值也可以处理字符)
min :返回某一列的最小值。
variance :求方差。
stddev :返回某一列数值的标准差。

2、日期/时间函数:
add_months :给定的日期增加*个月。
last_day :返回指定月份的最后一天。
months_between :返回指定的二个日期中有多少个月。
new_time :将时间调整到你所在的时区。
next_day :将返回与指定日期在同一个星期或之后一个星期内的你所要求的星期天数的确切日期。
sysdate :将返回系统的日期和时间。

3、数学函数:
ABS :函数返回给定数字的绝对值。
ceiling :返回大于或等于所给数字表达式的最小整数。
floor :返回小于或等于所给数字表达式的最大整数。
cos、sin、tan :返回给定参数的三角函数值默认的参数认定为弧度制。
exp :将会返回以给定的参数为指数以e 为底数的幂值。
ln和log :这是两个对数函数其中LN 返回给定参数的自然对数。
power :返回某一个数对另一个数的幂,在使用幂函数时第一个参数为底数第二个指数。
sign :如果参数的值为负数那么SIGN 返回-1,如果参数的值为正数那么SIGN 返回1,如果参数为零那么SIGN 也返回零。
sqrt :返回参数的平方根,由于负数是不能开平方的,所以我们不能将该函数应用于负数。

4、字符函数
chr :返回与所给数值参数等当的字符,返回的字符取决于数据库所依赖的字符集。
concat :将字符串连接起来,与“||”符合功能一样。
initcap :将参数的第一个字母变为大写,此外其它的字母则转换成小写。
lower 和upper :lower将参数转换为全部小写字母,而upper 则把参数全部转换成大写字母。
lpad(左填充)与rpad(右填充) :这两个函数最少需要两个参数最多需要三个参数,第一个参数是需要处理的字符串;第二个参数是需要将字符串扩充的宽度;第三个参数表示加宽部分用什么字符来做填补。第三个参数的默认值为空格,但也可以是单个的字符或字符串。
            例:SQL>SELECT    LASTNAME LPAD( LASTNAME,20,‘ * ’) FROM    CHARACTERS
ltrim :删除起始空格后返回字符表达式。 rtrim :截断所有尾随空格后返回一个字符串。
:该函数需要三个参数,第一个参数是需要搜索的字符串;第二个参数是搜索的内容;第三个参数则是需要替换成的字符串。如果第三个参数省略或者是NULL 那么将只执行搜索操作而不会替换任何内容。
substr :允许你将目标字符串的一部份输出,第一个参数为目标字符串;第二个字符串是将要输出的子串的起点;第三个参数是将要输出的子符串的长度。 (注:如果第二个参数为负数那么将会从源串的尾部开始向前定位至负数的绝对值的位置)
translate :这一函数有三个参数,目标字符串、源字符串和目的字符串,在目标字符串与源字符串中均出现的字符将会被替换成对应的目的字符串的字符。
instr :知道在一个字符串中满足特定的内容的位置可以使用INSTR,它的第一个参数是目标字符串;第二个参数是匹配的内容;第三和第四个参数是数字,用以指定开始搜索的起点以及指出第几个满足条件的将会被返回。
            例:SQL>SELECT    LASTNAME    INSTR( LASTNAME,' O ' ,2,1)  FROM CHARACTERS;
length :将返回指定字符串的长度。
charindex : 用来寻找一个指定的字符串在另一个字符串中的起始位置(SELECT CHARINDEX('ACCP','My Accp Course',1 ) 返回:4 )

5、转换函数:
to_char :它是将将一个数字转换为字符型,不同的解释器可能会使用它来转换其它的数据类型。
to_number :它是将一个字符串型数字转换为数值型。

6、其它函数:
greatest与least :这两个函数将返回几个表达式中最大的和最小的。
user :该函数返回当前使用数据库的用户的名字

三、SQL子句
1、 starting  with 子句:附加于where 子句上,它的作用与like相似。
2、 order  by (排序) :其中DESC是升序,ASC是降序。
3、 group by (分组) :将记录与指定字段中的相等值组合成单一记录。如果使SQL 合计函数,例如 Sum 或 Count ,蕴含于 SELECT 语句中,会创建一个各记录的总计值。
  CUBE: 除了返回由group by子句指定的列外,还返回按组统计的行,返回的结果先按分组的第一个条件列排序显示,再按第二个条件列排序显示,以此类推,统计行也包括了group by子句指定的列的各种组合的数据统计。
  ROLLUP: 与CUBE不同的是,此选项对group by子句中的列顺序敏感,它只返回第一个分组条件指定的列的统计行,改变列的顺序会使返回的结果的行数发生变化。
4、 having 子句:在select 语句中指定,显示哪些已用group by子句分组的记录。在group by组合了记录后,having会显示guoup    by 子句 分组的任何符合having子句的记录。(子句指定分组搜索条件)
        (注:汇总函数不能工作在where子句中,而可以工作在having子句中)。
5、 compute 子句:在查询结果的末尾生成一个汇总数据行。
 语法:
    compute
       
         (expression)} [,...n]
       
        expression: 指定需要统计的列的名称,此列必需包含于select列表中,且不能用别名。computer子句中也不能用text、ntext、image数据类型。
        by expression: 在查询结果中生成分类统计的行,如果使用此选项,则必须同时使用order by子句。expression是对应order by子句中的order_by_expression的子集或全集。