본문 바로가기

데이터베이스

(6)
계층적 질의문 21. 03. 12. 계층적 질의문 - 관계형 데이터 베이스에서 데이터간의 부모 관계를 표현할 수 있는 칼럼을 지정하여 계층적인 관계를 표현 - 하나의 테이블에서 계층적인 구조를 표현하는 관계를 순환관계(recursive relationship) - 계층적인 데이터를 저장한 칼럼으로부터 데이터를 검색하여 계층적으로 출력 기능 제공 -- 계층적 질의문을 사용하여 부서테이블에서 학과, 학부, 단과대학을 검색하여 단대,학부학과순으로 top-down 형식의 계층구조로 출력하여라. 단, 시작데이터는 10번부서이다. SELECT DEPTNO, DNAME, COLLEGE FROM DEPARTMENT START WITH DEPTNO = 10 CONNECT BY PRIOR DEPTNO = COLLEGE; -- 레벨별 구분. HR의 EMPLO..
무결성 제약조건 이어서, 인덱스, 뷰, 사용자 권한 제어 21. 03. 12. 참조 무결성 제약조건 - 한 테이블의 칼럼 값이 자신 · 다른 테이블의 칼럼 값 중에 하나와 일치시키기 위한 제약조건 자식 테이블 : 다른 테이블의 칼럼 값을 참조하는 테이블 부모 테이블 : 다른 테이블에 의해 참조되는 테이블 (부모- 교수 테이블, 자식- 학생 테이블) 외래 키 : 부모 테이블의 칼럼 값을 참조하는 자식 테이블의 칼럼 (자식 테이블의 DEPTNO) 참조 키 : 자식 테이블에서 참조하는 부모 테이블의 칼럼 CHECK 무결성 제약조건 - 칼럼에서 허용 가능한 데이터의 범위나 조건을 지정 - 데이터 입력이나 수정 시 실수로 부정확한 값을 입력 예방 - 하나의 컬럼에 여러 개의 CHECK 무결성 제약조건을 지정 가능 무결성 제약조건 생성 방법 - 테이블 생성과 동시에 정의 - 테이블을 생성한 ..
21. 03. 11. 다중 행 입력 - PIVOTING INSERT - OLTP(OnLine Transaction Processing) 업무에서 사용되는 데이터를 데이터웨어하우스 업무에서 사용되는 분석용 데이터로 변환하는 경우에 유용 - 하나의 행을 여러 개의 행으로 나누어서 입력하는 기능 - Unconditional INSERT ALL 명령문과 거의 동일 - INTO 절에서 하나의 테이블만 지정 => 통계 분석 -- 예제를 위한 테이블 생성 CREATE TABLE SALES( SALES_NO NUMBER(4), WEEK_NO NUMBER(2), SALES_MON NUMBER(7,2), SALES_TUE NUMBER(7,2), SALES_WED NUMBER(7,2), SALES_THU NUMBER(7,2), SALES_FRI..
SELF JOIN, 서브쿼리 21. 03. 10. -- 교수 중에서 담당 학생이 없는 교수 목록, 교수 번호, 교수 이름 SELECT DISTINCT P.PROFNO, P.NAME FROM PROFESSOR P LEFT JOIN STUDENT S ON P.PROFNO = S.PROFNO WHERE S.PROFNO IS NULL; SELF JOIN - 하나의 테이블 내에 있는 칼럼끼리 연결하는 조인이 필요한 경우 사용 - 조인 대상 테이블이 자신 하나라는 것 외에는 EQUI JOIN과 동일 • WHERE 절을 사용한 SELF JOIN - 한 테이블에서 두 개의 칼럼을 연결하여 EQUI JOIN - FROM 절에서 하나의 테이블에 테이블 별명 지정 • JOIN~ ON 절을 사용한 SELF JOIN -- 부서 테이블에서 SELF JOIN을 이용하여 부서 이름..
21. 03. 09. 문자 조작 함수 이어서, 여러 함수들, GROUP BY, HAVING, JOIN 문자조작 함수 INSTR 함수 - 자바 indexof같이 문자열중에서 사용자가 지정한 특정 문자가 포함된 위치를 반환하는 함수 SELECT 'CORPORATE FLOOR', INSTR('CORPORATE FLOOR', 'OR'), INSTR('CORPORATE FLOOR', 'OR', 3, 2), INSTR('CORPORATE FLOOR', 'OR', -3, 2) FROM DUAL; -- 부서 테이블의 부서 이름 갈럼에서 '과' 글자의 위치를 출력. SELECT DNAME, INSTR(DNAME, '과') FROM DEPARTMENT; 문자조작함수 LPAD, RPAD 함수 - 문자열이 일정한 크기가 되도록 왼쪽 또는 오른쪽에 지정할 문자를 삽입하는 함수 -- 교수테이블에서 직급칼럼의 왼쪽에 *문자를 삽입..
21. 03. 08 데이터 타입, ROWNUM, 문자 조작 함수 101상수값, CHAR, VARCHAR2 비교 NUMBER 데이터타입 DATE 데이터타입 -- TO_CHAR(): 날짜(일반적으로 많이 사용) > 문자타입 -- TO_DATE(): 문자열 > 날짜타입 -- SYSDATE 함수 사용 가능 SELECT SYSDATE, SYSDATE - 1, SYSDATE + 1 FROM DUAL; SELECT TO_DATE('21/12/15', 'YY/MM/DD') - SYSDATE FROM DUAL; LOB 데이터타입 [참조]Oracle ROWID -- RBO : 규칙기반 옵티마이저, CBO : 비용기반 옵티마이저(성능 올라감) ROWNUM Query에 의해 추출된 각 행에 부여된 일련번호 쿼리에서 추출되는 결과 행들에 1부터 시작하는 순차 값을 할당 임의의 순서로 추출된..