PostgreSQL 데이터베이스 경로 확인 방법 1. 데이터베이스의 기본 데이터파일 경로 확인 data_directory 를 확인합니다. 실제 데이터파일은 이 폴더경로의 base 폴더 하위에 있습니다. 1 2 3 4 postgres=# show data_directory; data_directory ----------------------------- /var/lib/postgresql/10/main cs 2. 각 데이터베이스의 oid 를 확인 이 oid 를 확인해 주는 이유는 위 data_directory 경로의 base 폴더에 database_id 값으로 폴더가 생성되기 때문입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 postgres=# select oid as database..
Database
윈도우 함수 개요 기존 관계형 데이터베이스는 컬럼과 컬럼간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면,행과 행간의 관계를 정의하거나, 비교, 연산하는 것을 하나의 SQL 문으로 처리하는 것은 매우 어렵습니다. PL/SQL 같은 절차형 프로그램을 사용하거나, INLINE VIEW 를 이용해 복잡한 SQL 문을 작성해야 하던 것을 부분적이나마 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수가 윈도우 함수입니다. 분석함수(ANALYTIC FUNCTION)나 순위함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터웨어하우스에서 발전한 기능입니다.윈도우 함수는 다른 함수와는 달리 중첩해서 사용하지는 못하지만, 서브쿼리에서는 사용할 수 있습니다. 윈도우 함수의 종류 및 문법 윈도우 함..
DBA 란 Database Administration 해석하면 데이터베이스 관리 입니다.데이터베이스에 관련된 모든 관리를 하는 직업군을 의미한다고 보시면 좋습니다. DBA 가 하는일 그럼 모든 관리에는 어떤것들이 속할까요? [개발단계] 에서는 아래와 같은 일을 합니다.1. 기획안 분석 후 데이터베이스 관계모델 설계2. 테이블 생성 및 프로시져 작성3. 인덱스, 정규화, 비정규화 등의 튜닝작업 [운영단계] 에서는 아래와 같은 일을 합니다.1. 데이터베이스 관리2. 백업 그렇다면 여기에서 데이터베이스 관리에 한번더 궁금증이 들어갑니다. 어떤 관리지?먼저 말하면 데이터베이스가 갑작스런 사태로 인해 죽는사태를 사전에 예방하는 역할을 말합니다.1. 디스크관리 : 로그를 작성하던 중 디스크 풀로 인해 데이터베이스 ..
gsql 데이터베이스에 접속하여 SQL 구문을 처리하는 대화형 유틸리티입니다.또한 gsql 고유의 명령어를 통해, 객체 정보를 종료할 수 있습니다. gsql 은 DA 모드 / gsqlnet 은 CS 모드 방식으로 데이터베이스에 접속합니다. gsql 접속방법 일반적인 접속 방법입니다.gsql 명령어 뒤에 아이디와 비밀번호를 입력해서 접속할 수 있습니다.접속시 gSQL> 프롬프트가 출력되며, 옵션으로 해당명칭을 바꿀 수 있습니다.$ gsql TEST test Connected to GOLDILOCKS Database. gSQL>$ gsql TEST test --prompt M-gSQL Connected to GOLDILOCKS Database. M-gSQL> gsqlnet 명령어는 CS 모드이며 DSN 명칭..
ANSI/ISO SQL 표준에서 정의한 함수란? AGGREGATE FUNCTION GROUP AGGREGATE FUNCTION 이라고도 부릅니다.COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수들이 포함됩니다. GROUP FUNCTION 집계함수를 제외하고, 소그룹 간의 소계를 계산하는 ROLLUP, GROUP BY 항목들간 다차원적인 소계를 계산하는 CUBE, 특정항목에 대한 소계를 계산하는 GROUPING SETS 함수가 있습니다. WINDOW FUNCTION 분석함수(ANALYTIC FUNCTION)나 순위함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터웨어하우스에서 발전된 기능입니다. ROLLUP 함수ROLLUP 에 지정된 Grouping Columns 의 Li..
서브쿼리란? 하나의 SQL 문에 포함되어 있는 또 다른 SQL 문을 말합니다. 서브쿼리 사용시 주의사항 1. 서브쿼리를 괄호로 감싸서 사용한다.2. 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다.3. 서브쿼리에서는 ORDER BY 를 사용하지 못한다. 서브쿼리가 사용 가능한 곳 1. SELECT 절2. FROM 절3. WHERE 절4. HAVING 절5. ORDER BY 절6. INSERT 문의 VALUES 절7. UPDATE 문의 SET 절 서브쿼리의 분류 단일 행 서브 쿼리 서브쿼리가 단일 행 비교 연산자(=, =, )와 함께 사용할 때는 서브쿼리의 결과 건수가 반드시 1건 이하여야 합니다.만약 결과가 2건 이상인 경우 오류가 발생합니다. 단일 행 쿼리의 예제만약 T2 테이블의 ..
계층형 질의 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의를 사용합니다.계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말합니다. ORACLE 의 계층형 질의 계층형 질의 문법SELECT FROM 테이블 WHERE condition AND condition ... START WITH condition CONNECT BY [NOCYCLE] condition AND condition ... [ORDER SIBLING BY column, column ...] 문법의 의미 구문 의미 START WITH 계층 구조 전개의 시작 위치를 지정하는 구문이다. 루트 데이터를 지정이다. CONNECT BY 다음에 전개될 자식 데이터를 지정하는 구문이다. 자식 데..
집합연산자 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 중에 또 다른 방법이 있는데 집합연산자를 사용하는 방법입니다.집합 연산자는 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식을 사용합니다.집합 연산자를 사용하기 위해서는 SELECT 절의 컬럼 수가 동일하고, 동일 위치에 존재하는 컬럼의 데이터 타입이 상호 호환 가능해야 합니다. 집합 연산자의 종류 집합 연산자 연산자 의미 UNION 여러 개의 SQL 문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 출력 UNION ALL 여러 개의 SQL 문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시 INTERSECT 여러 개의 SQL 문의 결과에 대한 교집합으로 중복된 행은 하나의 행으로 출..
CHAR 와 VARCHAR CHAR 고정길이 문자열 타입으로 만약 타입의 크기만큼의 데이터가 들어오지 않은경우 이후의 공간을 스페이스로 채워넣습니다.고정길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 들어있지 않습니다. VARCHAR 가변길이 문자열 타입으로 타입의 크기만큼의 데이터가 들어오지 않더라도 이후의 공간을 스페이스로 채워넣지 않습니다.가변길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 포함되어야 합니다. 예를들어 CHAR(5) 와 VARCHAR(5) 에 데이터 ABC 가 들어오는 경우 아래처럼 저장이 됩니다. CHAR 와 VARCHAR 의 차이점 그렇다면 실제 쿼리에서 조회를 하게 되면 어떻게 될까요?GOLDILOCKS 데이터베이스에서 테스트를 진행해보았습니다. ORA..
NL Join 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행합니다.선행 테이블의 조건을 만족하는 행을 추출하여 후행 테이블을 읽으면서 조인을 수행합니다. 이 작업은 선행 테이블의 조건을 만족하는 모든 행의 수만큼 반복 수행합니다.따라서 결과행의 수가 적은 테이블을 선행 테이블로 선택하는 것이 좋습니다. 작업 방법1. 선행 테이블에서 주어진 조건을 만족하는 행을 찾음2. 선행 테이블의 조인 키 값을 가지고 후행 테이블에서 조인 수행3. 선행 테이블의 조건을 만족하는 모든 행에 대해 1번 작업 반복 수행 그림으로 좀더 세분화합니다. 1. 선행 테이블에서 조건을 만족하는 첫 번째 행을 찾음2. 선행 테이블의 조인 키를 가지고 후행 테이블에 조인 키가 존재하는지 찾음3. 후행 테이블의 인덱..