Oracle/Oracle

Oracle 정리 Start

longer 2012. 3. 27. 15:56

 DB의 기능..

DDL(정의어) :create,alter,drop - db생성, 삭제 (DB구조관련)

DML(조작어): insert, update,delete,select - table생생,수정,삭제,선택 (DB자료관련)

DCL(제어어): grant,revoke - db권한부여,해제

TCL(트랜잭션): commit, savepoint, rollback

*트랜잭션:데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기위한 하나의 논리적인 작업단위

 

 

 download - scott,hr,sys,system설정

 

desc 테이블명  : 테이블구성

set linesize200  -컬럼간격조정

문자를 20문자만큼 줄인다 - column 컬럼명 format a20;

table리스트 -select * from tab

number(6)-여섯자리정수표현

varchar_메모리중 안쓰는 글자는 회수/char_고정해서 회수없이 글을 입력해야하는 경우

테이블의 컬럼을 추가(ex.first_name,last_name합침)

select ENAME||'의 직업은'||JOB||'입니다' as result from EMP;   //||->자료와 자료를 연결,as->별칭부여(as대신 '필드명 별칭'으로 사용가능 ENAME NAME  But~ 콤마가 들어가면 각각 필드명으로 인식)

 ->ed:에디터기록

컬럼이름변경:as result

select EMPNO as no, ENAME as name, EMPNO||'  '||ENAME as na from EMP;  //필드명 바꾸기, 필드합쳐서 보여주기

conn hr/tiger  -연결변경

select ename, comm+500 from emp  //결과값이 comm에 null이 있는 경우 그값은 +500이 안됨

select ename,sal,nvl(comm, 0)+500 as annual from emp; //nvl을 사용하면 null이 있는 경우에도 +500

select ename,sal,nvl(comm, 0)+500 as "annual add 500" from emp;  //별칭의 이름을 길게 하여 띄어쓰기를 하는경우 쌍따옴표를 사용한다. 

 

SELECT ENAME ||q'['s salary]'||SAL AS RESULT FROM EMP; //'안에 '를 또 넣어주어야 할때 q를 사용한다.


Distinct : 중복제거후 열거목록확인

select distinct job, deptno from emp //두개컬럼중 조합하여 동일한 값이 있다면 중복제거하여 보여줌.(job만을 위한 distinct가 아니라 job,deptno둘다에 해당하는 중복을 제거)

l : 버퍼에 있는 (edit) 내용

/:버퍼결과만 보여주려는 경우

r"버퍼내용과 결과 둘다 보여주려는 경우

select ename,job,deptno from emp where sal>=1500  //조건검색

select ename,job,deptno from emp where deptno<>30; //같지않은 조건검색 (deptno!=30)

와일드 카드(_ : 글자하나   %: 글자수 0~여러개)

'선'으로 시작하는 : where name like '선__'

'선'으로 끝나는 : where name like '선%'

'선'이 포함되는 where name like '%선%'

 

select * from emp where hiredate<='81/02/01'

dual은 더미값

ABS함수사용(절대값) :  select -10, abs(-10) from dual;

FLOOR함수(소수점아래 버리기)   :    select 34.5678, floor(34.5678) from dual;

floor(-13.2) - >-14  //나보다 작은 값중에 최대 정수(내림)

ROUND함수(소수점반올림) :   select 34.5678, round(34.5678) from dual;

ROUND함수(소수점반올림,자릿수) :   select 34.5678, round(34.5678,2) from dual;

TRUNC함수(특정 자리수 버리기): select trunc(15.5678,1), trunc(15.5678,-1), trunc(15.5678) from dual;

//자릿수 버림

MOD함수(나머지값구하기): select mod(27,2) from dual;

select ceil(34.5678),ceil(-34.5678);  //자릿수 올림

p.137 페이지 함수 보기(http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions002.htm)