01、SQL查询语句不区分大小写,但是数据区分
02、where从句中Name=null是查询不到结果的,必须用 is null
03、union去重,union all 不去重,intersect求交集 minu求差集
(不必一直用select +条件来查询数据,有些关键字也非常好用)
04、sum、avg、variance(求方差)、stddev(求标准差)只用于数值
05、add_months(date,months)在当前日期上增加(months)个月,正数就是向后推移时间,负数你懂的、last_day(date)求给定月份中最后一天,
06、 months_between求给定两个日期之间有几个月 , new_time可以调整时区,sysdate返回系统当前时间
07、数学函数:ceil(number)上取整、floor(number)下取整
cos、cosh、sin、sinh、tan三角函数
08、EXP 返回以e为底数的幂值;LN返回给定参数的自然对数;LOG(m,n)以n为底,m为参数的对数;
MOD求余数;POWER(m,n)第一参数为底数,第二个参数为指数;SIGN返回参数的正负标识,1为正,-1为负;SQRT,返回参数的平方根,不允许负数
09、字符串函数
CHR,ASCLL码转字符;CONCAT字符串连接;INITCAP参数第一个字母大写,其他小写;LOWER,UPPER转 大小写;LPAD/RPAD至少一个参数,去除左右给定的字符;REPLACE替换字符,至少两个参数,第一个字符串,第二个是要替换的内容,第三个是替换成的内容,如果省略,则默认为搜索而不是替换;SUBSTR(str,begin,len)截取字符串;TRANSLATE(str,sstr,dstr),若str中出现的源字符串sstr中的字符,则将其转换为与sstr下标对应的dstr的字符,超出部分以空代替;LENGTH返回指定字符串的长度
10、类型转换函数(看字面意思)
TO_CHAR
TO_NUMBER
GREATST/LEAST 返回表达式中最大的和最小的
11、SQL子句
STARTING WITH ‘EXP’ 与 like ‘EXP%’类似
HAVING必须跟在GROUP BY后面,其后也必须是组函数(GROUP之后,数据已成组)
12、创建和修改用户
CREATE USER username IDENTIFIED by password;
ALTER USER username IDENTIFIED by password;
13、关于权限
CONNECT 登录级角色,可做有限的事情
RESOURCE 允许对Oracle作更多的访问,并可赋予CONNECT权限,有创建过程、触发、索引的权限
DBA 最高级别,可做任何事情~¥~
赋予权限:GRANT role TO user [WITH GRANT OPTION];
回收权限:REVOKE role FROM user;
14、数据库访问优化的最好办法就是分流,软硬件性能再好也有极限,但是数量确实没有上限的。
优化一:分区存储,将大表分配到不同的磁盘上
例:
CREATE TABLE TEST(
ID NUMBER PRIMARY KEY,
NAME VARCHAR(20) NOT NULL)
PARTITION BY RANGE(ID)
(PARTITION T01 VALUES LESS THAN 100000,
PARTITION T02 VALUES LESS THAN 200000);
优化二:分表存储,将大表分成小表,可以按照不同的分类标准
分表这里不再多说,可见我之前的博客《MYSQL应用优化》
ORACLE在遵照SQL语言之外拓展了许多自己的特性,使用起来节省了很多再开发的成本,整个体系比较完整,只有一点不好的就是发布商业用途要收费,呵呵。