상세 컨텐츠

본문 제목

[ SQLD ] NULL, 정렬, 숫자함수, 문자함수, 날짜함수

IT_STUDY/SQLD

by hyeminyy 2024. 3. 1. 15:13

본문

728x90

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;

 

728x90

관련글 더보기