본문 바로가기
반응형

분류 전체보기703

[ORACLE] 오라클_내부조인( INNER JOIN ) 내부조인(INNER JOIN) 등가 조인의 한 종류이다. 두 개의 테이블 혹은 두 개 이상의 테이블을 조인하는 건데, INNER JOIN을 붙여서 사용한다. (INNER는 생략이 가능하다.) 조건절에는 WHERE 대신에 ON을 사용한다. 기본적인 사용법 SELECT d.deptname, e.ename FROM dept d INNER JOIN emp e ON e.deptno = d.deptno; 여기서 INNER를 생각하면 당연히 다음과 같다. SELECT d.deptname, e.ename FROM dept d JOIN emp e ON e.deptno = d.deptno; 2개 이상의 테이블 조인 SELECT d.deptname, e.ename FROM dept d INNER JOIN emp e ON e.. 2019. 2. 22.
[ORACLE] 오라클_등가조인(Equi Join) Equi Join(등가조인) 가장 많이 사용하는 조인문이다. (특히 기본 사용법과 INNER JOIN) 조인 조건이 "정확히" 일치하는 경우에만 사용한다. (PK(기본키)와 FK(외래키)를 사용한 조인) 조인 조건에 "="를 이용하는 조인을 보통 등가 조인(Equi Join)이라고 한다. 우리가 가장 쉽게 접하면서도 가장 일반적으로 사용하는 조인은 Equi Join(등가조인)이다. 흔하게 Join이라고 말하면 등가 조인을 의미한다고 생각하면 된다. 보통 아래와 같이 사용한다 --dept 테이블에 deptno = 5 가 있는데, emp 테이블에 5를 가진 사람이 없으면 데이터를 가져오지 않음. --별칭을 d와 e로 써준것.. FROM절 먼저 실행되니까 활용 가능 SELECT d.deptname, e.ena.. 2019. 2. 21.
[ORACLE] 오라클_조인(JOIN) 의 개념 및 종류 조인(JOIN) Join이란'두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법으로 두 개의 테이블을 마치 하나의 테이블인 것처럼 보여주는 것이다.' * JOIN의 기본 사용법 두 개의 테이블에 하나라도 같은 컬럼이 있어야 한다. 두 컬럼의 값은 공유되어야 한다. 보통 조인을 위해 기본키(Primary Key)와 외래키(Foreign Key)를 활용한다. 우리가 가장 쉽게 접하면서도 가장 일반적으로 사용하는 조인은 Equi Join(등가조인)이다. 흔하게 Join이라고 말하면 등가 조인을 의미한다고 생각하면 된다. 상세한 내용은 다른 게시글을 통해 정리를 하고자 하며, 일단 간단하게 맛만 보고 넘어가자. --dept 테이블에 deptno = 5 가 있는데, emp 테이블에 5를 가진 .. 2019. 2. 21.
[ORACLE] 오라클_시노님( Synonym )이란? - 개념 및 사용법 SYNONYM 쉽게 말해서 ALIAS 같이 이름을 줄여주는 역할을 한다라고 생각하면 된다. 시노님(Synonym)은 테이블의 이름을 설정해 주는것이다. 보통 다른 유저의 객체(테이블, 뷰, 프로시저, 함수, 패키지, 시퀀스 등)를 참조할 때 많이 사용한다. 실제로 SYNONYM을 이용하는 이유는 다른 유저의 객체를 사용할 때 유저의 이름과 객체의 실제 이름을 사용하는데, 그 두 개를 감춤으로써 데이터베이스의 보안을 개선하기 위해 사용된다. 시노님(Synonym) 생성 ▷ 구문 CREATE [ PUBLIC ] SYNONYM [ 시노님 이름 ] FOR [ 객체 이름 ] * PUBLIC은 모든 사용자가 접근이 가능하도록 설정해주는 것이다. * PUBLIC을 선언해주지 않으면 기본값으로 PRIVATE가 선언된다.. 2019. 2. 20.
[ORACLE] 오라클_VIEW(뷰) 테이블 생성 및 삭제 뷰(VIEW) 하나의 가상 테이블이다.(여러개의 테이블에서 원하는 값만을 가져와 가상 테이블 뷰를 만들어 사용한다.) 다수의 테이블에서 자주 가져오는 즉, 사용하는 값들을 모아서 만드는 형식으로 주로 사용된다. 뷰(VIEW)는 다음과 같은 제한 조건을 가진다. - 테이블에 데이터가 NULL인 컬럼은 뷰에 포함할 수 없다. - WITH READ ONLY 옵션을 준 뷰는 갱신이 불가능 하다. - WITH CHECk OPTION을 설정한 뷰는 조건에 해당하는 데이터만 갱신이 가능하다. - 가상컬럼(ROWID, ROWNUM, NEXTVAL, CURRVAL)에 대한 참조를 포함한 뷰는 어떠한 데이터도 INSERT가 불가능하다. 뷰 테이블의 경우 INSERT 같은 것들도 가능하다고는 하는데, SELECT를 하는 용.. 2019. 2. 19.
[ORACLE] 오라클_SQL (쿼리문) 처리 및 실행 순서 오라클 쿼리문 실행 순서 복잡하지 않은 쿼리문을 작성하게되면 보통 아래 순서로 작성을 하고는 한다. SELECT > FROM > WHERE > GROUP BY > HAVING > ORDER BY 하지만 우리가 작성한 그 순서대로 쿼리가 실행되지는 않는다. 위와 같이 쿼리를 작성했다면, 해당 쿼리문을 아래와 같은 순서로 처리된다. FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY 좀 더 실행 순서에 대해 파고들어보자. DB를 사용할 때 ROWNUM을 할당해서 사용하는 경우가 많은데, ORDER BY 해서 SELECT를 해오면 ROWNUM이 뒤죽박죽으로 출력되는 현상을 많이 봐왔을 것이다. 또한 WHERE 절로 ROWNUM 관련해서 가져왔는데도 아무 데이터가 안나.. 2019. 2. 18.
[ORACLE] 오라클_INSERT시 자동증분 MAX+1 적용하기(ft. NVL) NVL을 사용하여 INSERT 시 MAX+1하기 NVL함수를 사용하여 MAX+1을 하는 이유는 MAX해서 가져와야할 컬럼에 0이 처음에 들어있는 경우 에러가 발생하기 때문이다. NVL(MAX( [컬럼] ) , [치환할 값]) + 1 실제로 사용하게되면 아래와 같은 방식으로 사용된다 (*testSeq는 변수다.) INSERT INTO oracleStudy VALUES ( NVL( MAX(testSeq) , 0) + 1 , '학생1' , '오라클고등학교' ); INSERT INTO oracleStudy VALUES ( ( SELECT NVL( MAX(testSeq) , 0) + 1 FROM oracleStudy ) , '학생1' , '오라클고등학교' ); 물론 NVL 말고도 MAX+1을 처리하는 방법이야 많.. 2019. 2. 18.
[ORACLE] 오라클_NULL 값 일때 치환,처리 (ft. NVL , NVL2) ORACLE 에서는 값이 NULL일때 특정 값으로 치환할 수 있도록 도와주는 함수가 존재하는데 NVL 과 NVL2이다. 이는 오직 ORACLE에서만 제공해주는 함수이기 때문에 다른곳에서는 사용하지 않는다. NVL 과 NVL2에 대해 알아보자. NVL - NVL([컬럼], [치환할 값]) - 해당 컬럼이 NULL일 경우 치환할 값으로 변환시켜 준다. - 타입으로는 숫자, 문자, 날짜 모두 가능하다. -- comm 컬럼이 null일 경우 0으로 치환한다. SELECT salary, NVL(comm, 0) FROM emp; NVL2 - NVL2([컬럼], [NULL이 아닐경우], [NULL일 경우]) - NVL과 달리 매개변수가 하나 더 있는데 이는 컬럼이 NULL이 아닐때 역시 값을 정해둬 사용할 수 있다... 2019. 2. 18.
[DATABASE] 시퀀스(Sequence) 와 MAX +1 의 차이 시퀀스(Sequence) 와 MAX +1 의 차이 일련번호 같이 기본키를 잡을만한 컬럼의 고유번호를 지정할 때 자동증분을 많이 이용하고는 한다. 보통 시퀀스(Sequence) 또는 MAX + 1 을 사용할텐데, 현업에서는 아직도 MAX + 1을 사용하는 곳이 많다고 한다. 이 둘의 가장 큰 차이점은 무엇일까? 일단 하나 들어보자면 데이터 중복의 허용과 비허용을 말할 수 있다. 예를 들어보자. 한번에 10명의 사용자가 동시접속을 해서 게시글을 작성했다고 생각해보자. 그렇다면 총 10번의 INSERT가 진행될 것이다. 각각의 INSERT에 대해서 일련번호를 MAX + 1, Sequence.NEXTVAL을 사용했다 치면 각각의 값들은 이런식으로 나올 수 있다. 물론 무조건 그렇다는게 아니라 그럴수도 있다는 점.. 2019. 2. 18.
반응형
TOP