티스토리 뷰
728x90
PostgreSQL ::
연산자 사용법
PostgreSQL에서는 데이터 타입 변환을 위해 ::
연산자를 자주 사용한다. 이 연산자는 SQL 표준의 CAST
구문과 같은 역할을 하지만, 더 간결하고 직관적으로 쓸 수 있다. ::
연산자는 특정 데이터 타입으로 변환하고 싶을 때 사용되며, 데이터베이스 쿼리에서 강력하고 유용하게 쓰인다.
기본 사용법: ::
PostgreSQL에서 ::
는 "이 데이터를 특정 데이터 타입으로 변환해라"라는 의미다. 예를 들어, 문자열 데이터를 정수로 변환하려면 아래와 같이 작성할 수 있다.
SELECT '123'::INTEGER;
-- 결과: 123 (정수형 데이터)
::
는 아래와 같은 데이터 타입으로 변환하는 데 사용할 수 있다.
자주 사용하는 데이터 타입 예제
1. 숫자 타입
숫자와 관련된 데이터 타입 변환은 많이 쓰인다.
::INT
또는::INTEGER
: 정수형으로 변환.::BIGINT
: 더 큰 범위의 정수형으로 변환.::SMALLINT
: 작은 범위의 정수형으로 변환.::NUMERIC
또는::DECIMAL
: 소수점 있는 숫자로 변환.::FLOAT
또는::REAL
: 부동 소수점 숫자로 변환.
SELECT '42'::INT; -- 결과: 42
SELECT '3.14'::FLOAT; -- 결과: 3.14
2. 문자열 타입
문자열 변환도 빈번하게 사용된다.
::TEXT
: 문자열로 변환.::CHAR
또는::CHARACTER
: 고정 길이 문자열로 변환.::VARCHAR
: 가변 길이 문자열로 변환.
SELECT 123::TEXT; -- 결과: '123'
SELECT 'hello'::VARCHAR; -- 결과: 'hello'
3. 날짜와 시간 타입
날짜와 시간 데이터를 다룰 때도 유용하다.
::DATE
: 날짜 타입으로 변환.::TIMESTAMP
: 날짜와 시간 정보를 포함한 타입으로 변환.::TIME
: 시간만 포함한 타입으로 변환.::INTERVAL
: 시간 간격으로 변환.
SELECT '2025-01-01'::DATE; -- 결과: 2025-01-01
SELECT '2025-01-01 15:30'::TIMESTAMP; -- 결과: 2025-01-01 15:30:00
4. Boolean 타입
참(TRUE
) 또는 거짓(FALSE
)으로 변환할 때 사용된다.
::BOOLEAN
: 문자열이나 숫자를 Boolean 타입으로 변환. (0은FALSE
, 그 외 숫자는TRUE
로 간주)
SELECT 'true'::BOOLEAN; -- 결과: TRUE
SELECT 0::BOOLEAN; -- 결과: FALSE
SELECT 1::BOOLEAN; -- 결과: TRUE
5. JSON과 JSONB 타입
PostgreSQL은 JSON 데이터를 다루는 데 강력하다.
::JSON
: 일반 JSON 타입으로 변환.::JSONB
: 바이너리 JSON 타입으로 변환. (효율적인 검색과 저장 가능)
SELECT '{"key": "value"}'::JSON; -- 결과: JSON 데이터
SELECT '{"key": "value"}'::JSONB; -- 결과: JSONB 데이터
6. 기타 데이터 타입
PostgreSQL에는 다양한 데이터 타입이 있고, ::
연산자를 사용해서 변환할 수 있다.
::UUID
: UUID 형식으로 변환.::BYTEA
: 바이너리 데이터로 변환.::CIDR
,::INET
: 네트워크 주소 형식으로 변환.::ARRAY
: 배열로 변환.
SELECT '123e4567-e89b-12d3-a456-426614174000'::UUID; -- 결과: UUID 데이터
SELECT '192.168.0.1'::INET; -- 결과: IP 주소 데이터
CAST
와의 차이점
::
는 간결하지만, SQL 표준을 준수하려면 CAST
를 사용할 수도 있다. 두 가지는 동일한 기능을 한다.
SELECT CAST('123' AS INTEGER); -- SQL 표준
SELECT '123'::INTEGER; -- PostgreSQL 스타일
주의사항
변환 가능한 경우에만 사용
잘못된 데이터 타입으로 변환하려고 하면 오류가 발생한다.SELECT 'abc'::INTEGER; -- 오류 발생: invalid input syntax for type integer
명시적 변환과 암시적 변환
PostgreSQL은 일부 상황에서 자동으로 타입을 변환하지만, 명시적으로 변환하는 것이 안전하다.
이처럼 PostgreSQL의 ::
연산자는 간단하면서도 강력한 데이터 변환 도구다. 상황에 맞게 적절히 활용하면 쿼리를 더욱 유연하게 작성할 수 있다.
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- maven
- config-location
- window
- oracle
- Java
- input
- Spring Security
- mybatis config
- rocky
- elasticsearch
- intellij
- svn
- jQuery
- springboot
- Bash tab
- 북리뷰
- JavaScript
- Mac
- k8s
- Spring
- localtime
- LocalDate
- 베리 심플
- LocalDateTime
- Github Status
- mybatis
- Kotlin
- 오라클
- docker
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함