- NVL(값1, 값2), ISNULL(값1, 값2) : 값1이 NULL이면 값2로 변경해서 리턴
- NVL2(값1, 값2, 값3) : 값1이 NULL이면 값3, NULL이 아니면 값2 리턴
- NULLIF(값1, 값2) : 값1과 값2가 같으면 NULL, 다르면 값1 리턴
- COALESE(값1, 값2, 값3...) : NULL 아닌 첫번째 값을 리턴 (ex. 값1=null, 값2=null, 값3='apple', 값4='banana'면 null이 아닌 첫번째 값인 apple 리턴
- SELECT DISTINCT JOB_ID FROM EMP; : 해당 컬럼의 중복 데이터를 제거하여 출력
- SIGN(양수)=1, SIGN(음수)=-1, SIGN(0)=0
- SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '검색패턴' ESCAPE '이스케이프문자'; (ex: SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%!%%' ESCAPE '!';)
- CHAR 타입 : 길이 고정 (빈 칸은 공백으로 채움), VARCHAR : 고정 X. “SQL”이 VARCHAR(5)인 경우 “SQL”, CHAR(5)인 경우 “SQL “. TRIM한 경우 동일 값 됨
- TRUNC(소수, 소수점 자릿수) : 지정된 자릿수까지 버림
- ROUND(소수, 소수점 자릿수) : 지정된 자릿수까지 반올림
- AND가 OR보다 우선순위 높음
- ROLLUP, CUBE : 집계 함수. ROLLUP(A, B, C) = (A, B, C) 그룹핑, (A, B) 그룹핑, (A) 그룹핑, 전체 합계 // CUBE = 가능한 모든 그룹핑 전부 수행, 전체 합
- DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3, ....) → Java의 switch문과 비슷함. Oracle에만 있음.
- CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 (ELSE 결과3) END (AS 별칭)
- 인라인 뷰: FROM 절에 서브쿼리를 제시하는 것. SELECT문의 실행 결과 = RESULT SET. 테이블로부터 조회하는 것이 아니라, 이미 조회된 RESULT SET으로부터 조회하는 것. 즉, 서브쿼리를 수행한 결과인 RESULT SET을 테이블 대신에 사용함. 테이블명이 올 수 있는 위치에 사용 가능
- 스칼라(단일행) 서브쿼리: SELECT 절에서 컬럼명 대신 사용하는 서브쿼리. SELECT 절에서 하나의 열 영역으로서 결과를 출력할 수 있음 (반드시 하나의 결과만 반환)
- 다중행 서브쿼리: 서브쿼리에서 반환되는 결과가 하나 이상의 행일 때 사용.
- 연산자
- IN: 조건과 일치하는 데이터를 가져옴
- ANY, SOME: 하나라도 일치하면 참
- ALL: 전부 일치해야 참
- EXISTS: 데이터의 존재 여부 확인 후 존재하면 해당 데이터 가져옴
- 연산자
- 두 개의 SQL을 UNION으로 연결할 경우 헤드의 명칭은 첫 번째 SQL의 컬럼명 또는 ALIAS를 따름
- CONNECT_BY_ISLEAF: 가장 하위 노드인 경우 1 반환, 그 외엔 0 반환
- LPAD(값, 총 문자길이, 채움문자): 지정한 총 문자길이만큼 공간을 할당하고 값을 넣은 후 남은 공간을 왼쪽부터 채움문자로 채움 (RPAD는 오른쪽부터 채움)
- LPAD(123, 5, ‘0’) → 00123
- RPAD(123, 5, ‘0’) → 12300
- SYS_CONNECT_BY_PATH(컬럼, 구분자): 루트 노드부터 현재 노드까지의 경로 출력
- REPLACE(원래 문자열, 바꾸기 전, 바꾼 후) → 3번째 인자가 없으면 '바꾸기 전'에 해당하는 문자열 제거
- CREATE INDEX [인덱스명] ON [테이블명] [컬럼명];
- ALTER TABLE TEST MODIFY(NAME VARCHAR(100));
- Crow’s Foot 표기법 = IE 표기법. 이름만 다르고 같은 표기법.
- 인덱스에 대해 연산을 하면 인덱스가 변형되므로 검색 속도가 향상되지 않음.
- 실행계획 = SQL을 실행하기 위한 절차와 방법
- OR 연산자가 우선순위 제일 낮음.
- 순수 관계 연산자: SELECT, PROJECT, JOIN, DIVISION
- <테이블 복사할 때>
- [오라클] CREATE TABLE 새로만들테이블명 AS SELECT * FROM 복사할테이블명 [WHERE절]
- [SQL server] SELECT * INTO 새로만들테이블명 FROM 복사할테이블명
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 53회 합격 수기 (+공부 방법, 책/강의 추천 등) (1) | 2024.06.28 |
---|---|
[SQLD] 53회(24년 5월) 시험 응시 짧은 후기 (0) | 2024.05.25 |