본문 바로가기

SQLD12

[SQL] 기본 명령어 데이터베이스 만들기 CREATE DATABASE [데이터베이스 이름]; 데이터베이스 목록보기 SHOW DATABASES; 데이터베이스 사용하기 USE [데이터베이스 이름]; 테이블 만들기 CREATE TABLE [테이블 이름] ( [컬럼 이름] [데이터 타입], [컬럼 이름] [데이터 타입], ... ); CREATE TABLE 아이돌 ( 이름 VARCHAR(20), 나이 INT, 소속 VARCHAR(50) ); 테이블 이름 변경하기 ALTER TABLE [테이블 이름] RENAME [새로운 테이블 이름]; 새로운 컬럼 추가하기 ALTER TABLE [테이블 이름] ADD COLUMN [컬럼 이름] [데이터 타입]; 기존 컬럼 타입 변경하기 ALTER TABLE [테이블 이름] MODIFY COLUMN .. 2023. 9. 1.
[SQLD] 옵티마이저 INDEX SQL 실행계획을 수립하고 SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어 같은 SQL문이더라도 어떻게 실행하냐에 따라 성능이 달라짐 (소요시간, 자원 사용량 등) SQL문 작성 > Parsing > 옵티마이저 > 실행계획 > SQL실행 비용기반 옵티마이저 ㄴ 시스템 통계와 오브젝트 통계를 통해 해당 SQL문 실행에 대한 총 비용을 계산 ㄴ 총 비용이 가장 적은 쪽으로 실행 계획을 수립 규칙기반 옵티마이저 ㄴ 15가지 우선순위를 기준으로 실행계획을 수립 INDEX 데이터의 색인(목차), 원하는 데이터를 빠르게 조회 할 수 있음 인덱스는 인덱스 키를 기준으로 정렬되어 있어 탐색이 빨라진다 하나의 테이블에 여러 개의 인덱스를 생성할 수 있고, 하나의 인덱스는 여러 컬럼으로 구성될 수 있음 Index .. 2023. 3. 18.
[SQLD] WINDOW 함수, 테이블 파티션 구간 안에서의 순위를 매기고자 할 때 사용 기본 구조 SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ([PARTITION BY 컬럼명][ORDER BY 컬럼명][WINDOWING]) FROM 테이블명 //사용예시 : SELECT DENSE_RANK () OVER (PARTITION BY 지역명 ORDER BY 판매량 DESC) AS 판매순위 WINDOW_FUNCTION : 윈도우 함수 ARGUMENTS : 인수 (컬럼명 등 함수의 작업이 이루어지는 대상) PARTITION BY : 테이블의 레코드들을 쪼개는 기준 ORDER BY : 쪼개진 레코드 내에서 혹은 전체 테이블에서 레코드들을 어떤 기준으로 정렬할지 WINDOWING : 함수의 연산 대상이 되는 레코드의 범위를 정함 Wi.. 2023. 3. 17.
[SQLD] GROUP, JOIN 함수 GROUP 함수 GROUP BY GROUP BY ROLLUP GROUP BY CUBE GROUP BY GROUPING SETS ROLLUP CUBE GROUPING SETS - 부분 합계, 전체 합계 값을 보여줌 - 인수의 순서에 영향 받음 (첫번째 인자 기준으로 합계 보여줌) - 그룹화될 수 있는 모든 경우에 대해 생성 - 괄호 묶은 집합별 집계 가능 - CUBE와 동일하게 집계 해줄 수 있음 GROUPING : 집계 표시면 1, 아니면 0 그룹함수에 의해 집계된 결과에서 집계 대상이 아닌 GROUP 대상 컬럼 값은 NULL로 출력된다. ROLLUP, CUBE, GROUPING SETS 모두 일반 그룹 함수로 동일한 결과를 추출할 수 있다. ROLLUP은 함수 내 인자의 순서에 따라 다른 결과를 반환하.. 2023. 3. 16.
[SQLD] DML 데이터 조회 SELECT(3) - NULL 관련 함수 SELECT문 기본 구조 - NULL 관련 함수 SELECT 컬럼명 등 FROM 테이블명 WHERE 조건문 NVL(col1, 대체값) NULL이면 다른 값으로 바꿔주는 함수 NVL2(col1, 결과1, 결과2) col1이 NULL이면 결과2, 아닌경우 결과1 출력 NULLIF(v1, v2) v1 == v2 이면 NULL v1 != v2 면 v1을 출력 COALESCE(v1, v2, v3... vn) NULL이 아닌 최초의 값을 반환 SELECT 컬럼명 등 FROM 테이블명 GROUP BY 집계기준컬럼명 HAVING grouping된 후 상태 기반의 조건문 ROWID 해당 데이터가 어떤 데이터 파일 상에서 어느 블록에 저장되었는지 알려줌 데이터 베이스에 저장되어 있는 데이터를 구분할 수 있는 유일한 값 데.. 2023. 3. 15.
[SQLD] DML 데이터 조회 SELECT(2) - WHERE SELECT문 기본 구조 - WHERE 조건문 SELECT FROM WHERE IN (x,y,z...) x, y, z 등으로 구성된 목록 내 값 중 어느 하나라도 일치하면 됨 NOT IN (x,y,z...) x, y, z 등으로 구성된 목록 내 값 중 어느 하나라도 일치하면 안됨 IS NULL NULL인지 판단, NULL인 경우 TRUE IS NOT NULL NULL이 아닌지 판단, NULL이 아닐 경우 TRUE BETWEEN a AND b a ,b 사이에 값이 있는지 기타 비교연산자 (=, >, >=, 2023. 3. 14.