[ SQLD ] DDL, DCL, DML
·
IT_STUDY/SQLD
DDL(데이터 정의 언어 : Data Definition Language)⭐ ⭐ ⭐ - 테이블이나 관계의 구조를 생성하는데 사용하며 CREATE, ALTER, DROP, TRUNCATE 문 등이 있다. CREATE - 새로운 데이터베이스 관계 (테이블) VIEW, 인덱스, 저장 프로시저 만들기 DROP - 이미 존재하는 데이터베이스 관계 (테이블), VIEW, 인덱스, 저장 프로시저를 삭제한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할을 한다. TRUNCATE - drop & create - 테이블 내부 구조는 남아 있으나 데이터가 모두 삭제 되된다. ROLLBACK - 변경할 데이터를 변경하기 이전 상태로 되돌리는 역할을 한다. ROLLBACK [WORK] [TO..
[ SQLD ] 조건문(DECODE,CASE),집계함수,GROUP,JOIN,서브쿼리
·
IT_STUDY/SQLD
조건문⭐ DECODE - SQL의 DECODE 함수는 프로그래밍 언어에서 if문과 비슷하다. DECODE(A,B,'1',null) A가 B일 경우 '1', 아닐 경우 null(생략가능) DECODE(A,B,'1','2') A가 B일 경우 '1', 아닐 경우 '2' DECODE(A,B,'1',C,'2','3') A가 B일 경우 '1', A가 C일 경우 '2', 둘 다 아닐 경우 '3' DECODE(A,B,DECODE(C,D,'1',null)) A가 B일 경우, C가 D를 만족하면 '1', C가 D를 만족하지 않으면 null(생략가능) DECODE(A,B,DECODE(C,D,'1','2')) A가 B일 경우, C가 D를 만족하면 '1', C가 D를 만족하지 않으면 '2' CASE ~ WHEN ~ THEN C..
[ SQLD ] NULL, 정렬, 숫자함수, 문자함수, 날짜함수
·
IT_STUDY/SQLD
NULL의 정의⭐ ⭐ ⭐ - 모르는 값, 정의되지 않은 값 ( 공백이나 0과는 다르다.) - 산술 연산에서 null이 들어가게 되면 모든 값은 null이다. ex) null + 2, null * 10, null + null 모두 결과는 null이다. - 조건걸에 null이 들어가게되몀ㄴ false를 반환하게 된다. ex) null = null , null = 2 모두 false - 집계함수(sum, count, min, max..)에서 null은 데이터 대상에서 제외된다. - 정렬시에는 오라클에서는 가장 큰 것이되고, SQL Server에서는 가장 작은 값이 된다. Nvl(col,0) col이 null이면 0 반환, 아니면 col 반환 Nvl2(col,1,0) col이 null이면 0 반환, 아니면 1 ..
[ SQLD ] ESCAPE / ROWNUM / TOP()
·
IT_STUDY/SQLD
ESCAPE (LIKE 연산) - LIKE 연산으로 '%'나 '_' 가 포함된 문자를 검색하고자 할 때 사용된다. - '%', '_' 앞에 ESCAPE로 특수문자를 지정하면 검색할 수 있다. - 특수문자는 아무거나 상관없이 사용 가능하다. - 일반적으로 LIKE 구문을 사용하는 것 처럼 사용한다. select pname from emp where pname like '%_%'; -- 김_하나, 박%둘, 삼, 사 select pname from emp where pname like '%%%'; -- 김_하나, 박%둘, 삼, 사 '%' 나 '_'가 포함된 문자열만 검색하고자 했는데 인식을 하지 못하는 상황이 발생한다. 이럴 때 사용하는 것이 ESCAPE 구문이다. select pname from emp wh..
[ SQLD ] SQL 연산 / Alias / CONCAT / IN / LIKE / NOT
·
IT_STUDY/SQLD
SQL 연산 순서 FROM WHERE GROUP BY HAVING SELECT ORDER BY select 컬럼명 --> 전체 열 중 원하는 열만 선택 (열 제어) from 테이블명 where 조건식; --> 전체 행 중 원하는 행만 선택 (행 제어) DML (데이터 조작어 : Data Manipulation Language) - Select(조회) : 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것이다. - Insert(삽입), Update(수정), Delete(삭제) : 데이터베이스의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어 DDL (데이터 정의어 : Data Definition Language) - Create(생성), Alter(변경), Drop(삭제),..
[ SQLD ] 데이터 모델과 성능 (2)
·
IT_STUDY/SQLD
로우 체이닝 - 로우의 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태 로우 마이그레이션 - 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식 - 로우 체이닝과 로우 마이그레이션이 발생하여 많은 블록에 데이터가 저장되면 DB 메모리에서 디스크 I/O가 발생할 때 많은 I/O가 발생하여 성능 저하 발생 트랜잭션을 분석하여 적절하게 1:1 관계로 분리함으로써 성능 향상이 가능하도록 해야 한다. PK에 의해 테이블을 분할하는 방법 (파티셔닝) RANGE PARTITION : 대상 테이블이 날짜 또는 숫자값으로 분리가 가능하고 각 영역별로 트랜잭션이 분리..
[ SQLD ] 데이터 모델과 성능 (1)
·
IT_STUDY/SQLD
성능 데이터 모델링 - DB 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 등 여러가지 성능과 관련된 상향이 데이터 모델링에 반영될 수 있도록 하는 것 - 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무 비용을 최소화 할 수 있음 - 데이터의 증가가 빠를수록 성능 저하에 따른 성능 개선 비용은 기하급수적으로 증가하게 된다. 성능 데이터 모델링 고려사항 순서 데이터 모델링을 할 때 정규화를 정확하게 수행 DB 용량산정을 수행한다. DB에 발생되는 트랜잭션의 유형을 파악한다. 용량과 트랜잭션의 유형에 따라 반정규화를 수행 이력 모델의 조정, PK/FK조정, 슈퍼/서브타입 조..