--standard function //함수 기능
--가상테이블 : 값을 간단히 확인해 볼 수 있는 (임시) 테이블
-
| --문자 함수 |
--문자함수
select 1;
select 1+2;
select 'Hello';
-- 숫자를 문자로 표현
SELECT chr(65);
--문자의 아스키코드 값을 출력
SELECT ascii('A')
--LPAD, RPAD : 칸수를 설정하고 특정 문자로 채운다
SELECT LPAD('HELLO', 10) -- 칸을 10칸으로 잡고 그 안에 헬로로 채우기 -> 나머지는 빈칸으로 채워진다
SELECT LPAD('HELLO',10,'+'); -- 칸을 10칸으로 잡고 그 안에 헬로로 채우기 -> 나머지는 +로 채워진다
SELECT RPAD('120',10,'0'); -- 칸을 120칸으로 잡고 그 안에 헬로로 채우기 -> 나머지는 0로 채워진다
--POSITION 문자열의 위치
SELECT POSITION('H' IN 'HELLO'); --INDEXOF
SELECT POSITION('E' IN 'HELLO'); --INDEXOF
SELECT POSITION('L' IN 'HELLO'); --INDEXOF
--REPLACE : 문자열을 수정
SELECT REPLACE('AAABBBCCC','B' , 'b'); -- B 를 소문자 b로 바꿔라
SELECT REPLACE('AAABBBCCC','BBB' , 'b'); -- BBB 를 소문자 b로 바꿔라
-- TRANSLATE : 문자 수정
SELECT TRANSFORM('AAABBBCCC','B' , 'b');
SELECT REPLACE('AAABBBCCC','BBB' , 'b'); --에러 남 : 문자만 인식하기 때문에 문자열 BBB 는 인식 안 됨
--문자열 합치기
--SELECT 'ABC' + 'DEF'; -> 안됨!
SELECT'ABC' || 'DEF'; -- ||는 앞 문자열과 뒤 문자열을 합친다
SELECT'ABC' || 'DEF';
--문자열의 길이
SELECT LENGTH('HELLO');
--영문자의 대소문자 변경하기
SELECT UPPER('ABC');
SELECT LOWER('ABC');
--문자열 자르기
SELECT SUBSTRING('HELLO WORLD',7, 3); -- 문자열의 7번째자리부터 잘라서 3글자만 사용하기
SELECT SUBSTRING('HELLO WORLD',7); ---- 문자열의 7번째자리부터 잘라서 끝까지 사용하기
| --산술함수 |
--절대값구하는 함수 ABS
SELECT ABS(-12);
--나누고 난 후 나머지를 구하는 함수
SELECT MOD(5,3);
--자리수에 대해서 반올림을 하는 함수
SELECT ROUND(123.56);
SELECT ROUND(123.56, 1); -- 소수점 첫 번째 자리까지 반올림을 하라는 의미 ( 숫자, 소수점 원하는 자리 )
SELECT ROUND(124.56,-2); -- 2번째자리부터는 0으로 만들어줘! (숫자, 정수 원하는 자리)
--버림
SELECT TRUNC(123.456); --뒤에 숫자 없으면 정수까지만 사용
SELECT TRUNC(123.456, 2); --소수점 자리 2번째 이후부터는 날려 버려!
SELECT TRUNC(123.456, 3); --소수점 자리 3번째 이후부터는 날려 버려!
--올림
SELECT CEIL(13.1); - 뒤에 소수를 다 버리고 정수의 값을 하나 올려줌
--내림
SELECT FlOOR(14.9); - 뒤에 소수를 다 버리고 정수값 유지
SELECT FlOOR(14.98);
SELECT FlOOR(13.9);
--양수 1,0이면 0, 음수 -1
SELECT SIGN(12.4);
SELECT SIGN(0);
SELECT SIGN(-12.4);
| 날짜 함수 |
--날짜 함수
SELECT CURRENT_DATE; --현재 날짜
SELECT NOW(); --현재 날짜에 시간까지 나오는 함수
SELECT CURRENT_TIME; -- 현재 시간만 나오는 함수
SELECT CURRENT_TIMESTAMP; --현재 날짜 + 시간 나오는 함수
--날짜 및 시간의 요소 (연,월,일,시,분, 초 의 요소 (Eelement)를 잘라낸다)
SELECT NOW(), EXTRACT(YEAR FROM CURRENT_TIMESTAMP); - 연도 빼서 표에 한 번 더 출력
SELECT NOW(), EXTRACT(MONTH FROM CURRENT_TIMESTAMP);
SELECT NOW(), EXTRACT(DAY FROM CURRENT_TIMESTAMP);
SELECT NOW(), EXTRACT(HOUR FROM CURRENT_TIMESTAMP);
SELECT NOW(), EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);
SELECT NOW(), EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
--만약 컬럼에 있는 값이 NULL 인 경우 , 지정한 값으로 대체하는 함수
SELECT COALESCE(NULL, 1); --뒤에 설정한 것으로 대체 된다 (NULL, 지정값)
SELECT COALESCE(NULL, '안녕'); --숫자, 영어, 한글 가능
SELECT COALESCE(NULL, '!'); --문자열안에 넣어서 특수기호 가능
--TO_CHAR : 원하는 형식으로 출력되는 함수
SELECT CURRENT_DATE,TO_CHAR(CURRENT_DATE,'YYYY-MM-DD'); -- 연산 불가능
SELECT CURRENT_DATE,TO_CHAR(CURRENT_DATE,'MM-DD-YYYY');-- 연산 불가능
SELECT CURRENT_DATE,TO_CHAR(CURRENT_DATE,'MM/DD/YYYY');-- 연산 불가능
SELECT CURRENT_DATE,TO_CHAR(CURRENT_TIMESTAMP,'YYY/-MM/DD HH:MI;SS'); -- 연산 불가능
--$10,000,000
SELECT TO_CHAR(10000000,'$') --달러를 붙여서 숫자로 표현할 때
SELECT TO_CHAR(10000000,'$999,999,999') --달러를 붙여서 숫자로 표현할 때
--문자열 -> 날짜형으로 변환
SELECT TO_DATE('20260610', 'YYYYMMDD'); -- 하이픈 - 넣지 않아도 변횐 됨
--문자열을 숫자열로 변환 : 연산 가능
SELECT TO_NUMBER('12,345.67','99,999.99' );
'PostgresSQL > PostgresSQL 개념정리' 카테고리의 다른 글
| table (0) | 2026.06.17 |
|---|---|
| Join (0) | 2026.06.15 |
| from (0) | 2026.06.12 |
| oder by , group by, group function, having sum (0) | 2026.06.12 |
| where (0) | 2026.06.12 |