728x90
반응형
SQLD 2과목 SQL 기본 및 활용
<목차> |
내장형 함수
1) 단일행 함수
1-1) 문자형 함수
- 문자 데이터를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수
문자형 함수 | 설명 | 예 |
LOWER(문자열) | 문자열의 알파벳 문자를 소문자로 변환 | LOWER('EXPERT') > 'expert' |
UPPER(문자열) | 문자열의 알파벳 문자를 대문자로 변환 | UPPER('expert') > 'EXPERT' |
ASCII (문자) | 문자나 숫자를 ASCII 코드 번호로 변환 | ASCII('A') > 65 |
CHR/CHAR(ASCII 번호) | ASCII 코드 번호를 문자나 숫자로 변환 | CHR(65) / CHAR(65) > 'A' |
CONCAT (문자열1, 문자열2) |
Oracle, My SQL에서 유효한 함수이며 문자열1과 문자열 2를 연결 | CONCAT('RDBMS',' SQL' > 'RDBMS SQL' |
SUBSTR/SUBSTRING (문자열, m[, n ]) |
문자열 중 m 위치에서 n개의 문자 길이에 해당하는 문자를 환산. n이 생략되면 마지막 문자까지. | SUBSTR('EXPERT',1,3) /SUBSTRING('EXPERT',1,3) > EXP |
LENGTH/LEN (문자열) | 문자열의 개수를 숫자값으로 환산 | LENGTH('EXPERT') /LEN('EXPERT') > 6 |
LTRIM (문자열 [, 지정문자]) |
문자열의 첫 문자부터 확인해서 지정 문자가 나타나면 해당 문자를 제거. (지정 문자가 생략되면 공백 값이 디폴트) | LRTIM('xxxYYZZxYZ','x') > 'YYZZxYZ' |
RTRIM (문자열 [, 지정문자]) |
문자열의 마지막 문자부터 확인해서 지정 문자가 나타나는 동안 해당 문자를 제거 (지정 문자가 생략되면 공백 값이 디폴트) | RTRIM('XXYYzzYYzz'.'z') > 'XXYYzzXY' |
TRIM ([leading| trailing[both] 지정문자 FROM 문자열 |
문자열에서 머리말, 꼬리말, 또는 양쪽에 있는 지정 문자를 제거 |
TRIM('x' FROM 'xxYYZZxYZxx') > 'YYZZxYZ' |
* LTRIM, RTRIM, TRIM: SQL Server 에서는 지정문자 사용 불가. 즉, 공백만 제거 가능
RTRIM('XXYYZZXYZ ') > 'XXYYZZXYZ'
1-2) 숫자형 함수
숫자형 함수 | 설명 | 예 |
ABS(숫자) | 숫자의 절대값 산출 | ABS(-15) > 15 |
SIGN(숫자) | 숫자가 양수인지, 음수인지, 0인지 구별 | SIGN(-20) > -1 SIGN(0) > 0 SIGN(+20) > 1 |
MOD(숫자1, 숫자2) | 숫자1을 숫자2로 나누어 나머지 값 리턴 MOD 함수는 % 연산자로도 대체 가능 |
MOD(7,3) / 7%3 > 1 |
CEIL / CEILING(숫자) | 숫자보다 크거나 같은 최소 정수 리턴 | CEIL(38.123) / CEILING(38.123) > 39 CEILING(-38.123) > -38 |
FLOOR (숫자) | 숫자보다 작거나 같은 최대 정수 리턴 | FLOOR(38.123) > 38 FLOOR(-38.123) > -39 |
ROUND(숫자 [, m ]) | 숫자를 소수점 m 자리에서 반올림하여 리턴 m이 생략되면 디폴트 값은 0 |
ROUND(38.5235,3) > 38.524 ROUND(38.5235,1) > 38.5 ROUND(38.5235,0) > 39 ROUND(38.5235) > 39 (인수 0이 디퐅트) |
TRUNC(숫자 [, m ]) | 숫자를 소수 m 자리에서 잘라서 버림 m이 생략되면 디폴트 값은 0 SQL Server 에서 미제공 |
TRUNC(38.523,3) > 38.523 TRUNC(38.523,1) > 38.5 TRUNC(38.523,0) > 38 TRUNC(38.523) > 38 (인수 0이 디폴트) |
SIN, COS, TAN, ... | 숫자의 삼각함수 값 리턴 | |
EXP(), POWER(), SQRT(), LOG(), LN() |
숫자의 지수, 거듭 제곱, 제곱근, 자연 로그 값 리턴 |
1-3) 날짜형 함수
날짜형 함수 | 설명 |
SYSDATE / GETDATE() |
현재 날짜와 시간 출력 |
EXTRACT('YEAR'|'MONTH'|'DAY' from d) / DATEPART( 'YEAR'|'MONTH'|'DAY' , d) |
날짜 데이터에서 년/월/일 데이터 출력 시간/분/초도 가능 |
TO_NUMBER(TO_CHAR(d,'YYYY')) /YEAR(d) TO_NUMBER(TO_CHAR(d,'MM')) /MONTH(d) TO_NUMBER(TO_CHAR(d,'DD')) /DAY(d) |
날짜 데이터에서 년/월/일 데이터를 출력 TO_NUMBER 함수 제외시 문자형으로 출력 |
단일행 날짜형 데이터 연산
연산 | 결과 | 설명 |
날짜 + 숫자 | 날짜 | 숫자만큼의 날수를 날짜에 더함 |
날짜 - 숫자 | 날짜 | 숫자만큼의날수를 날짜에서 뺌 |
날짜1 - 날짜2 | 날짜수 | 다른 하나의 날짜에서 하나의 날짜를 빼서 일수를 구함 |
날짜 + 숫자/24 | 날짜 | 시간을 날짜에 더함 |
1-4) 변환형 함수
종류 | 설명 |
명시적 데이터 유형 변환 | 데이터 변환형 함수로 데이터 유형을 변환하도록 명시해주는 경우 |
암시적 데이터 유형 변환 | 데이터베이스가 자동으로 데이터 유형을 변환하여 계산하는 경우 |
1-5) CASE 표현
CASE 표현 | 함수 설명 |
CASE SIMPLE_CASE_EXPRESSION 조건 ELSE 표현절 END |
SIMPLE_CASE_EXPRESSION 조건이 맞으면 SIMPLE_CASE_EXPRESSION 조건 내의 THEN 절을 수행하고, 조건이 맞지 않으면 ELSE 절 수행 |
CASE SEARCHED_CASE_EXPRESSION 조건 ELSE 표현절 END |
SEARCHED_CASE_EXPRESSION 조건이 맞으면 SEARCHED_CASE_EXPRESSION 조건 내의 THEN 절을 수행하고, 조건이 맞지 않으면 ELSE 절 수행 |
DECODE(표현식, 기준값1, 값1 [, 기준값2, 값2, ..., 디폴트값) |
Oracle 에서만 사용되는 함수 표현식의 값이 기준값1이면 값1 출력, 기준값2 이면 값2 출력 기준값이 없으면 디폴트 값 출력 |
1-6) NULL 관련 함수
일반형 함수 | 설명 |
NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2) |
표현식1의 결과값이 NULL 이면 표현식2의 값 출력 단, 표현식1과 표현식2의 결과 데이터 타입이 같아야 함. NULL 관련 가장 많이 사용되는 함수 |
NULLIF(표현식1, 표현식2) | 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1 리턴 |
COALESCE(표현식1, 표현식2, ...) | 임의의 개수 표현식에서 NULL 이 아닌 최초의 표현식을 나타냄. 모든 표현식이 NULL이라면 NULL 리턴 |
이전글
다음글
728x90
반응형
'자격증 > SQLD' 카테고리의 다른 글
SQLD 2과목 SQL 기본 및 활용 - GROUP BY, HAVING 절 (1) | 2024.01.12 |
---|---|
SQLD 2과목 SQL 기본 및 활용 - WHERE 절 (1) | 2024.01.11 |
SQLD 2과목 SQL 기본 및 활용 - 함수(1) (0) | 2024.01.10 |
SQLD 2과목 SQL 기본 및 활용 - SELECT 문 (1) | 2024.01.09 |
2과목 SQL 기본 및 활용 - 관계형 데이터베이스 개요 (1) | 2024.01.08 |