DB

DB/PostgreSQL

PSQL Postgresql 중복된 컬럼 제거하는 방법

PK 가 없는 아래와 같은 조건을 가진 테이블에서 중복된 컬럼 제거하는 방법 조건 create table dupl_test ( id int, name varchar(10), email varchar(10)); insert into dupl_test values (1, 'kim', 'k@k'),(1, 'kim', 'k@k'),(2, 'park', 'p@p'),(2, 'park', 'p@p'),(3, 'lee', 'l@l'),(3, 'lee', 'l@l'); 1. 중복을 제거한 새로운 테이블 생성 CREATE TABLE no_dupl AS SELECT DISTINCT * FROM dupl_test; 2. ctid 를 이용한 중복제거 DELETE FROM dupl_test WHERE ctid NOT IN (S..

DB/PostgreSQL

PSQL Postgresql 중복 허용 insert

PSQL Postgresql 에서 중복값이 있으면 해당값 무시하고 insert 하는방법 ON CONFLICT ... DO NOTHING; INSERT INTO tableName (col1, col2, col3) VALUES (#{col1}, #{col2}, #{col3}) ON CONFLICT (col1) do nothing 모든 컬럼을 입력해야하고, col1 = 무시할 컬럼이며 반드시 PK 를 가진 테이블이어야 함

DB/PostgreSQL

*[pSQL] 뷰와 인덱스

뷰 의미있는 데이터를 조회하기 위해 사용했던 복잡한 쿼리문들 > 매번 작성한다면 생산성이 떨어지고 오류가 발생할 수 있는 문제를 해결해, SQL 구문을 깔끔하게 유지하도록 돕는 것 기존에 만든 쿼리문을 하나의 가상 테이블로 만들어 두었다가 필요한 곳에 적절히 사용하는 기능 새로만든 뷰가 참조하는 뷰에 영향을 주지 않는 한 계속 확장 가능 뷰 > 뷰 > 뷰 >>... 뷰는 실제 테이블이 아니라 가상의 테이블, 뷰를 제거한 후에 참조한 테이블 삭제 가능 CREATE VIEW 이름 AS SELECT 컬럼 FROM 기존데이터 인덱스 인덱스는 테이블에 대한 검색 속도를 높이기 위한 자료구조 특정 컬럼에 인덱스를 생성하면 해당 컬럼에 대한 데이터를 특정 조건(정렬 등) 기준으로 인덱스 자료구조를 생성 인덱스를 생성..

DB/PostgreSQL

Postgresql JSON

더보기 JSON 과 JSONB 타입의 차이 JSON 에서 키 벨류값을 가져올 때는 아래와 같이 -> 연산자를 활용한다. select '{"p" : {"1":"psql"}, "s" : {"2":"msql"}}' :: json -> 'p' as result; -- result = json type "{""1"":""psql""}" 또는 인덱스 번호를 통해서도 가져올 수 있다. JSON 타입이 아닌 TEXT 형식으로 가져오고자 할 때는 ->> 연산자를 활용한다. /178p

DB/PostgreSQL

[pSQL] 배열 연산자와 함수

배열 연산자, 조건 @ 포함관계를 나타냄.. 부분집합과 유사 TRUE / FALSE && 겹침 유무 하나라도 겹치면 TRUE || ARRAY[1,2,3] || ARRAY[1,3] - 배열 병합 {1,2,3,1,3,} ARRAY[1,2,3][4,5,6] || ARRAY [1,3] - 2차원 배열 병합 { {1,2,3,},{4,5,6,}{1,3} } 1 || ARRAY [2,3,4] - 원소 배열 병합 {1,2,3,4| 배열 함수 Array_append ( 배열 , 원소 ) =>배열에 원소값 삽입 . 맨 뒤로 Array_prepend => 맨 앞으로 삽입 Array_remove = > 원소 삭제

DB/PostgreSQL

[pSQL] 조건문과 NULL 관련 함수

조건문 CASE CASE WHEN THEN 결과문 1 ... ELSE END COALESCE -NULL 값 대체 함수 -Coalesce ( 매개변수1, 매개변수2 .. ) = > NULL 이 아닌 첫번째 매개변수 반환 NULLIF - 값을 NULL 로변환하고 싶을 때 사용 -NULLIF( 매개변수1, 매개변수2) => 두 매개변수가 같으면 NULL, 아니면 첫번째 값 반환 해설 nullif(student,0) : student 가 0일 경우 0 변환 :: char : 나눈 값을 문자형으로 변환 coalesce : 매개변수 1이 null 일경우 '나눌 수 없음' 반환 > null 과 함께한 모든 연산은 null

DB/PostgreSQL

[pSQL] 날짜 및 시간 연산자, 함수

DATE, TIME, TIMESTAMP, TIMESTAMPZ .. 날짜의 사칙연산 - DATE 에 정수를 더하면 그만큼 후의 DATE 값 출력 -DATE 에 TIME 을 더하면 그만큼 시간이 더해져 출력 - 뺄셈의 경우 남은 날짜나 시간값 반환 INTEGER / TIMESTAMP INTERVAL : 시간 및 날짜 간격을 나타내는 데이터 타입 - INTERVAL 의 덧셈은 INTERVAL 끼리만 연산 가능 -- 시간은 곱셈/ 나눗셈이 가능하나 날짜는 불가 CURRENT_DATE : 현재 날짜 정보 CURRENT_TIME : 현재시간 + 시간대 정보 CURRENT_TIMESTAMP : 현재 날짜 및 시간 + 시간대 정보 시간대 정보를 빼는 방법 LOCALTIME : 현재 시간 정보 = CURRENT_TIME..

keartt
'DB' 카테고리의 글 목록