본문 바로가기

전체 글52

15.계층형쿼리 /* 노드 : 계층형쿼리를 이루고 있는 항목 루트노트 : 계층형 트리구조의 최상위 노드 리프노드 : 하위노드가 없는 항목 부모노드 : 트리구조의 상위에 있는 노드 자식노드 : 트리구조의 하위에 있는 노드 레벨 : 루트노드의 레벨을 1로 시작하여 자식레벨로 넘어갈수록 1씩 증가한다 - 상위코드와 하위코드를 이용하여 TREE형태로 조회 ex) 회사 조직도, 메뉴 0. LEVEL : 계층형 구조의 DEPTH(깊이)를 반환 1. 계층형 쿼리의 정렬 ODER SIBLINGS BY 컬럼명 - 계층형 쿼리가 깨지지 않고 정렬 2. 최상위 노드 반환 CONNECT_BY_ROOT 컬럼명 3. 최하위 노드이면 1, 아니면 0 CONNECT_BY_ISLEAF 4. 계층형 쿼리에서 루트노드로 시작해 자신의 행까지 연결된 경로.. 2023. 5. 7.
14.서브쿼리 /* - 하나의 SQL문 안에 포함된 또다른 SQL문을 뜻함 - 메인 쿼리(기존쿼리)를 보조하는 역할을 하는 쿼리문 */ -- 노옹철 사원과 같은 부서원들을 조회 SELECT emp_name, dept_code FROM emp WHERE emp_name='노옹철'; -- 서브쿼리 괄호로 묶어 준다 -- 비교값과 결과 타입 일치해야함 -- 서브쿼리는 서브쿼리를 수행한 결과값의 행과 열의 개수에 따라 분류 -- 1) 단일행 서브쿼리 : 서브쿼리의 조회 결과 값의 행과 열의 개수가 1개 -- (비교연산자 사용가능 =, !=, , ^=, >, =, WHERE절에서 조건을 만족할 경우 TRUE(결과집합에 포함 시킴) - 여러개의 결과값 중 하나라도 일치하면 TRUE를 리턴 ANY : 여러개의 결과?값들 중 한개라.. 2023. 5. 6.
13.JOIN -- 테이블 이름 변경 RENAME DEPARTMENT TO DEPT; /* - 두 개 이상의 테이블에서 데이터를 조회하고자 할 때 사용하는 구문 - 조건을 주지 않으면 카티전 곱 발생 -> 행 * 행 *카티전 곱 : 집합 A의 원소 a와 집합 B의 원소 b를 순서대로 벌여 놓고 괄호로 묶은 순서쌍 (a, b) 전체의 집합* 1)등가조인(EQUAL JOIN) or 내부조인(INNER JOIN) - 연결시키는 칼럼의 값이 일치하는 행들만 조인돼서 조회함 (일치하는 값이 없는 행은 조회X) (1)오라클 전용 구문 SELECT 컬럼, 컬럼 ... FROM 테이블1, 테이블2 WHERE 테이블1.컬럼명 = 테이블2.컬럼명; - FROM절에 조회하고자 하는 컬럼들을 ,(콤마)로 구분하여 나열 - WHERE절에 매.. 2023. 5. 5.
12.기본키,외래키 /* - 데이터의 무결성을 지키기 위해 입력값을 제한 NOT NULL : NULL 입력 제한 UNIQUE : 중복되지 않는 값 DEFAULT : DEFAULT 값을 부여 CHECK : 체크로직에 만족하는 값 PRIMARY KEY : 기본키(NOT NULL + UNIQUE) FOREIGN KEY : 외래키(두 테이블의 연관관계에 따라 데이터 입력 또는 삭제시 제한을 받는다) - 테이블에서 한 행(튜플)의 정보를 식별하기 위해 사용할 컬럼에 부여하는 제약조건 - 각 행들을 구분할 수 있는 식별자 역할을 함(사번, 부서코드, 직급코드 등) - 기본 키 제약조건을 설정하게 되면 자동으로 해당 컬럼에 NOT NULL + UNIQUE 제약조건이 설정됨 - 한 테이블에 한개만 설정 가능 (단, 한 개 이상의 컬럼을 .. 2023. 5. 4.