distinct
去掉重复的
minus 相减
在第一个表但不在第二个表
SELECT * FROM FOOTBALL MINUS SELECT * FROM SOFTBALL;
intersect 相交
INTERSECT 返回两个表中共有的行。
SELECT * FROM FOOTBAL;
UNION ALL 与UNION 一样对表进行了合并但是它不去掉重复的记录。
汇总函数
count
select count(*) from test;
SUM
SUM 就如同它的本意一样它返回某一列的所有数值的和。
SELECT SUM(SINGLES) TOTAL_SINGLES FROM TEST;
SUM 只能处理数字如果它的处理目标不是数字你将会收到如下信息
输入/输出
SQL>SELECT SUM(NAME) FROM TEAMSTATS;
ERROR
ORA-01722 invalid number
no rows selected
该错误信息当然的合理的因为NAME 字段是无法进行汇总的。
AVG
AVG 可以返回某一列的平均值。
SELECT AVG(SO) AVE_STRIKE_OUTS FROM TEAMSTATS;
MAX
如果你想知道某一列中的最大值请使用MAX。
SELECT MAX(HITS) FROM TEAMSTATS;
MIN
MIN 与MAX 类似它返回一列中的最小数值。
VARIANCE
VARIANCE 方差不是标准中所定义的但它却是统计领域中的一个至关重要的数值。
SELECT VARIANCE(HITS) FROM TEAMSTATS;
STDDEV
这是最后一个统计函数STDDEV 返回某一列数值的标准差。
SELECT STDDEV HITS FROM TEAMSTATS;
日期时间函数
ADD_MONTHS
ADD_MONTHS也可以工作在select 之外
该函数的功能是将给定的日期增加一个月举例来说由于一些特殊的原因上述的计划需要推迟两个月那么就用到了。
LAST_DAY
LAST_DAY 可以返回指定月份的最后一天.
MONTHS_BETWEEN
如果你想知道在给定的两个日期中有多少个月可以使用MONTHS_BETWEEN。
select task, startdate, enddate ,months between(Startdate,enddate) duration from project;
返回结果有可能是负值.
可以利用负值来判断某一日期是否在另一个日期之前下例将会显示所有在1995 年5 月19 日以前开始的比赛.
SELECT * FROM PROJECT
WHERE MONTHS_BETWEEN ('19-MAY-95', STARTDATE)>0;
NEW_TIME
如果你想把时间调整到你所在的时区你可以使用NEW_TIME.
SQL>SELECT ENDDATE EDT, NEW_TIME('ENDDATE',' EDT',' PDT') FROM PROJECT;
NEXT_DAY
NEXT_DAY 将返回与指定日期在同一个星期或之后一个星期内的你所要求的星期天
数的确切日期如果你想知道你所指定的日期的星期五是几号可以这样做.
SQL>SELECT STARTDATE, NEXT_DAY(STARTDATE,' FRIDAY') FROM PROJECT;
SYSDATE
SYSDATE 将返回系统的日期和时间。
SELECT DISTINCT SYSDATE FROM PROJECT;
数学函数
ABS
ABS 函数返回给定数字的绝对值
CEIL 和FLOOR
CEIL 返回与给定参数相等或比给定参数在的最小整数.FLOOR 则正好相反它返回
与给定参数相等或比给定参数小的最大整数.
COS COSH SIN SINH TAN TANH
COS SIN TAN 函数可以返回给定参数的三角函数值默认的参数认定为弧度制.
EXP
EXP 将会返回以给定的参数为指数以e 为底数的幂.
LN and LOG
这是两个对数函数其中LN 返回给定参数的自然对数.
MOD
知道在ANSI 标准中规定取模运算的符号为%在一些解释器中被函数MOD 所取代.
POWER
该函数可以返回某一个数对另一个数的幂在使用幂函数时第一个参数为底数第二个为指数。
SIGN
如果参数的值为负数那么SIGN 返回-1 如果参数的值为正数那么SIGN 返回1,如果参数为零那么SIGN 也返回零.
SQRT
该函数返回参数的平方根,由于负数是不能开平方的所以我们不能将该函数应用于负数.
字符函数
CHR
该函数返回与所给数值参数等当的字符返回的字符取决于数据库所依赖的字符集.
CONCAT
和||一个作用,把两个字符串连接起来.
INITCAP
该函数将参数的第一个字母变为大写此外其它的字母则转换成小写.
LOWER 和UPPER
如你所料LOWER 将参数转换为全部小写字母而UPPER 则把参数全部转换成大写字母.
LPAD 与RPAD
这两个函数最少需要两个参数最多需要三个参数每一个参数是需要处理的字符串
第二个参数是需要将字符串扩充的宽度第三个参数表示加宽部分用什么字符来做填补
第三个参数的默认值为空格但也可以是单个的字符或字符串.
LTRIM 与RTRIM
LTRIM 和RTRIM至少需要一个参数最多允许两个参数第一个参数与LPAD 和RPAD
类似是一个字符串第二个参数也是一个字符或字符串默认则是空格如果第二个
数不是空格的话那么该函数将会像剪除空格那样剪除所指定的字符.
REPLACE
它的工作就如果它的名字所说的那样该函数需要三个参数第一个参数是需要搜索
的字符串(列名),第二个参数是搜索的内容第三个参数则是需要替换成的字符串如果第三个
参数省略或者是NULL 那么将只执行搜索操作而不会替换任何内容.
SUBSTR
这个函数有三个参数允许你将目标字符串的一部份输出,第一个参数为目标字符串,
第二个字符串是将要输出的子串的起点,第三个参数是将要输出的子串的长度。
如果第二个参数为负数那么将会从源串的尾部开始向前定位至负数的绝对值的位置。
TRANSLATE
这一函数有三个参数,目标字符串、源字符串和目的字符串,在目标字符串与源字符
串中均出现的字符将会被替换成对应的目的字符串的字符。
INSTR
如果需要知道在一个字符串中满足特定的内容的位置可以使用INSTR ,它的第一个参
数是目标字符串,第二个参数是匹配的内容,第三和第四个参数是数字用以指定开始搜
索的起点以及指出第几个满足条件的将会被返回。
LENGTH
LENGTH将返回指定字符串的长度。
转换函数
转换函数有三个可以使你方便地将数据从一种类型变换为另一种类型。
TO_CHAR
该函数的最初功能是将一个数字转换为字符型,不同的解释器可能会使用它来转换其它的
数据类型例如日期型转换为字符型或者是拥有更多的参数。
TO_NUMBER
该函数与TO_CHAR 函数相对应显而易见它是将一个字符串型数字转换为数值型。
其他函数
GREATEST 与LEAST
这两个函数将返回几个表达式中最大的和最小的。
SELECT GREATEST(‘ALPHA’,‘ BRAVO’,‘ FOXTROT’,‘ DELTA’) FROM CONVERT;
看来有必要使用FROM 子句可是如果FROM 子句没有的话你将会收到一个错误信息每
一个SELECT 语句都需要FROM 子句。
USER
该函数返回当前使用数据库的用户的名字