您的位置:首页 > 数据库 > Oracle

oracle基础操作

2013-01-23 21:24 120 查看
--创建表空间

CREATE TABLESPACE TEST_SPACE

DATAFILE 'G:\app\Administrator\oradata\orcl\BRYAND.DBF'

SIZE 2M

AUTOEXTEND ON NEXT 2M MAXsize 10M;

--删除表空间

DROP TABLESPACE TEST_SPACE INCLUDING CONTENTS AND DATAFILES;

--创建临时表空间

CREATE TEMPORARY TABLESPACE TEST_TEMP_SPACE

TEMPFILE 'G:\app\Administrator\oradata\orcl\BRYAND_TEMP.DBF'

SIZE 2M

AUTOEXTEND ON NEXT 2M MAXsize 10M;

--扩展表空间

ALTER TABLESPACE TEST_SPACE

ADD DATAFILE 'G:\app\Administrator\oradata\orcl\BRYAND_01.DBF'

SIZE 1M

AUTOEXTEND ON NEXT 1M MAXsize 5M;

ALTER DATABASE DATAFILE 'G:\app\Administrator\oradata\orcl\BRYAND_01.DBF' RESIZE 2M;

--查找用户默认表空间

select username,default_tablespace from dba_users;

--创建用户并授权

CREATE USER bryand identified by tiger

DEFAULT TABLESPACE TEST_SPACE

TEMPORARY TABLESPACE TEST_TEMP_SPACE;

GRANT CONNECT,RESOURCE,DBA TO bryand;

CREATE TABLE SCOTT.TEST_USER(

USER_ID NUMBER,

USER_NAME VARCHAR2(20)

);

--为该表添加主键

ALTER TABLE TEST_USER ADD CONSTRAINT PK_USER_ID PRIMARY KEY(USER_ID);

--添加列

ALTER TABLE TEST_USER ADD USER_AGE VARCHAR2(2);

--修改列

ALTER TABLE TEST_USER MODIFY USER_AGE NUMBER;

--删除列

ALTER TABLE TEST_USER DROP COLUMN USER_AGE;

--创建序列

CREATE SEQUENCE TEST_SEQUENCE

MINVALUE 1

MAXVALUE 100000

START WITH 1

INCREMENT BY 1

CACHE 5

NOCYCLE

ORDER;

--获取下一个序列值

SELECT TEST_SEQUENCE.NEXTVAL FROM DUAL;

--获取当前序列值

SELECT TEST_SEQUENCE.CURRVAL FROM DUAL;

常用函数:

单行数字函数

ABS(X) x的绝对值

asin(x)

sin(x)...

ceil(x)返回大于等于x的最小整数

floor(x)返回小于等于x的最大整数

exp(x)返回e的x次幂

mod(y,x)返回y除以x的余数,x为0时则返回y

round(x,y)若不填y,则返回x四舍五入后的整数,y为负数则保留小数点前y位,正数则保留到小数点后y位

sign(x)检测x的正负

trunc(x,y),数字截取。若y不填则截图x的小数部分,若y为正数则截取到小数点后y位,若y为负数则截取到小数点前y位

单行字符函数

concat(x,y)返回将y添加到x后面而形成的字符串。如果某一个是null则返回另一个,如果2个都是null则返回null

length(x)返回x的长度,包括空格,若x为null则返回null

lower(x)返回将x全部字符都小写后的字符串

upper(x)返回将x全部字符都大写后的字符串

nanvl(x,value)如果x匹配NaN(即非数字),就返回value,否则返回x

nvl(x,value)如果x为空,就返回value,否则返回x

nvl2(x,value1,value2)如果x为空,就返回value1,否则返回value2

replace(c1,c2,c3)把c1中出现的c2都用c3替换,c3默认为null即删除c2;如果c2为null则返回c1;若c1为null则返回null

substr(c,m[,n])返回c的子串,其中m是子串开始的位置,n是子串的长度。如果m为0则从c的首字符开始;如果m是负数则从c的结尾开始

instr() 返回字符所在字符串中的位置,和java中indexOf函数类似

SELECT instr('ABCAB','A',1,1) FROM DUAL;--1

SELECT instr('ABCAB','A',-1,1) FROM DUAL;--4

--if 第一个值等于NULL,则为1,否则为2,后面可以一直接条件,decode(A,B,.....)

SELECT DECODE('10',NULL,1,2) FROM DUAL;--2

SELECT CASE when T.LOC='NEW YORK' then 1

when T.LOC='DALLSA' then 2

else 3 end loc

FROM DEPT T WHERE T.DEPTNO=10;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: