분류 전체보기 73

SQL 서브쿼리 연산자

이전글 https://spring0691.tistory.com/59서브쿼리 연산자# 1개이상의 행을 반환하면 true, 아무것도 없으면 falseEXISTS (서브쿼리)select exists(select * from current_time); ㅡ> true# 서브쿼리에서 같은 행이 하나라도 있으면 true, 아니면 falseselect * from table where amount in (10,20,30); id | name | amount | | id | name | amount -----+------------+--------+ +-----+--------+-------- 1 | apple | 30 | | 1 | a..

SQL 2025.01.20

SQL 날짜 & 시간 연산자, 날짜 & 시간 함수

연산자# 날짜 + 정수select date '2020-07-15' + integer '7' as result; ㅡ> 2020-07-22# 날짜 + 시간select date '2020-07-15' + time '13:00' as result; ㅡ> 2020-07-15 13:00:00# 날짜 - 날짜select date '2020-07-15' - date '2020-07-01' as result; ㅡ> 14# 시간 - 시간select time '13:00' - time '5:00' as result; ㅡ> 08:00:00 (INTERVAL 데이터 타입)# 정수 * 시간 간격(INTERVAL)select 60 * interval '1 second' as result; ㅡ> 00:01:00# 시간 간..

SQL 2025.01.20

SQL JSON 생성,처리 함수

json 입력테스트의 정확한 사본 생성 처리속도가 느림jsonb 처리속도가 비교적 빠름 데이터 저장속도가 비교적 느림기능/특성TEXT 타입JSON/JSONB 타입데이터 저장문자열 그대로 저장JSON 형식 유지 (JSONB: 바이너리)구조적 무결성보장되지 않음JSON 문법 검증이 필요검색 및 접근문자열 연산(일치, 패턴 검색)키-값 기반 접근, 내부 필드 검색속도간단한 문자열 검색 시 빠름JSONB는 빠른 검색 및 인덱싱 지원인덱스 지원일반 인덱스 사용 가능GIN 인덱스 등 JSON 전용 인덱스유연성비구조적 데이터에 적합반정형 데이터 저장 및 쿼리에 적합공간 효율성그대로 저장 (공백 포함)JSONB는 압축되어 저장됨수정 기능전체 업데이트만 가능개별 키 수정 가능(JSONB)JSON 생성함수# JSON ..

SQL 2025.01.20

SQL 배열 연산자

배열 연산자# 원소 단위로 비교하여 같으면 같다. (INTEGER 형변환 하면서 반올림처리)select array[5.1,1.6,3]::INTEGER[] = ARRAY[5,2,3] as results; ㅡ> true# 원소 단위로 앞에서부터 비교하여 크면 크다. 작거나 같으면 작다. select array[5,3,3] > ARRAY[5,2,4] as results; ㅡ> true# 배열의 포함관계. 집합의 포함기호 ⊃와 같은 의미select array[1,2,3] @> Array[1,3] as results; ㅡ> true# 원소가 하나라도 겹치는게 있는지select array[1,2,3,4] && array[1,5,6] as results; ㅡ> true# 배열병합, 2차원 배열도 1차원 배열과 입력..

SQL 2025.01.20

SQL COALESCE 함수

COALESCE 함수데이터 조회시 NULL값을 다른 기본값으로 대체할때 자주사용.# map함수처럼 인자들을 반복하며 null값인지 조회하고 null값이 아닌값이 나오면 해당값을 리턴.각 매개변수들의 타입은 같아야함SELECT COALESCE(null, null, null, '빈 값') as column1; column1--------- 빈 값(1 row)단 여기서 COALESCE의 인자로 특정값이 아닌 컬럼을 넣는다면 해당 컬럼의 모든 값을 조회후 모든 null값을 그 뒤에 지정한 값으로 대체한다.select * from student_score; id | name | score----+-----------+------- 1 | Heewon | 87 2 | Gahye |..

SQL 2025.01.20

SQL 배열 함수

배열 함수#배열의 뒤에 추가array_append(, );select array_append(array[1,2], 3) as result; ㅡ> {1,2,3}#배열의 앞에 추가array_append(, );select array_prepend(1,array[2,3]) as result; ㅡ> {1,2,3}#배열 원소 제거array_remove(, );select array_remove(array[1,2,3,4],2) as results; ㅡ> {1,3,4}#배열 원소 변경array_replace(, , )select array_replace(array[1, 4, 3], 4, 7777) as result; ㅡ> {1,7777,3}#배열 병합array_cat(, )select array_cat(arra..

SQL 2025.01.20

SQL JSON연산자, JSONB 연산자

정의된 컬럼의 데이터가 아닌 임의 생성데이터이기 때문에 ::json으로 형변환 후 사용JSON 연산자json, jsonb 공통연산자-> 연산자는 일반 리턴, ->> 연산자는 TEXT타입으로 리턴json array는 "키 값" 대신 인덱스번호 사용가능'{"키 값1": "밸류 값1", "키 값2": "밸류 값2"}' -> "키 값1" 하면 "밸류 값1" 리턴select '{"p": {"1":"postgres"}, "s":{"1":"sql"}}'::json -> 'p' as result; ㅡ> {"1":"postgres"}'{"키 값1": "밸류 값1", "키 값2": "밸류 값2"}' ->> "키 값1" 하면 TEXT타입으로 "밸류 값1" 리턴 [{"키 값1": "밸류 값1"}, {"키 값2": "밸류 값..

SQL 2025.01.20

SQL 연산자(논리, 비교, 범위)

논리 연산자# A = true, B = NULLA and B = NULL, A or B = true# A = false, B = NULLA and B = false, A or B = NULL# A = NULLNOT A = NULL비교 연산자# IS 와 IS NOT과 true,false,null의 조합으로 6개가 나온다. 리턴값은 true or false(표현식) IS TRUE(표현식) IS NOT TRUE(표현식) IS FALSE(표현식) IS NOT FALSE(표현식) IS NULL(표현식) IS NOT NULLnull = 'false' 와 null is false는 리턴값이 다르다. 차이점에 유의select null = 'false' as equal_false, null is false as is_f..

SQL 2025.01.17