NULL의 정의⭐ ⭐ ⭐
- 모르는 값, 정의되지 않은 값 ( 공백이나 0과는 다르다.)
- 산술 연산에서 null이 들어가게 되면 모든 값은 null이다.
ex) null + 2, null * 10, null + null 모두 결과는 null이다.
- 조건걸에 null이 들어가게되몀ㄴ false를 반환하게 된다.
ex) null = null , null = 2 모두 false
- 집계함수(sum, count, min, max..)에서 null은 데이터 대상에서 제외된다.
- 정렬시에는 오라클에서는 가장 큰 것이되고, SQL Server에서는 가장 작은 값이 된다.
Nvl(col,0) | col이 null이면 0 반환, 아니면 col 반환 |
Nvl2(col,1,0) | col이 null이면 0 반환, 아니면 1 반환 |
Isnull(col,0) | col이 null이면 0 반환, 아니면 col 반환 |
Nullif(col,0) | col이 0이면 null 반환, 아니면 col 반환 |
Coalessce(col1,col2,col3..) | null 아닌 첫번째 값 반환 |
정렬 ⭐ ⭐
- 느려질 수 있다.
- 가장 마지막에 실행된다.
- null이 어디에 오는지 ..
- 컬럼명으로 정렬, 앞의 기준이 같을 때 그 다음 컬럼으로 정렬
- 기본 값은 asc(오름차순), desc는 내림차순
SELECT * FROM table명 Order by 컬럼명 (ASC) ; --- 오름차순(ABCD, 1234 순)
SELECT * FROM table명 Order by 컬럼명 DESC ; --- 내림차순(DCBA, 4321 순)
숫자함수
- Round(222.45, 1) 소수점 둘째자리에서 반올림하여 첫째자리까지 출력
- Round(222.45, 0) 소수점 첫째자리에서 반올림하여 정수를 출력
- 1 파라미터는 1의 자리에서 반올림하여 정수를 출력
문자함수⭐
문자형 함수 | 설명 | 함수 예시 | 예시 결과 |
LOWER(문자열) | 소문자로 바꾼다. | LOWER('SQL Expert') | 'sql expert' |
UPPER(문자열) | 대문자로 바꾼다. | UPPER('SQL Expert') | 'SQL EXPERT' |
ASCII(문자) | 아스키 코드로 바꾼다. | ASCII('A') | 65 |
CHR/CHAR(ASCII번호) | 아스키 코드를 문자나 숫자로 바꾼다. | CHR(65) / CHAR(65) | 'A' |
SUBSTR/SUBSTRING(문자열, m[,n]) | 문자열 m 위치에서 n개의 문자를 잘라준다. (n은 생략 가능) | SUBSTR('SQL Expert',5,3) / SUBSTRING ('SQL Expert',5,3) |
'Exp' |
LENGTH/ LEN(문자열) | 문자의 갯수를 숫자로 바꾼다. | LENGTH('SQL Expert') / LEN('SQL Expert') |
10 |
LTRIM(문자열, [,지정문자]) | 문자열 첫 문자부터 지정 문자까지 제거한다. (지정문자 생략 시 공백이 디폴트) SQL server에서는 지정문자를 정할 수 없어 공백만 제거 가능 |
LTRIM('xxxAAUFmxSS','x') | ' AAUFmxSS' |
RTRIM(문자열, [,지정문자]) | 문자열 마지막 문자부터 지정문자까지 제거한다. (제약조건은 LTRIM과 같다.) | RTRIM ('xxxAAUFmxxx','x') | ' xxAAUFm' |
TRIMP([leading | trailing | both] 지정문자 FROM 문자열) | 양쪽에서 지정문자를 제거한다. (both가 디폴트) | TRIM('x' FROM 'xxAASSxWxx') | ' AASSxW' |
날짜함수⭐
현재 날짜 가져오기
SELECT DATE(CURRENT_TIMESTAMP) AS date;
날짜 변환
SELECT DATE(' 2021-03-15') AS date;
연도, 월, 일 추출
- YEAR, MONTH, DAY 함수를 사용하여 각각 연도, 월, 일을 추출할 수 있다.
SELECT YEAR('2024-02-01') AS year,
MONTH('2024-03-01') AS month,
DAY("2024-03-02') AS day;
year = 2024 / month = 03 / day = 02
현재 시간 출력
SELECT TIME(CURRENT_TIMESTEMP) AS time;
시간 변환
- 시간 형식은 'HH:MM:SS'와 같은 형식
SELECT TIME('15:05:20') AS time;
TIMESTEMP 함수
- 날짜와 시간을 모두 포함하는 데이터를 생성하거나 변경할 수 있는 함수이다.
-- 현재 날짜와 시간 가져오기
SELECT TIMESTAMP(CURRENT_DATE, CURRENT_TIME) AS timestamp;
To_char
- 날짜형 데이터를 문자로 출력
Select to_char(sysdate, 'YYY-MM-DD') form dual;
To_date
- 문자형 데이터를 날짜형으로 출력
Select to_date('2024-03-09') from dual;
'IT_STUDY > SQLD' 카테고리의 다른 글
[ SQLD ] DDL, DCL, DML (0) | 2024.03.04 |
---|---|
[ SQLD ] 조건문(DECODE,CASE),집계함수,GROUP,JOIN,서브쿼리 (0) | 2024.03.01 |
[ SQLD ] ESCAPE / ROWNUM / TOP() (1) | 2024.02.10 |
[ SQLD ] SQL 연산 / Alias / CONCAT / IN / LIKE / NOT (0) | 2024.02.07 |
[ SQLD ] 데이터 모델과 성능 (2) (0) | 2024.02.05 |