데이터를 정리, 보관하기위한 소프트웨어로 데이터의 공유, 조회, 변경, 삭제가 가능하다.DB : 데이터의 집합DBMS : DB의 데이터가 안정적으로 잘 보관될 수 있도록 하는 시스템SQL : 데이터를 다루고 관리하는데 사용하는 데이터베이스의 언어DBMS의 종류유료 :
PostgreSQL은 하나의 DBMS에 여러 개의 DB 생성 가능주로 업무적 목적에 따라 서로 다른 DB 구성각 DB마다 업무적으로 유관한 데이터를 저장기본으로 postgres 이름으로 DB 생성DBeaver에서 새 데이터베이스 연결을 통해 접속DB연결 설정에서 Dat
테이블 컬럼 정보(테이블 레이아웃) 조회 방법psql 프롬프트에서 "\\d 테이블명"을 입력하면 조회 가능컬럼명, 컬럼 데이터 타입, null 여부, default 값 등 확인 가능SELECT문 전체 문법SELECT : 출력 컬럼 대상FROM : 자료의 출처 테이블\-
중복된 행의 UNIQUE 값 출력SELECT 바로 뒤에 명시DISTINCT 뒤에 나열된 컬럼의 조합이 중복일 때 생략일 때,GRADE와 NAME컬럼의 모든 값이 중복된 경우에만 생략한다.데이터의 결합 시 사용결합할 대상 사이에 || 명시컬럼과 컬럼, 컬럼과 표현식의 결
조건에 만족하는 데이터만 선택하여 출력할 경우 사용조건식의 일반적 형태 : 대상(컬럼) + 연산자 + 비교대상(상수)문자열과 날짜 상수의 전달은 항상 홑따옴표(')와 함께 작성조건절의 문자 상수는 대소를 구분한다.AND : 나열된 조건 모두 만족OR : 나열된 조건 중
데이터의 정렬 수행ORDER BY 컬럼1 ASC|DESC, 컬럼2ASC|DESC;ASC:오름차순(생략가능), DESC:내림차순같은 학년에 대해서 키가 큰 순서대로 정렬하고 싶을 때(1차 결과에서 값이 같을 경우 2차 정렬 기준으로 추가 정렬)아래와 같이 SELECT절에
LIMIT절SQL 표준 문법 X행의 수 제한ORDER BY절 뒤에 나열정렬 후 상위 N개의 행 추출 용도로 사용 가능OFFSET을 사용하여 행 생략 가능OFFSET상위 N개의 행 생략 가능1,2위를 제외하고 3~5위까지 출력하는 예시
LIMIT절과 동일한 기능LIMIT절은 SQL표준이 아니므로 PostgreSQL은 SQL표준을 준수하기 위해 FETCH절 제공ORDER BY절 뒤에 나열정렬 후 상위 N개의 행 추출 용도로 사용 가능OFFSET을 사용하여 행 생략 가능키가 작은 순서대로 나열가장 작은
여러 테이블의 데이터를 사용할 경우 ㅆ느느 기법서로 다른 두 테이블의 데이터 결합다른 테이블의 데이터 참조CROSS JOIN모든 경우의 수, 총 N\*M개의 행 리턴N 개의 행을 가진 테이블1과 M개를 가진 테이블2의 카티션 프로덕트 발생조인 조건을 생략하거나 부적합할
함수input과 output과의 관계 정의함수의 분류단일행 함수 : 하나의 행이 삽입되면 하나의 결과가 리턴복수행 함수(그룹 함수) : 여러 개의 행이 삽입되면 하나의 결과 리턴count행의 수 세기NULL은 세지 않음숫자, 문자, 날짜 컬럼 모두 카운트 가능sum총
6개의 구문(SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY) 중 4번째 위치그룹별 그룹 함수의 사용테이블 명이 동일하므로 반드시 테이블 별칭 필요그룹별(부서번호) 한 개의 행만 리턴더 세분화 시키고 싶으면 그룹을 세분화 시키면 된
GROUP BY 절 뒤에 사용GROUP 연산 수행 후 조건 전달 시 사용WHERE 절은 그룹 함수 사용 불가일반 조건의 경우 WHERE/HAVING 모두 사용 가능하나 WHERE절 먼저 수행하는 것이 유리제외할 대상을 제외하고 그룹연산을 수행하는 것이 효율적이기 때문
GROUP BY 절과 함께 사용여러 형태의 그룹 정보 동시 전달 가능GROUP BY 절과의 결합그룹 LEVEL을 직접 전달컬럼 순서가 달라져도 동일한 데이터 셋 출력전체 합을 나타내는 행 추가grouping sets안에 전체를 의미하는 () 추가GROUPING SET과
GROUP BY 절과 함께 사용GROUP BY 절과의 결합여러 형태의 그룹 정보 동시 전달 가능GOURPING SETS와는 달리 컬럼끼리의 그룹을 직접 전달할 필요 없음ROLLUP에 나열된 컬럼 순서에 따라 다른 결과ROLLUP 컬럼 수 + 1개 레벨(집단) 생성ROL
GROUPING SETS, ROLLUP과 같은 기능GROUP BY 절과 함께 사용GROUP BY 절과의 결합여러 형태의 그룹 정보 동시 전달 가능GROUPING SETS와는 달리 묶을 그룹을 직접 전달할 필요 없음컬럼 순서가 변경되어도 동일한 결과컬럼 수가 N일 때 2
두 개 이상의 SELECT 결과에 대한 처리를 가능하게 하는 연산자합집합, 교집합, 차집합두 집합 사이에 작성두 집합의 컬럼 수, 각 컬럼마다 데이터 타입 일치해야 가능두 집합의 합집합을 나타내는 연산자UNION의 경우 중복된 값을 제거하여 하나만 출력UNION ALL
쿼리 안에 사용되는 쿼리사용 목적상수를 대체하기 위해 서브쿼리 사용조인의 대체 연산테이블을 한 번 SCAN하는 것으로 표현이 불가능한 정보 출력앞뒤로 괄호로 묶어주어야 함서브쿼리의 형태(사용 절에 따라)스칼라 서브쿼리SELECT 절에 사용컬럼의 대체 표현식SELECT
테이블과 비슷한 조회 및 수정이 가능한 객체테이블과는 다르게 별도의 저장공간을 갖는 객체 아님쿼리의 결과를 마치 하나의 테이블처럼 사용하기 위한 목적FROM절에 사용뷰 생성쿼리 안의 뷰의 형태FROM절에 사용하는 서브쿼리(조인을 통해 조건 전달)대소비교 가능사용 방법사
서브쿼리 연산자로 주로 사용서브쿼리 결과의 TRUE/FALSE 값을 메인쿼리에 전달메인쿼리의 WHERE절에 사용EXISTS 연산결과가 1이면 참이고, 이 때 행을 출력한다.사용예제 소속 직원이 있는 부서정보만 출력소속 직원이 없는 부서정보만 출력(NOT EXISTS로
Transaction Control Language트랜잭션을 제어하는 언어commit, rollback, savepointcommit : 데이터에 대한 변경 사항 저장rollback : 데이터 변경 사항이 취소되어 데이터의 이전 상태로 복구savepoint : 지정한