본문 바로가기

반응형

[DB]DataBase/[SQL]

(37)
[SQLD] DCL DCLDCL(Data Control Language)데이터 제어어로, 객체에 대한 권한을 부여(GRANT)하거나 회수(REVOKE)하는 기능테이블 소유자는 타계정에 테이블 조회 및 수정 권한 부여 및 회수 가능 권한일반적으로 본인(접속한 계정) 소유가 아닌 테이블은 원칙적으로 조회 불가권한 통제업무적으로 필요 시 테이블 소유자가 아닌 계정에 테이블 조회, 수정 권한 부여 가능권한 종류1) 오브젝트 권한테이블에 대한 권한 제어예) 특정 테이블에 대한 SELECT, INSERT, UPDATE, DELETE, MERGE 권한테이블 소유자는 타계정 소유 테이블에 대한 조회 및 수정 권한 부여 및 회수 가능2) 시스템 권한시스템 권한을 제어예) 테이블 생성 권한, 인덱스 삭제 권한관리자 권한만 권한 부여 및 회수..
[SQLD] DDL DDLDDL(Data Definition Language)데이터 정의어데이터 구조를 정의 (객체 생성, 삭제, 변경) 하는 언어CREATE(객체 생성), ALTER(객체 변경), DROP(객체 삭제), TRUNCATE(데이터 삭제)AUTO COMMIT (명령어를 수행하면 즉시 저장하고, 원복 불가)CREATE테이블이나 인덱스와 같은 객체를 생성하는 명령어테이블 생성 시 테이블명, 컬럼명, 컬럼 순서, 컬럼 크기, 컬럼의 데이터 타입 정의테이블 생성 시 각 컬럼의 제약조건 및 기본 값은 생략 가능테이블 생성 시 소유자 명시 가능생략 시 명령어 수행 계정 소유숫자 컬럼의 경우 컬럼 사이즈 생략 가능날짜 컬럼은 사이즈 명시 X복제 테이블의 컬럼명과 컬럼의 데이터 타입이 복제됨.SELECT문에서 컬럼 별칭 사용..
[SQLD] TCL TCLTCL(Transaction Control Language)트랜잭션 제어어로, COMMIT, ROLLBACK이 포함DML에 의해 조작된 결과를 작업 단위(트랜잭션) 별로 제어하는 명령어DML 수행 후 트랜잭션을 정상 종료하지 않는 경우 LOCK이 발생할 수 있음 잠금(LOCK)트랜잭션이 수행하는 동안 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한잠금이 걸린 데이터는 잠금을 실행한 트랜잭션만 접근 및 해제 가능관리자 권한 계정 제외트랜잭션(Transaction)트랜잭션은 데이터베이스의 논리적 연산 단위하나의 연속적인 업무 단위하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함 됨분할 할 수 없는 최소의 단위ALL OR NOTHING 개념모두 COMMIT 하거나 ROLLBACK 처..
[SQLD] DML DMLDML(Data Manipulation Language)데이터의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE), 병합(MERGE)반드시 저장(commit) 혹은 취소(rollback) 필요INSERT테이블에 행을 삽입할 때 사용한 번에 한 행만 입력 가능SQL Server: 여러 행 동시 삽입 가능하나의 컬럼에는 한 값만 삽입 가능컬럼별 데이터 타입과 사이즈에 맞게 삽입문자 컬럼에 숫자값 입력이 가능하나, 권장하지 않음.숫자 컬럼에 문자값 ('001') 입력이 가능하나, 권장하지 않음.INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능작성하지 않은 컬럼은 NULL이 입력됨작성하지 않은 컬럼의 데이터 타입이 NOT NULL인 경우는 오류 발생전체 컬럼에 대한 데이터 입력 시 테이블..
[SQLD] 정규 표현식 정규 표현식문자열의 공통된 규칙을 보다 일반화 하여 표현하는 방법정규 표현식 사용 가능한 문자함수 제공regexp_replace, regexp_substr, regexp_instr, ...예) '숫자를 포함하는', '숫자로 시작하는 4자리', '두 번째 자리가 A인 5글자'일반화 규칙 찾아내기-> '숫자를 연속적으로 3개 이상 포함하는' 공통 패턴 정규 표현식 종류예제 문자함수REGEXP_REPLACE정규 표현식을 사용한 문자열 치환 가능REGEXP_REPLACE(대상, 찾을문자열, [바꿀문자열], [검색위치], [발견횟수], [옵션]) 특징바꿀 문자열 생략 시 문자열 삭제검색 위치 생략 시 1발견 횟수 생략 시 0 (all)옵션c대소를 구분하여 검색i대소를 구분하지 않고 검색m패턴을 다중 라인으로 선언..
[SQLD] PIVOT 절과 UNPIVOT 절 PIVOT과 UNPIVOT데이터의 구조를 변경(회전)하는 기능PIVOT은 행을 열로 회전, UNPIVOT은 열을 행으로 회전시킴.데이터의 구조1) LONG DATA(Tldy data)하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조RDBMS의 테이블 설계 방식다른 테이블과의 조인 연산이 가능한 구조2) WIDE DATA(Cross table)행과 컬럼에 유의미한 정보 전달을 목적으로 작성하는 교차표하나의 속성값이 여러 컬럼으로 분리되어 표현RDBMS에서 WIDE 형식으로 테이블 설계 시 값이 추가될 때마다 컬럼이 추가되어야 함다른 테이블과의 조인 연산이 불가함주로 데이터를 요약할 목적으로 사용컬럼의 정보는 부서 번호로, 하나의 관찰 대상(속성)을 한 컬럼으로 정의하지 않고 값의 종류..
[SQLD] 계층형 질의와 셀프 조인 계층형 질의테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의(Hierarchical Query)를 사용한다.계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다.예를 들어, 사원 테이블에서는 사원들 사이에 상위 사원(관리자)과 하위 사원 관계가 존재하고 조직 테이블에서는 조직들 사이에 상위 조직과 하위 조직 관계가 존재한다.하나의 테이블 내에 각 행끼리 관계를 가질 때, 연결고리를 통해 행과 행 사이의 계층(depth)을 표현하는 기법예) DEPT2에서의 부서별 상하 관계PRIOR 위치에 따라 연결하는 데이터가 달라짐START WITH 절데이터 출력 시작 조건을 지정계층 구조 전개의 시작 위치를 지정하는 구문즉 루트 데이터를 지정한다. (액세스)..
[SQLD] Top N 쿼리 TOP N QUERY페이징 처리를 효과적으로 수행하기 위해 사용전체 결과에서 특정 N개 추출예) 성적 상위자 3명 TOP-N 행 추출 방법ROWNUMRANKFETCHROWNUM출력 된 데이터 기준으로 행 번호 부여절대적인 행 번호가 아닌 가상의 번호이므로 특정 행을 지정할 수 없고, 연산이 불가능함첫 번째 행이 증가한 이후 할당되므로 '>' 연산 사용 불가 (0은 가능)크다 조건 전달 불가능항상 불변하는 절대적인 번호가 아니므로 '=' 연산자 단독 전달 불가능WHERE절에 의해 먼저 5개 추출 후 결과 집합에 대해 정렬 수행하므로 상위 5명 출력 안됨-> 해결 방법서브쿼리를 사용하여 (Inline view: 인라인 뷰) SAL에 대해 내림차순 정렬을 한 뒤 상위 5개를 가져옴.즉 ROWNUM이 결정되기 ..

반응형