查询第一条数据
select * from tableName where rownum <= 1
修改表名
ALTER TABLE tablename RENAME TO newtablename
修改列名:
ALTER TABLE BD_PRI RENAME COLUMN EU_PRIMD TO CODE
修改列类型:
ALTER TABLE TableName MODIFY(CODE VARCHAR(20))
根据出生日期计算年龄:
TRUNC(months_between(sysdate, to_date(substr(patient.dt_birth,1,10),'yyyy-mm-dd'))/12) as Age,/*年龄*/
字符串连接
--||拼接 SELECT T_B||T_E FROM SC_TICKS --CONCAT拼接 SELECT CONCAT(T_B,T_E) FROM SC_TICKS --CONCAT可以嵌套 SELECT CONCAT(CONCAT(T_B,'-'),T_E) FROM SC_TICKS
取当前时间
SELECT sysdate FROM tablename
时间格式如:2015-10-20 下午7:54:19
时间转换格式,通常的时间格式:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from tablename
当前时间增减
增加1小时如下
SELECT SYSDATE, SYSDATE+NUMTODSINTERVAL(1,'HOUR') FROM tablename
同样的,对照表
字符标识 | 含义 |
hour | 时 |
minute | 分 |
second | 秒 |
如果增加1天
SELECT SYSDATE, SYSDATE+1 FROM tablename
增加2个月,需要ADD_MONTHS函数
SELECT SYSDATE, ADD_MONTHS(SYSDATE,2) FROM DUAL
增加2年,也可以用这个函数
SELECT SYSDATE, ADD_MONTHS(SYSDATE,2*12) FROM DUAL
求时间差
SELECT SYSDATE-TO_DATE('2015-10-20 21:22:23','YYYY-MM-DD HH24:MI:SS') DT FROM DUAL
导出数据库dmp文件
exp 用户名/密码@实例名 file=C:db.dmp
实例
导入数据库
imp 用户名/密码@实例名 file=C:db.dmp
清空表数据,要使用:
truncate table 表名
因为用drop table,delete * from 表名时,tablespace表空间该表的占用空间并未释放,反复几次drop,delete操作后,该tablespace上百兆的空间就被耗光了。
判断字段是否为空
null只能通过is null或者is not null来判断,其它操作符与null操作都是false。
如果使用: fieldname<>null,什么数据都查不到。
也可以用nvl函数来判定,如nvl(name,'-')<>'-'