본문 바로가기
728x90
반응형

oracle12

[Oracle] SELECT 1 FROM 테이블명; SELECT 1 FROM 테이블명; SELECT 1 FROM 테이블명; select문에 사용하면 해당 테이블의 갯수만큼 1로 된 행 출력 테이블의 행의 수가 N개이면 1이 N행 반환됩니다. 1은 TRUE 의미 WHERE 조건문과 함께 사용하면 해당 조건을 만족할 때, 1을 반환 다중행 서브 쿼리문에서 WHERE 조건절에 (NET) EXISTS 안의 서브쿼리문에 사용됨 값의 존재 유무를 파악할 때 사용 SQL> select 1 from emp; 1 --- 1 1 1 1 4 rows selected. WHERE 조건문과 함께 쓰면 해당 조건을 만족하면 1 반환 SQL> select 1 from emp WHERE ename = 'SCOTT'; 1 --- 1 2021. 3. 18.
Equi Join /Non-Equi Join Equi Join 기존 테이블과 조인 테이블에서 공통 칼럼을 '='(equal) 비교하여, 같은 값을 가지는 행을 연결하고 결과를 생성하는 조인 방법입니다. 가장 많이 사용되는 조인 방법이라고도 합니다. 학생 테이블과 부서 테이블을 EQUI JOIN하여 이름, 학과 번호, 소속 학과 이름을 출력 학생 테이블과 학과 테이블, 교수 테이블을 JOIN 하여 학생의 이름과 학과이름, 지도교수 이름을 출력 => 세 개의 테이블을 조인하는 경우, 기준이 되는 테이블이 중요합니다. 여기서 기준이 되는 테이블은 학생 테이블이겠죠? 학생에 대한 모든 정보가 주된 목적이니까요! 세 개의 테이블을 어떻게 묶느냐에 따라 결과가 달라지기도 하니 기준을 잘 정해야합니다. 그 후 각각 테이블의 연결고리를 잘 확인합니다. STUDE.. 2021. 3. 16.
카티션 곱 / 카티시안 곱 / 카테시안 곱 /Cartesian product) Cartesian Product 카티션 곱 -설명 1 카티션 곱(cartesian product)은 엄밀히 말하면 조인이라고 할 수 없는 조인으로, WHERE 절에 조인 조건을 주지 않는 것을 말합니다. 두 테이블을 기준으로 FROM 절에는 두 개의 테이블을 명시하지만 WHERE 절에서 조인 조건을 주지 않습니다. (WHERE 절을 추가하지 않거나 WHERE 절을 추가해도 조인 조건을 주지 않는 경우). 그 결과 두 테이블의 데이터를 기준으로 가능한 모든 조합의 데이터가 조회됩니다. Cartesian Product -설명 2 Cartesian Product (카티시안 곱)은 발생가능한 모든 경우의 수의 행이 출력되는 것을 의미합니다. N 개의 행을 가진 테이블과 M 개의 행을 가진 테이블의 카티시안 곱은.. 2021. 3. 16.
[오라클] start with connect by prior order siblings by 오라클 쿼리를 짜다보면 계층적으로 정렬해야 될 때가 있다. 예를 들어 메뉴(navigation) 출력. 그럴때 유용하게 사용할 수 있는것이 start with connect by prior order siblings by 이다. order by 로 sort할 경우 모든 데이터를 가지고 정렬을 하지만 order siblings by 각 계층별로 정렬을 한다. 그냥 정렬하면 계층구조가 흐트러지기 때문에 계층구조는 그대로 유지하면서 동일 부모를 가진 자식들끼리의 정렬 기준을 주는 것이다. 예를 들어 아래와 같이 있다고 하면 start with a.parent_id='0' connect by prior a.menu_id=a.parent_id order by siblings by a.sort asc 이러면 부모컬.. 2021. 3. 16.
[Oracle] 오라클 계층형 쿼리(START WITH.. CONNECT BY) 계층형 쿼리란? 계층형 구조는 상하 수직관계의 트리형태의 구조로 이루어진 형태를 말합니다. 예를 들자면 특정회사의 부서, 특정학교의 학과등이 있습니다. 계층형 쿼리는 테이블에 저장된 데이터를 계층형 구조로 반환하는 쿼리를 말합니다. 오라클에서의 계층형 쿼리는 START WITH ... CONNECT BY 절로 생성할 수 있으며 계층형 정보를 표현하기 위한 목적으로 오라클 8부터 지원되었습니다. 수행순서 1. START WITH 절에 시작 조건을 찾습니다. 2. CONNECT BY 절에 연결조건을 찾습니다. 샘플데이터 생성 위와같은 구조를 이루도록 부서 테이블을 생성하도록 하겠습니다. CREATE TABLE DEP ( DEP_CD NUMBER NOT NULL, -- 부서코드 PARENT_CD NUMBER,.. 2021. 3. 16.
오라클 ORDER BY 1 2 3 개념 및 예제 오라클에서 ORDER BY 1, 2, 3 이런 내용을 본 적이 있었을 텐데 뭔 말인고 하면 테이블의 1,2,3번째 컬럼 기준으로 정렬하겠다는 말이다 즉 ORDER BY 1 DESC는 첫번째 열 기준으로 내림차순 정렬이라는 말이다 컬럼 번호를 이용해 정렬하는 방식은 겉보기에는 그럴싸하지만 컬럼 숫자만으로는 어느 컬럼을 지정한 건지 알아보기 어렵고 컬럼을 추가, 삭제하는 등 변경했을 경우 ORDER BY가 꼬일 수 있기 때문에 컬럼명을 기준으로 ORDER BY를 거는 것을 권장한다 마지막으로 예제에 사용한 코드는 아래와 같다 SELECT * FROM SCOTT.EMP ORDER BY 1, 2, 3 -- 1,2,3번째 컬럼 순으로 오름차순 정렬 -- ORDER BY EMPNO, ENAME, JOB과 동일 SE.. 2021. 3. 16.
[Oracle] 오라클 EXISTS, NOT EXISTS 사용법 정리 (IN, JOIN 비교) 오라클에서 EXISTS( ) 함수를 처음 접하면 조금 어려움 느낌이 들 수도 있다. EXISTS를 사용하지 않아도 비슷한 결과를 만들 수 있는 기능이 많기 때문에, EXISTS에 대해 자세히 익히지 않고 넘어가는 경우가 많다. EXISTS(서브 쿼리)는 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다. EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다. 아래의 샘플 테이블을 참고하여 예제 쿼리를 보면 쉽게 이해할 수 있을 것이다. SELECT a.empno , a.ename , a.deptno FROM emp a WHERE a.job = 'MANAGER' AND EXISTS (SELECT 1 FROM dept_history a.. 2021. 3. 16.
[Oracle] 조인 (JOIN), 아우터 조인(Outer Join) 조인 (JOIN) - JOIN은 각 테이블간에 공통된 걸럼(조건)으로 데이터를 합쳐 표현하는 것이다. - JOIN에는 크게 INNER JOIN, OUTER JOIN이 있다. ▶ 예제 테이블을 통해 이해해보자. TABLE 1) MEM : 회원테이블 (회원번호, 이름, 이메일, 부서번호) TABLE 2) DEPART : 부서테이블 (부서번호, 부서명) ▶ 1. SELECT FROM을 이용한 조인 1.1) 회원 테이블과 부서 테이블의 조인 => DEPART_ID가 공통 컬럼 => MEM테이블의 DEPART_ID와 DEPART테이블의 DEPART_ID를 연결하여 준다. ex) SELECT MEM.MEM_ID, MEM.NAME, MEM.DEPART_ID, DEPART.DEPART_NAME FROM MEM , DE.. 2021. 3. 16.
[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제/이름 변경 하는 방법(ALTER 테이블 ADD/MODIFY/DROP/RENAME) 1. 테이블 컬럼 추가하기(ALTER TABLE ADD) [문법] ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈)); ( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때 -> ALTER TABLE USER ADD(USER_NAME VARCHAR2(13)); 2. 테이블 컬럼 수정하기(ALTER TABLE MODIFY) [문법] ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈)); ( EX ) USER라는 테이블에 USER_AGE 라는 컬럼을 NUMBER(3) 타입으로 수정할 때 -> ALTER TABLE USER MODIFY(USER_AGE NUMBER(3)); 3. 테이블 컬럼 삭제하기(ALTER TABLE DR.. 2021. 3. 16.
728x90
반응형