티스토리 뷰
SELECT 문
저장되어 있는 데이터를 조회할 때 사용
산술 연산자 우선순위
우선순위 | 연산자 | 의미 |
1 | () | 우선순위 조정 |
2 | * | 곱하기 |
/ | 나누기 | |
3 | + | 더하기 |
- | 빼기 | |
% | 나머지 |
SQL문에 사용되는 함수
문자 함수 | 설명 | 사용 | 결과 |
CHR(ASCII 코드) | ASCII 코드를 인수로 입력했을때 매핑된 문자를 리턴 | CHR(65) | A |
LOWER(문자열) | 문자열을 소문자로 변환해주는 함수 | LOWER('KIM') | kim |
UPPER(문자열) | 문자열을 대문자로 변환해주는 함수 | UPPER('kim') | KIM |
LTRIM(문자열 [,특정문자]) | 특정문자를 따로 명시하지 않은 경우 문자열의 왼쪽 공백을 제거한다. 명시해주었을 경우 문자열을 왼쪽부터 한 글자씩 특정 문자와 비교하여 특정 문자에 포함되어 있으면 제거하고 포함되지 않았을 경우 멈춘다. |
||
SELECT LTRIM('아이유', '아이') FROM DUAL; | '유' | ||
RTRIM(문자열 [,특정문자]) | 특정문자를 명시하지 않은 경우 문자열의 오른쪽 공백을 제거한다. 명시해주었을 경우 문자열을 왼쪽부터 한 글자씩 특정 문자와 비교하여 특정 문자에 포함되어 있으면 제거하고 포함되지 않았을 경우 멈춘다 |
||
SELECT('아이유', '이유') FROM DUAL; | '아' | ||
TRIM([위치][특정문자][FROM] 문자열) | 옵션이 하나도 없을 경우 문자열의 왼쪽과 오른쪽 공백을 제거한다. 그렇지 않을 경우 문자열을 위치로 지정된곳부터 특정 문자와 비교하여 같으면 제거한다. |
||
TRIM(LEADING '블' FROM '블랙핑크') | '랙핑크' | ||
SUBSTR(문자열, 시작점 [,길이]) | 문자열의 원하는 부문만 잘라서 변환한다 길이를 명시하지 않으면 문자열의 시작점부터 끝까지 반환한다. | ||
SELECT SUBSTR('우유빛깔 아이유', 6, 3); | 아이유 | ||
LENGTH(문자열) | 문자열의 길이를 반환해주는 함수이다 | ||
SELECT LENGTH('아이유') FROM DUAL; | 3 |
REPLACE(문자열, 변경전 문자열, [,변경후 문자열]) | 문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수이다. 변경 후 문자열을 명시해 주지 않으면 해당 문자를 제거한다 |
SELECT REPLACE('우유빛깔 아이유', '우유빛깔', '우주최강') FROM DUAL; | |
'우주최강 아이유' |
LPAD(문자열, 길이, 문자) | 문자열이 설정한 길이가 될 때까지 왼쪽을 특정 문자로 채우는 함수이다. |
LAPD('아이유', 10, 'V') FROM DUAL; | |
'VVVVVVV아이유' |
숫자함수
ABS(수) | 수의 절대값을 반환해주는 함수이다. |
ABS(-10) | |
10 |
SIGN(수) | 수의 부호를 반환해주는 함수이다. 양수면 1, 음수면 -1을 반환한다 |
SIGN(-10) | |
-1 |
ROUND(수, [,자릿수]) | 수를 지정된 자릿수까지 반올림하여 변환해준다. |
ROUND(189.23, 1) FROM DUAL; | |
189.2 | |
ROUND(189.23, -1) FROM DAUL; | |
190 |
TRUNC(수, [,자릿수]) | 수를 지정된 소수점까지 버림한다. |
SELECT TRUNC(54.29, 1) FROM DUAL; | 54 |
SELECT TRUNC(54.29, -2) FROM DUAL; | 50 |
CEIL(수) | 소수점 이하의 수를 올림한 정수를 반환한다 |
SELECT CEIL(72.86) FROM DUAL | 73 |
SELECT CEIL(-33.4) | -33 |
FLOOR(수) | 소수점 이하의 수를 버림한 정수를 반환한다 |
SELECT FLOOR(22.3) FROM DUAL; | 22 |
SELECT (-22.3) FROM DUAL; | -23 |
MOD(수1, 수2) | 수1을 수2로 나눈 나머지를 반환한다 |
SELECT MOD(15, 7) FROM DUAL; | 1 |
SELECT MOD(-19, -3) FROM DUAL | -1 |
날짜 함수
SYSDATE | 현재의 연, 월, 일, 시, 분, 초를 반환한다 |
SELECT SYSDATE FROM DAUL; | |
2025-03-03-02:19:02 |
EXTRACT(특정 단위 FROM 날짜 데이터) | 날짜 데이터에서 특정단위 만을 출력해서 반환해주는 함수 |
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL |
|
2025 |
형변환 함수
SQL 에서 변환에는 명시적 변환과 암시적 변환이 있다.
형변환 | |
명시적 변환 | 개발자가 함수를 이용에 직접 변환한 경우 |
암시적 변환 | 프로그램이 연산도중에 스스로 변환한 경우 |
TO_NUMBER(문자열) | 문자열을 숫자형으로 면환해주는 함수 |
TO_NUMBER('1234') | 1234 |
TO_CHAR(수 or 날짜) | 수나 날짜형의 데이터를 포맷 형식의 문자형으로 변환해주는 함수 |
TO_CHAR(1234) | '1234' |
TO_DATE(문자열, 포맷) | 포맷 형식의 문자형의 데이터를 날짜형으로 변환해주는 함수 |
TO_DATE('20250303', 'YYYYMMDD') | 2025-03-03 |
포맷 표현 | 의미 | 포맷표현 | 의미 |
YYYY | 년 | HH | 시(12) |
MM | 월 | HH24 | 시(24) |
DD | 일 | MI | 분 |
SS | 초 |
NULL 관련 함수
NVL(인수1, 인수2) | 인수 1의 값이 NULL 일때 인수 2를 반환하고 아닐때 인수 1을 반환 |
SELECT NVL(NULL, 1) FROM DUAL; | 1 |
SELECT NVL(1, 2) FROM DUAL; | 1 |
NULLIF(인수1, 인수2) | 인수1과 인수2가 같으면 NULL을 반환하고 같지 않으면 1을 반환 |
SELECT NULLIF(1, 1) FROM DUAL; | NULL |
SELECT NULLIF(1, 2) FROM DUAL; | 1 |
COALESCE(인수1, 인수2, 인수3) | NULL 이 아닌 최초의 인수를 반환한다. |
SELECT COALESCE(NULL, NULL, 3) FROM DUAL; | 3 |
SELECT COALESCE(NULL, 2, 3) FROM DUAL; | 2 |
NVL2(인수1, 인수2, 인수3) | 인수1이 NULL 이 아닌 경우 인수2를 반환하고 NULL 이면 인수 3을 반환한다. |
SELECT NVL2(1, 2, 3) FROM DUAL; | 2 |
SELECT NVL2(NULL, 2, 3) FROM DUAL; | 3 |
case 함수 사용방법
CASE 함수 사용법 | |
CASE WHEN MENU='1' THEN 'PIZZA' WHEN MENU='2' THEN 'CHICKEN' WHEN MENU='3' THEN 'HAMBURGER' [ELSE 'BEER'] END |
|
CASE MENE WHEN '1' THEN 'PIZZA' WHEN '2' THEN 'CHICKEN' WHEN '3' THEN 'HAMBURGER' [ELSE 'BEER'] END |
|
DECODE (MENU, '1', 'PIZZA', '2', 'CHICKEN', '3', 'HAMBURGER' [,'BEER']) |
'데이터' 카테고리의 다른 글
SQL 기본 함수 설명 주의사항 (0) | 2025.03.04 |
---|---|
SQL 기본 함수 설명2 (0) | 2025.03.04 |
트랜잭션과 NULL (0) | 2025.03.03 |
정규화 (0) | 2025.03.03 |
데이터 모델링 (0) | 2025.03.02 |