본문 바로가기

반응형

분류 전체보기

(121)
[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이 결정되기 ..
[SQLD] 윈도우 함수 윈도우 함수서로 다른 행의 비교나 연산을 위해 만든 함수GROUP BY를 쓰지 않고 그룹 연산 가능LAG, LEAD, SUM, AVG, MIN, MAX, COUNT, RANGPARTITION BY절출력 할 총 데이터 수 변화 없이 그룹연산을 수행할 GROUP BY 컬럼ORDER BY절RANK의 경우 필수정렬 컬럼 및 정렬 순서에 따라 순위 변화SUM, AVG, MIN, MAX, COUNT 등은 누적값 출력 시 사용ROWS|RANGE BETWEEN A AND B연산 범위 설정ORDER BY절 필수 PARTITION BY, ORDER BY, ROWS ... 절 전달 순서 중요!(ORDER BY를 PARTITION BY 전에 사용 불가) 윈도우 함수가 필요한 이유 (그룹 함수의 오류)전체를 출력하는 컬럼과 그..
[SQLD] 그룹 함수 그룹 함수숫자함수 중 여러 값을 전달하여 하나의 요약값을 출력하는 다중행 함수수학/통계 함수 (기술통계 함수) 들을 의미GROUP BY절에 의해 그룹별 연산 관계를 리턴반드시 한 컬럼만 전달NULL은 무시하고 연산 COUNT행의 수를 세는 함수대상 컬럼은 * 또는 단 하나의 컬럼만 전달 가능* 사용 시 모든 컬럼의 값이 NULL일 때만 COUNT 제외문자, 숫자, 날짜 컬럼 모두 전달 가능행의 수를 세는 경우 NOT NULL 컬럼을 찾아 세는 것이 좋음 (PK 컬럼)SUM총 합 출력숫자 컬럼만 전달 가능AVG평균 출력숫자 컬럼만 전달 가능NULL을 제외한 대상의 평균을 리턴하므로 전체 대상 평균 연산 시 주의MIN / MAX최소(MIN) / 최대(MAX) 값 출력날짜, 숫자, 문자 모두 가능오름차순 순서..

반응형