본문 바로가기

나는 엔지니어

트랜잭션!! 트랜잭션 : 논리적으로 하나의 작업 단위를 의미한다.( commit단위이다 : commit 하지 않으면 같은 트랙잰션에 속한다.) 1. 원자성2. 일반성3. 격리성4. 영속성 .삭제 와 업데이트에서는 LOCK를 고려해야 한다. 더보기
롤백 / 커밋 DML을 실행 했으면 반드시 rollbak / commit를 실시해야 한다.(insert / update / delete ) DDL은 자동으로 commit을 실시한다. ( 주의!! )(create / drop ....) 더보기
CREATE TABLE DDL은 테이블의 구조 자체를 생성,수정,제거하도록 하는 명령문 집합이다. 테이블을 생성하기 위해서는 테이블 스페이스를 만들어 줘야한다. 아래는 데이터 복사를 하지 않는다.Create Table Dept01AsSelect Deptno,Dname From Deptwhere 1=0; 데이터 복사까지 실시한다.Create Table Dept02AsSelect Deptno,Dname From Deptwhere 1=1; 테이블 복사에서 null제약 조건은 복사를 한다. CREATE TABLE HR_BASICINFO ( EMPID VARCHAR2(20) NOT NULL , KOR_NAME VARCHAR2(8) , ENG_NAME VARCHAR2(40) , ADDR VARCHAR2(100) , TEL VARCHAR2.. 더보기
조인~ 더보기
group 그룹합수 / 집계함수만 사용하면 group by는 필요없다.Select Count(*)From Emp; Select Count(comm)From Emp; Select Count(*) ,enameFrom Emp Group By Ename; 중복을 제거한후 그룹함수 / 집계 함수 제거는 아래와 같이 사용한다.Select Count(distinct Job)From Emp; 그룹함수는 두번까지 중첩해서 사용할 수있다.하나의 중첩안에 오직 두번밖에 사용 못한다.Select Max(Avg(Salary))From Employeegroup by dno; 더보기
Months_Between/Add_Months/Last_Day Select ename, round(Months_Between(Sysdate,Hiredate))from employee; Select Ename,Hiredate, Add_Months(Hiredate,6), Add_Months(Hiredate,-6)from employee; Select Sysdate, Next_Day(Sysdate,1) -- 1~7 (月~日)from dual; Select Hiredate, Last_Day(Hiredate)From employee; 더보기
DECODE / CASE WHEN DECODE 는 equal연산 밖에 안된다.equal이외의 연산을 사용할때엔 CASE WHEN을 사용한다. .DECODESelect Ename, Dno, Decode(Dno, 10,'ACCOUNTING', 20,'Research', 30,'sales', 40,'operations', 'Default') As DnameFrom Employeeorder by dno; default값을 설정하지 않으면 null이 설정된다.디폴트값을 입력하도록 해주자..( 오류의 위험.) Select Ename, Dno, Case When Dno >= 40 Then 'OPERATIONS' When Dno >= 30 Then 'SALES' When Dno >= 20 Then 'RESEARCH' When Dno >= 10 Then.. 더보기
ROUND / TRUNC / MOD 반올림과 버림 그리고 나머지값 구하기 round.round(data) : 반올림하여 정수로 변환 .round(data,1) : 소수부 둘째자리에서 반올림한다..round(data, -1 ) : 정수부의 첫째자리에서 반올림한다. Select round(Sysdate - Hiredate,1)from employee; TRUNC.trunc(data) : 소수부는 버림 .trunc(data,1) : 소수 둘째자리부터 버림.trunc(data, -1 ) : 정수부의 첫째자리부터 버림 MOD.MOD(data1,data2) : data1를 data2로 나눈 나머지를 반환 더보기
Lpad / Rpad 공백 지정문자 채우기 10문자만 가져오고 공백은 *를 채운다Select Lpad(Salary,10,'*'), Rpad(Salary,10,'*')from employee; 더보기
Instr 문자 찾기 5번째 위치부터 시작하여 두번째 a의 위치를 찾아라 Select Instr('oracle mania','a',5,2)from dual; 더보기