函数
oracle
mysql
nvl()
IFNULL
to_date
str_to_date(date,'%Y-%m-%d')
to_number
CAST(xxx AS SIGNED INTEGER), CONVERT(xxx,INTEGER)
wm_concat
group_concat
DECODE(T.ID, '0', '1', '1', '2', '2', '3', ' ')
if(T.ID='0','1',if(T.ID='1','2',if(T.ID='2','3','')))
length()
char_length()
instr(‘abcdefg’,’ab’)
instr(’ab’,‘abcdefg’)
to_char()
date_format(date,'%Y-%m-%d')
mysql注意事项
mysql使用delete from 表名 where 字段名 in (''),表名不能使用别名,否则sql会报错
mysql“substring(str,pos,len)、substr(str,pos,len)”函数使用时,如果从字符串第一个字符截取,则:substr(str,1,4),oracle则是:substr(str,0,4)
常用操作
--创建表空间
CREATE
TABLESPACE "TABLESPACE_NAME"
LOGGING
DATAFILE '/datas/data2/TABLESPACE_NAME.dbf' SIZE 1024M
AUTOEXTEND
ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT
SPACE MANAGEMENT AUTO;
--创建临时表空间
CREATE
TEMPORARY TABLESPACE TABLESPACE_NAME_TEMP TEMPFILE '/datas/data1/TABLESPACE_NAME_TEMP.dbf' SIZE 1024M AUTOEXTEND
ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM
SIZE 1M;
--创建用户
CREATE USER USER_NAME PROFILE "DEFAULT"
IDENTIFIED BY USER_NAME DEFAULT TABLESPACE TABLESPACE_NAME
TEMPORARY TABLESPACE TABLESPACE_NAME_TEMP
ACCOUNT UNLOCK;
--赋权限
grant dba to 用户;
--失误drop表后恢复
flashback table 原表名 to before drop
--恢复表到指定时刻
flashback table 表名 to timestamp to_timestamp('20130813 14:00:00','yyyymmdd hh24:mi:ss');
--开始表行移动功能
alter table tablename enable row movement;
--mysql 替换某个字段中的某个字符
update 表名 set 字段名=REPLACE (字段名,'原来的值','要修改的值')
--修改数据库密码
alter user 用户名 identified by 新的密码;
--账户被锁后解锁
alter user 用户名 account unlock;
--按逗号切割字符串,把参数拆成多列
select
regexp_substr('192.168.1.1,8000,cpu,apx,10200','[^,]+',1,1) IP,
regexp_substr('192.168.1.1,8000,cpu,apx,10200','[^,]+',1,2) PORT,
regexp_substr('192.168.1.1,8000,cpu,apx,10200','[^,]+',1,3) COLA,
regexp_substr('192.168.1.1,8000,cpu,apx,10200','[^,]+',1,4) COLB
from dual ;
--创建只读用户
1.创建用户(user),指定表空间
2.给用户赋权限
GRANT CONNECT,SESECT ANY TABLE,SELECT ANY DICTIONARY TO user;
grant create synonym to user;
3.给需要查询的表创建同义词
create synonym 同义词名称 for 数据库用户.表名;
--查看数据库字符集
select userenv('language') from dual;