Database/PostgreSQL

본 게시글은 Datacamp의 Introduction to SQL 코스와 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하며 제가 기억할 수 있도록 작성한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. SELF JOIN 동일 테이블 사이의 조인. 즉, 하나의 테이블이 특정 컬럼을 기준으로 자기 자신과 조인하는 것을 말한다. ex. country_code 컬럼을 기준으로 populations 테이블을 셀프 조인하여 각각을 p1, p2라고 명명하고, p1의 country_code, size(두 컬럼의 공통 컬럼으로 size2010, size2015의 두 개의 컬럼으로 표현할 것)을 조회 SELECT p1.country_code, p1.size size2010, p2.size size2015 FRO..
PostgreSQL을 이용하며 실습해보는 과정에서 테이블을 생성한 후 수정해야하는 상황이 생길 때 헷갈렸던 부분들을 따로 정리했다. 기존에 사용하던 MySQL(MariaDB)의 명령어도 따로 정리할 생각이다. 테이블명 변경하기 ALTER TABLE [기존 테이블명] RENAME TO [변경될 테이블명]; 기존 테이블에 컬럼 추가하기 ALTER TABLE [테이블명] ADD [컬럼명] [데이터 타입]; 컬럼 제거하기 ALTER TABLE [테이블명] DROP [컬럼명]; 컬럼명 변경하기 ALTER TABLE [테이블명] RENAME COLUMN [기존 컬럼명] TO [변경될 컬럼명]; 컬럼의 데이터 타입 변경하기 ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] TYPE [변경될 데이터 ..
본 게시글은 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하며 제가 기억할 수 있도록 작성한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. 1. payment 테이블에서 단일 거래의 amount 액수가 가장 많은 고객들의 customer_id를 추출하라. 단, customer_id의 값은 유일해야한다. 내가 처음 생각했던 답(amount 액수가 가장 많은 단일 레코드의 customer_id) : 오답 SELECT customer_id FROM payment p ORDER BY amount DESC LIMIT 1; 문제가 요구하는 답(amount 액수가 가장 많은 레코드들의 customer_id 다수) SELECT DISTINCT customer_id FROM payment p1 WHERE p..
본 게시글은 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하며 제가 기억할 수 있도록 작성한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. IS NULL 특정 컬럼 혹은 값이 널 값인지 판단하는 연산자이다. 널 값이 아닌지를 확인하기 위해서는 NOT 연산자와 함께 사용해 IS NOT NULL의 형태로 사용할 수 있다. 다른 데이터 타입들의 경우에는 값을 확인할 때, '=', '!=', '' 등을 사용하는 것과 달리 IS를 사용해야 한다는 점에 주의하자. SELECT [컬럼 리스트] FROM [테이블명] WHERE [컬럼명] IS NULL; -- 해당 컬럼값이 null인 레코드 조회 SELECT [컬럼 리스트] FROM [테이블명] WHERE [컬럼명] IS NOT NULL; -- 해당 컬럼값..
본 게시글은 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하며 제가 기억할 수 있도록 작성한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. IN 특정 집합(컬럼 혹은 리스트)에서 특정 집합 혹은 리스트가 존재하는지 판단하는 역할을 수행한다. IN 연산자 뒤에는 괄호를 통해 묶인 일련의 값들로 구성된 집합, 서브쿼리가 올 수 있다. 이 데이터 내에 일치하는 값을 조건으로 줄 때 'WHERE [조건컬럼명] IN [집합]' 혹은 'WHERE [조건컬럼명] IN [서브쿼리]'의 형태로 나타낼 수 있다. SELECT [컬럼 리스트] FROM [테이블명] WHERE [컬럼명] IN (값1, 값2, ..); SELECT [컬럼 리스트] FROM [테이블명] WHERE [컬럼명] IN (SELECT .....
본 게시글은 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하며 제가 기억할 수 있도록 작성한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. LIMIT (PostgreSQL, MySQL 등에서 지원) 특정 집합을 출력할 때 출력하는 행의 수를 한정시키는 역할을 수행한다. 부분 범위 처리시에 사용된다. 아래와 같은 형식으로 사용된다. SELECT [조회 컬럼1], [조회 컬럼2], ... FROM [테이블명] LIMIT [출력할 행의 수]; SELECT [조회 컬럼1], [조회 컬럼2], ... FROM [테이블명] LIMIT [출력할 행의 수] OFFSET [출력하기 시작할 위치]; OFFSET 시작 위치를 지정할 때는 OFFSET 키워드를 사용할 수 있다. 이 OFFSET은 시작하고자 하는 ..
사실 DataCamp를 통해 SQL Fundamentals 과정을 따라가면서 추가적인 결제가 필요한 상황에 마주하게 됐다. 고민 끝에 이전에 결제해두었던 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하는 것으로 대체하여 진행하기로 하였다. 그 과정에서 해당 강의가 SQL 실습을 위해 사용하는 PostgreSQL을 설치하게 되었다. 강의는 SELECT문의 기초부터 시작하지만 이의 내용들은 기존에 작성했던 글에 내용을 추가하는 방식으로 진행하고, JOIN에 대한 부분부터 새로 글을 작성하려 한다. OUTER JOIN 특정 컬럼을 기준으로 매칭된 집합을 출력하지만 한 쪽의 집합은 모두 출력하고 다른 한쪽의 집합은 매칭되는 컬럼의 값만을 출력한다. OUTER JOIN은 대표적으로 LEFT/RIGHT/FU..
본 게시글은 Datacamp의 Introduction to SQL 코스와 패스트캠퍼스의 SQL/DB 올인원 패키지 강좌를 수강하며 제가 기억할 수 있도록 작성한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. JOIN SQL에서는 JOIN을 통해 여러 개의 테이블의 레코드를 즉, 두개 이상의 테이블을 조합해 하나의 테이블로 표현할 수 있다. 조인의 종류는 다음과 같다. INNER JOIN SELF JOIN OUTER JOIN(LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN) CROSS JOIN NATURAL JOIN 이 글에서는 INNER JOIN에 대해서 정리하고, 부가적으로 CASE문과 INTO 키워드에 대해 정리할 것이다. 추후에 새로운 글을 통해 OU..
이 게시글은 이틀 동안 DataCamp의 Introduction to SQL 코스의 내용을 제가 기억할 수 있도록 정리한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. GROUP BY SQL에서는 GROUP BY절을 통해 그룹화된 정보를 도출해낼 수 있다. 'GROUP BY 그룹화 조건이 되는 컬럼명'의 형태로 사용된다. 아래의 쿼리를 실행하면 각 성별에 따른 직원 수를 조회할 수 있다. SELECT sex, count(*) FROM employees GROUP BY sex; * SELECT 절에서 GROUP BY 절에 사용하지 않은 컬럼을 사용하려고 하면 오류를 발생시킨다. ex. 개봉 연도별 영화의 개봉 연도와 그 해에 개봉한 영화의 개수 조회 SELECT release_year, COUNT(*..
이 게시글은 이틀 동안 DataCamp의 Introduction to SQL 코스의 내용을 제가 기억할 수 있도록 정리한 것으로, 아주 기초적인 내용으로 구성되어 있습니다. - 패스트캠퍼스의 SQL 강의 내용이 추가되어 있습니다. DISTINCT SELECT문을 통해 데이터를 조회할 때 중복되는 데이터를 제거하고 가장 첫번째 행만 출력될 수 있게 한다. SELECT DISTINCT title FROM films; 여러 개의 컬럼을 조회할 때는 ','를 구분자로 하여 컬럼명을 나열할 수 있다. SELECT DISTINCT title, release_year FROM films; DISTINCT ON(PostgreSQL 고유 문법) 여러 개의 컬럼을 조회하는데 해당 컬럼만 중복값을 제외하여 조회하고 싶을 때..
devYH
'Database/PostgreSQL' 카테고리의 글 목록