PostgreSQL
-
[PostgreSQL] 문자열 자르기 - SUBSTRINGSQL 2021. 8. 27. 19:10
문자열 자르기 - SUBSTRING PostgreSQL에서 문자열의 원하는 부분을 추출하기 위해서 SUBSTRING을 사용할 수 있습니다. 먼저 PostgreSQL 튜토리얼 데이터 staff 테이블의 first_name, last_name 칼럼을 불러와 예시로 사용해 보겠습니다. select first_name, last_name from staff (1) SUBSTRING( string, start_position, length ) SUBSTRING ( string ,start_position , length ) start_position 은 문자열에서 추출하고자 하는 시작 위치로 해당 자리(start position)를 포함하여 추출된 결과를 돌려줍니다. 문자열의 자리 번호는 파이썬이 첫번째를 0으로..
-
[PostgreSQL] 데이터 타입 변환 - CAST, :: 연산자SQL 2021. 8. 26. 18:57
데이터 타입 변환 - CAST, :: 연산자 PostgreSQL에서 데이터 타입을 변환하는 방법은 두 가지가 있습니다. 첫 번째는 CAST 를 이용하는 방법이고, 두 번째는 :: 연산자를 활용하는 방법입니다. 먼저 음료 메뉴(menu)와 가격(price) 정보를 담고 있는 menu 테이블을 만들어 주겠습니다. 이때 메뉴 이름과 가격의 데이터 타입은 text로 설정했습니다. WITH menu AS ( SELECT 'Americano' AS menu, '4100' AS price UNION SELECT 'Cappuccino' AS menu, '4600' AS price UNION SELECT 'Caffe Mocha' AS menu, '5100' AS price) SELECT * FROM menu 앞서 만든 ..
-
[PostgreSQL] NULL 값 대체하기 - COALESCESQL 2021. 8. 24. 21:40
NULL 값 대체하기 - COALESCE MySQL에서 IFNULL을 이용해서 NULL 값을 대체해 줄 수 있습니다. 하지만 PostgreSQL에서는 IFNULL이 아닌 COALESCE 을 이용해 NULL 값을 다른 값으로 채워줄 수 있습니다. WITH문을 이용해서 임시로 음료의 이름과 가격에 대한 정보를 담고 있는 menu 라는 테이블을 만들어 주었습니다. Caffe Mocha의 음료값은 NULL 값으로 하였습니다. WITH menu AS ( SELECT 'Americano' AS menu, 4100 AS price UNION SELECT 'Cappuccino' AS menu, 4600 AS price UNION SELECT 'Caffe Mocha' AS menu, null AS price) SELEC..
-
[PostgreSQL] GROUPING SETS/ CUBE/ ROLLUPSQL 2021. 8. 18. 00:44
그룹화 집합을 여러개 만들기 위한 함수 GROUPING SETS / CUBE / ROLLUP GROUPING SETS group by + union all + group by + union all + group by 같이 그룹화된 각 쿼리 결과를 union을 사용해서 하나의 결과로 결합해야 할 때, 쿼리문이 길어지고 쿼리문을 각각 연산해야 하는 문제가 발생합니다. 이러한 문제를 보완하기 위해 GROUPING SETS 을 사용하면 한 번에 그룹화된 쿼리 결과 집합을 생성할 수 있습니다. SELECT c1, c2, aggregate_function(c3) FROM table_name GROUP BY GROUPING SETS ( (c1, c2), (c1), (c2), () ); Example - 국가별 고객 ..
-
[PostgreSQL] UNION/ INTERSECT/ EXCEPTSQL 2021. 8. 11. 16:55
UNION, INTERSECT, EXCEPT UNION, INTERSECT, EXCEPT는 두 개 또는 그 이상의 쿼리 결과를 하나로 결합해서 보여주기 위해 사용합니다. 주의할 점은 두 쿼리 결과의 칼럼 수와 순서가 동일해야 하며, 각 칼럼의 데이터 타입은 호환 가능해야 한다는 것입니다. UNION/ UNION ALL 두 개 이상의 쿼리 결과를 단지 결합해서 하나의 결과로 보여주기 위해서 UNION을 사용합니다. 두 쿼리 결과를 합해서 보여주다 보면 중복되는 열(row)이 있을 수 있는데, 중복 열을 없애고 하나로만 보여주고 싶다면 UNION을, 중복 열도 모두 결과로 받고자 한다면 UNION ALL을 사용하면 됩니다. SELECT c1, c2, c3 FROM tableA UNION (ALL) SELEC..