SQLD 시험을 보기 전에 봤던 정리입니다.

오라클 / MySQL / MS-SQL을 구분은 해놓지 않았습니다.

제 기준에서 작성한거라 중요하지만 없는 것도 있습니다.

제가 시험 봤을 때에는 주관식으로 NTILELPAD, ROWNUM이 나왔던 기억이 있습니다.

1.문자

기능 함수
문자열의 알파벳 문자를 소문자로 바꾸어 준다 LOWER(문자열)
문자열의 알파벳 문자를 대문자로 바꾸어 준다 UPPER(문자열)
문자나 숫자를 ASCII 코드 번호로 바꾸어 준다 ASCII(문자)
ASCII 코드 번호를 문자나 숫자로 바꾸어 준다 CHR/CHR(ASCII번호)
문자열1과 문자열2를 연결한다 CONCAT(문자열1,문자열2)
문자열 m위치에서 n개에 해당하는 문자를 돌려준다 SUBSTR/SUBSTRING(문자열,m,n)
문자열의 개수를 숫자값으로 돌려준다 LENGTH/LEN(문자열)
문자열의 첫 문자부터 확인해서 지정문자가 나타나면 해당문자를 제거한다 LTRIM(문자열,지정문자)
문자열의 끝 문자부터 확인해서 지정문자가 나타나면 해당문자를 제거한다 RTRIM(문자열,지정문자)
문자열에서 머리말, 꼬리말, 양쪽에 있는 지정문자를 제거한다 TRIM([옵션] 지정문자 from 문자열)
문자열의 길이가 n이 되도록 왼쪽부터 문자식으로 채운다. LPAD(컬럼, 길이, 문자열)
문자열의 길이가 n이 되도록 오른쪽부터 문자식으로 채운다. RPAD(컬럼, 길이, 문자열)

2.숫자

기능 함수
 숫자의 절대값을 돌려준다  ABS(숫자)
 숫자가 양수인지, 음수인지, 0인지를 구별한다  SIGN(숫자)
 숫자1을 숫자2로 나누어 나머지 값을 리턴한다  MOD(숫자1, 숫자2)
 숫자보다 크거나 같은 최소 정수를 리턴한다 (올림)  CEIL/CEILING(숫자)
 숫자보다 작거나 같은 최대 정수를 리턴한다 (내림)  FLOOR(숫자)
 숫자를 소수점 m자리에서 반올림하여 리턴한다 (반올림)  ROUND(숫자, m)
 숫자를 소수점 m자리에서 잘라서 버린다 (반내림)  TRUNC(숫자, m)

3. 날짜

| 기능 | 함수 | | — | — | |  현재 날짜와 시각을 출력한다 |  SYSDATE/GETDATE() | |  날짜데이터에서 년/월/일 데이터를 뽑아낸다 |  EXTRACT/DATEPART(옵션 from 날짜) |

4. 형변환

기능 함수
 문자열을 숫자로 변환한다  TO_NUMBER(문자열)
 숫자나 날짜를 FORMAT 형태로 문자열 타입으로 변환한다  TO_CHAR(숫자|날짜,FORMAT)
 문자열을 FORMAT 형태로 날짜 타입으로 변환한다  TO_DATE(문자열, FORMAT)

5. Null 조건

기능 함수
 표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다  NVL/ISNULL(표현식1,표현식2)
 표현식1의 결과값이 NULL이 아니면 표현식2의 값을 NULL이면 표현식3을 출력한다   NVL2(표현식1, 표현식2, 표현식3)
 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다  NULLIF(표현식1,표현식2)
 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다  COALESCE(표현식1,2,3…)

6. 연산

기능 함수
 NULL값을 포함한 행의 개수를 출력한다  COUNT(*)
 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다  COUNT(표현식)
 표현식의 NULL값을 제외한 합계를 출력한다  SUM(표현식)
 표현식의 NULL값을 제외한 평균을 출력한다  AVG(표현식)
 표현식의 최대값을 출력한다  MAX(표현식)
 표현식의 최소값을 출력한다  MIN(표현식)
 표현식의 표준편차를 출력한다  STDDEV(표현식)
 표현식의 분산을 출력한다  VARIAN(표현식)

7. 계층형질의 ( 오라클 ) 

기능 함수
 루트데이터면1, 하위데이터면2. LEAF 데이터까지 1씩 증가  LEVEL
 해당데이터가 리프면1, 그렇지않으면 0  CONNECT_BY_ISLEAF
 해당데이터가 조상으로서 존재하면1, 그렇지않으면 0  CONNECT_BY_ISCYCLE
 루트데이터부터 현재전개할 데이터까지의 경로를 표시한다  SYS_CONNECT_BY_PAHTH(칼럼,분리자)
 현재전개할 데이터의 루트데이터를 표시한다  CONNECT_BY_ROOT 칼럼

8. 통계

기능 함수
 소그룹 간의 소계를 계산. 병렬로 수행이 가능하며. 시간 및 데이터에 적합  ROLLUP
 소규모 그룹 그룹 간 다차원적인 소계를 계산. ROLLUP에 비해 다양한 데이터  CUBE
 원하는 항목에 대한 소계를 계산한다  GROUPING SETS
 표현식에서 나온 값을 숫자만큼 등분한다.   NTILE(숫자) over ([partition by 컬럼] order by 표현식)

9. 순위 (EX : 총 10개의 순위를 정할 때 / 동일 순위 3건)

기능 함수  
 순위 구하기. 동일한 값은 동일한 순위 부여  RANK() over   1, 2, 3, 4, 5, 5, 5, 8, 9, 10
 순위 구하기. 동일 순위 시 하나의 건수로 취급  DENSC_RANK() over   1, 2, 3, 4, 5, 5, 5, 6, 7, 8
 순위 구하기. 동일한 순위는 없다  ROW_NUMBER() over   1, 2, 3, 4, 5, 6, 7, 8, 9, 10

10. 그룹 별 기능

기능 함수
 파티션 별로 합을 구한다. SUM(컬럼1) over (partition by 컬럼2) 
 파티션 별로 최대값을 구한다.  MAX(컬럼1) over (partition by 컬럼2)
 파티션 별로 최소값을 구한다.  MIX(컬럼1) over (partition by 컬럼2)
 파티션 별로 평균을 구한다.  AVG(컬럼1) over (partition by 컬럼2)
 파티션 별로 가장 먼저 나온 값 FIRST_VALUE(컬럼1) over (partition by 컬럼2) 
 파티션 별로 가장 나중에 나온 값 LAST_VALUE(컬럼1) over (partition by 컬럼2) 

컬럼2를 기준으로 컬럼1에 대한 연산을 수행

11. 범위

기능 함수
현재 행을 기준으로 파티션 내의 첫 번째 행까지 범위를 지정 (반복 누적)  RANGE UNBOUNDED PRECEDING
 현재 행을 기준으로 앞에서 숫자1만큼, 뒤에서 숫자2만큼을 범위로 지정  ROWS BETWEEN 숫자1 PRECEDING AND 숫자2 FOLLOWING
 현재 행을 포함해서 파티션 내의 마지막 행까지를 범위로 지정  ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING