본문 바로가기

전체 글

(93)
2-20) DCL DCL (Data Control Language)데이터 제어어로, 객체에 대한 권한을 부여(GRANT)하거나 회수(REVOKE)하는 기능테이블 소유자는 타계정에 테이블 조회 및 수정 권한 부여 및 회수 가능 권한일반적으로 본인(접속한 계정) 소유가 아닌 테이블은 원칙적으로 조회 불가 (권한 통제)업무적으로 필요 시 테이블 소유자가 아닌 계정에 테이블 조회, 수정 권한 부여 가능 권한 종류 1. 오브젝트 권한테이블에 대한 권한 제어예) 특정 테이블에 대한 SELECT, INSERT, UPDATE, DELETE, MERGE 권한테이블 소유자는 타계정에 소유 테이블에 대한 조회 및 수정 권한 부여 및 회수 가능 2. 시스템 권한시스템 작업 (테이블 생성 등)을 제어예) 테이블 생성 권한, 인덱스 삭제 권한관리..
2-19) DDL DDL (Data Definition Language)데이터 정의어데이터 구조 정의 (객체 생성, 삭제, 변경) 언어CREATE(객체 생성), ALTER(객체 변경), DROP(객체 삭제), TRUNCATE(데이터 삭제)AUTO COMMIT (명령어 수행 후 즉시 저장, 원복 불가) CREATE테이블, 인덱스와 같은 객체를 생성하는 명령어테이블 생성 시 테이블명, 컬럼명, 컬럼 순서, 컬럼 크기, 컬럼의 데이터 타입 정의 필수테이블 생성 시 각 컬럼의 제약 조건 및 기본 값은 생략 가능테이블 생성 시 소유자 명시 가능 (생략 시 명령어 수행 계정 소유)숫자 컬럼의 경우 컬럼 사이즈 생략 가능 (날짜 컬럼은 사이즈 명시 X) ** 문법 1소유자 명시는 테이블명 앞에 소유자명.테이블명 형태로 ** 문법 2 ..
2-18) TCL TCL (Transaction Control Language)트랜잭션 제어어 - COMMIT, ROLLBACKDML에 의해 조작된 결과를 작업 단위 (트랜잭션) 별로 제어하는 명령어DML 수행 후 트랜잭션을 정상 종료하지 않는 경우 LOCK 발생할 수 있음잠금 (LOCK)트랜잭션이 수행하는 동안 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한잠금이 걸린 데이터는 잠금을 실행한 트랜잭션 만이 접근 및 해제 가능 (관리자 권한 제외)  트랜잭션데이터베이스의 논리적 연산 단위 (하나의 연속적인 업무 단위)하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함분할할 수 없는 최소의 단위ALL OR NOTHING 개념 (모두 COMMIT 하거나 ROLLBACK 처리) 트랜잭션의 특성원자성 (Ato..
2-17) DML INSERT테이블에 행을 삽입할 때 사용한 번에 한 행만 입력 가능 (SQL Server : 여러 행 동시 입력 가능)하나의 컬럼에는 한 값만 삽입 가능컬럼별 테이터 타입과 사이즈에 맞게 삽입INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능작성하지 않은 컬럼은 NULL이 입력됨NOT NULL 칼럼의 경우 오류 발생전체 컬럼에 대한 데이터 입력 시 테이블명 뒤의 컬럼명 생략 가능 ** 문법  예1) 여러 행 INSERT문자 컬럼에 숫자값 입력 가능 (권장 X)숫자 컬럼에 '001'처럼 숫자처럼 생긴 문자값 입력 가능 (권장 X) 예2) 서브쿼리를 사용한 여러 행 INSERT 예3) INSERT 시 컬럼 명시 생략으로 인한 오류INSERT할 컬럼명 명시하지 않으면 모든 컬럼 INSERT 시도 → 입력된..
2-16) 정규 표현식 정규 표현식문자열의 공통된 규칙을 보다 일반화하여 표현하는 방법정규 표현식 사용 가능한 문자함수 제공 (REGEXP_REPLACE, REGEXP_SUBSTR, REGEXP_INSTR,...)예) 숫자를 포함하는, 숫자로 시작하는 4자리, 두 번째 자리가 A인 5글자 등 표현 예) 일반화 규칙 찾아내기'숫자를 연속적으로 3개 이상 포함하는' 이라는 공통 패턴을 발견하여 표현할 수 있음 정규 표현식 종류[]는 안에 어떤 것이 들어가든 한 글자를 나타냄^a는 원래 'a로 시작하는'[^a] 로 [] 안에 들어가면 a를 제외한 모든 문자를 나타냄a{2} : aa 예) 전화번호의 일반화전화번호는 숫자와 -로 구성 : [0-9-]+ → (0-9- : 숫자 or -) (+ : 1개 이상)tel 값은 동시에 있고 )가 ..
2-15) PIVOT과 UNPIVOT 데이터의 구조 1. LONG DATA (Tidy data)하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조RDBMS의 테이블 설계 방식다른 테이블과의 조인 연산이 가능한 구조 2. WIDE DATA (Cross table)행과 컬럼에 유의미한 정보 전달을 목적으로 작성하는 교차표하나의 속성값이 여러 컬럼으로 분리되어 표현RDBMS에서 WIDE 형식으로 테이블 설계 시 값이 추가될 때마다 컬럼이 추가돼야 하므로 비효율적!다른 테이블과의 조인 연산이 불가함주로 데이터를 요약할 목적으로 사용하나의 관찰대상 (속성)을 한 컬럼으로 정의하지 않고 값의 종류별로 컬럼을 분리 PIVOT교차표를 만드는 기능LONG 데이터를 WIDE 데이터로STACK 컬럼, UNSTACK 컬럼, VALUE 컬럼의 ..
2-14) 계층형 질의 계층형 질의하나의 테이블 내 각 행끼리 관계를 가질 때, 연결고리를 통해 행과 행 사이의 계층 (depth)을 표현하는 기법예) DEPT2에서의 부서별 상하관계PRIOR의 위치에 따라 연결하는 데이터가 달라짐 ** 문법START WITH : 데이터를 출력할 시작 지정하는 조건CONNECT BY PRIOR : 행을 이어나갈 조건NOCYCLE : 순환이 발생하면 무한 루프가 될 수 있기 때문에 이를 방지하고자 사용 예1) DEPT2 테이블에 대해 각 부서의 레벨을 출력 (최상위 부서가 1 레벨) 잘못된 예) PRIOR 잘못 지정 시 아무것도 출력되지 않음! 예2) 계층형 질의 조건 전달 CASE1) CONNECT BY 절에 전달 : 연결 조건이 추가되었으므로 모든 조건이 만족할 경우만 하위 레벨로 연결됨 C..
2-13) TOP N QUERY TOP N QUERY페이징 처리를 효과적으로 수행하기 위해 사용전체 결과에서 특정 N개 추출예) 성적 상위자 3명 TOP-N 행 추출 방법ROWNUMRANKFETCHTOP N (SQL Server) ROWNUM출력된 데이터 기준으로 행 번호 부여절대적인 행 번호가 아닌 가상의 번호이므로 특정 행을 지정할 수 없음 (= 연산 불가)첫번째 행이 증가한 이후 할당되무로 '>' 연산 사용 불가 (>0은 가능 → 전체 출력) 예1) ROWNUM을 사용한 출력 형태  예2) ROWNUM 잘못된 사용 1> 조건 전달 불가> 0은 모든 행에 해당하므로 가능 예3) ROWNUM 잘못된 사용 2항상 불변하는 절대적인 번호가 아니므로 '=' 연산자 단독 전달 불가 예4) ROWNUM 올바른 사용EQAUL 비교 시 작다(정렬..