반응형

Database/개념정리 14

[DataBase] PostgreSQL pg_dump 사용법 (백업 및 리스토어)

DB 백업 (pg_dump) PostgreSQL에서 pg_dump 기능을 이용해 데이터베이스 백업하는 방법을 알아보자. (필자는 Windows 환경에서 진행했다.) 먼저 프롬프트 창을 이용해 PostgreSQL에서 bin 폴더로 디렉토리를 이동한다. (cd 이후에 전체 경로를 입력해서 바로 이동할 수도 있다.) 이후 pg_dump 기능을 사용하면 되는데 기본적인 구성은 다음과 같다. pg_dump -h (호스트명) -U (유저명) -p (포트번호) -d (DB이름) > (덤프파일위치+파일명) 부가적으로 자세한 옵션들은 --help 명령어를 통해 확인할 수 있다. 한글 버전으로 보면 $ pg_dump --help pg_dump 프로그램은 데이터베이스를 텍스트 파일 또는 기타 다른 형태의 파일로 덤프합니다...

[DataBase] Oracle SQL - DCL (데이터 제어어) GRANT / REVOKE

데이터 제어어(Data Control Language)는 말 그대로 데이터를 제어하기 위한 언어이다. 이 데이터 제어어에는 권한을 관리하기위한 GRANT / REVOKE 등의 언어가 있다. 권한에는 시스템 권한과 객체 권한이 있는데 각 권한별로 권한을 어떻게 부여하고 회수하는지 알아보자. 1. 시스템 권한 -오라클 데이터베이스의 시스템 권한은 사용자 생성과 정보 수정 및 삭제, 데이터베이스 접근, 오라클 데이터베이스의 여러 자원과 객체 생성 및 관리 등의 권한을 포함한다. - 데이터베이스 접속, 사용자 및 오브젝트 생성 등 기본적으로 다음과 같은 권한들이 있다. 시스템 권한 분류 시스템 권한 설명 USER (사용자) 관련 권한 CREATE USER 사용자 생성 권한 ALTER USER 생성된 사용자의 정..

[DataBase] Oracle SQL - DML (데이터 조작어) SELECT / INSERT / UPDATE / DELETE

SQL에서 가장 많이 쓰이는 DML에 대해 알아보자. DML (Data manipulation language) - 데이터 조작어 - 데이터를 조작하는데 사용되는 언어 - SELECT : 선택 - INSERT : 삽입 - UPDATE : 수정 - DELETE : 삭제 1.SELECT SELECT문은 앞에서 다루었기 때문에 이전 포스팅을 참고하기 바란다. 또한 사용되는 여러 함수들도 이전 포스팅을 참고하면 되겠다. 2021/02/02 - [Database/개념정리] - [DataBase] Oracle SQL 기본 문법 - 1 (SELECT, FROM) [DataBase] Oracle SQL 기본 문법 - 1 (SELECT, FROM) 위의 예시 테이블을 이용하여 기본 문법을 알아보도록 하자. 1. SELE..

[DataBase] Oracle SQL - DDL (데이터 정의어) CREATE / ALTER / DROP / RENAME / TRUNCATE

데이터 정의어 (DDL: Data Definition Language) - 데이터베이스는 데이터 관리 및 보관을 위해 다양한 객체를 제공한다. 이러한 객체를 새로 만들거나 기존에 존재하던 객체를 변경하거나 삭제하는 등의 기능을 수행하는 명령어를 데이터 정의어라고 한다. DDL 의 종류 - CREATE : 객체를 생성 - ALTER : 이미 생성된 객체를 변경 - DROP : 객체를 삭제 - RENAME : 이름 변경 - TRUNCATE : 데이터 삭제 1. CREATE - CREATE [계정].[테이블] ([열이름] [자료형] [제약조건] , [열2이름] [자료형2] [제약조건2], ... ); - 소유계정이름을 생략하고 CREATE TABLE 명령어를 사용하면 현재 접속해 있는 계정 소유의 테이블이 만..

[DataBase] Oracle SQL - 조인 정리(등가 조인 / 비등가 조인 / 외부 조인(LEFT/RIGHT/FULL JOIN) / 셀프 조인)

집합 연산자와 조인의 차이점 - 조인은 두 개 이상의 테이블을 연결하여 하나의 테이블 처럼 출력할 때 사용하는 방식이다. - 집합연산자를 사용한 결과는 두 개 이상 SELECT 문의 결과 값을 세로로 연결한 것이고, 조인을 사용한 결과는 두 개 이상의 테이블 데이터를 가로로 연결 한 것이라고 볼 수 있다. FROM 절에는 여러 테이블을 명시할 수 있다. select * from emp, dept order by empno; 단순히 FROM절에 테이블을 두 개 입력했을 때는 위와 같이 무수히 많은 데이터들이 출력된다. 이는 FROM절에 함께 명시한 각 테이블을 구성하는 행이 모든 경우의 수로 조합되어 출력되기 때문이다 때문에 조건식을 지정해 주어야 하는데 이 때에는 보통 외래키를 이용하여 조건식을 설정해준..

[DataBase] Oracle SQL 집합 연산자 UNION / UNION_ALL / MINUS / INTERSECT

집합연산자 - 열의 개수와 순서가 모든 쿼리에서 동일해야 한다. - 데이터 형식이 호환되어야 한다. - SELECT (열) FROM (테이블) WHERE (조건) [집합연산자] SELECT (열) FROM (테이블) WHERE (조건) UNION : 연결된 SELECT문의 결과 값을 합집합으로 묶어 준다. 결과 값의 중복은 제거된다. UNION ALL : 연결된 SELECT문의 결과 값을 합집합으로 묶어 준다. 중복된 결과 값도 제거 없이 모두 출력 된다. MINUS : 먼저 작성한 SELECT문의 결과 값 중 다음 SELECT 문에 존재하지 않는 데이터만 출력된다. (차집합) INTERSECT : 먼저 작성한 SELECT문과 다음 SELECT 문의 결과 값이 같은 데이터만 출력된다. (교집합) 위 4개..

[DataBase] Oracle SQL 내장 함수 - 5 (형 변환 함수 2) DECODE / CASE

1. DECODE 함수 - 특정 열 값이나 데이터 값에 따라 어떤 데이터를 반환할 지 정할 때 사용 - DECODE( [검사 대상이 될 열 또는 데이터, 연산이나 함수의 결과], [조건1], [데이터가 조건 1과 일치할 때 반환할 결과], [조건2], [데이터가 조건 2과 일치할 때 반환할 결과], .... [조건n], [데이터가 조건 n과 일치할 때 반환할 결과], [위 조건들에 부합하는 경우가 없을 때 반환할 결과] ) - 즉 DECODE( 컬럼, 조건1, 결과1, 조건2, 결과2, ... 조건n, 결과n, 예외 ) 라고 할 수 있다. EMP 테이블에서 1) 직책이 MANAGER인 사람은 급여의 10% 인상 2) SALESMAN인 사람은 급여의 5% 인상 3) ANALYST인 사람은 그대로 4) 나머..

[DataBase] Oracle SQL 다중 행 함수(그룹 함수) 와 데이터 그룹화 - SUM/AVG/COUNT/MAX/MIN/GROUP BY/HAVING

다중 행 함수란 여러 데이터들이 하나의 함수에 들어가 하나의 결과값을 반환하는 함수를 의미한다. 따라서 다중 행 함수를 사용한 SELECT 절에는 기본적으로 여러 행이 결과로 나올 수 있는 열을 함께 사용할 수 없다. 이 다중행 함수의 종류에 대해 알아보자. SUM 함수 - 지정한 데이터의 합 반환 - SUM( [DISTINCT, 또는 ALL 또는 아무값도 지정하지 않음] [합계를 구할 열이나 연산자, 함수를 사용한 데이터] ) select sum(distinct sal), sum(all sal), sum(sal) from emp; 중복을 제외한 급여의 합, 모든 급여의 합, 급여의 합이 차례로 구해지는 것을 볼 수 있다. AVG 함수 - 지정한 데이터의 평균값 반환 - AVG( [DISTINCT, 또는..

[DataBase] Oracle SQL 내장 함수 - 4 (형 변환 함수) TO_CHAR / TO_NUMBER / TO_DATE / NVL

형 변환 함수 - 각 데이터에 지정된 자료형을 바꾸어 주는 함수를 형 변환 함수라고 한다. select empno, ename, empno + '500' from emp where ename = 'SMITH'; 위와 같이 empno (숫자) 와 '500'(문자열) 을 더한 값을 출력했는데 값이 7869로 정확하게 나왔다. 이는 자동 형 변환이라고 불리는 암시적 형 변환이 발생했기 때문이다. 숫자처럼 생긴 문자 데이터는 숫자 데이터로 암시적 형 변환이 일어나지만 그 외의 경우에는 잘 동작하지 않는다. select 'ABCD' + empno, empno from emp where enmae = 'SMITH'; 이외에 사용자가 직접 자료형을 지정해 주는 명시적 형 변환 방법이 있다. 1. TO_CHAR 함수 ..

[DataBase] Oracle SQL 내장 함수 - 3 (날짜 함수) ADD_MONTHS / MONTH_BETWEEN / NEXT_DAY / LAST_DAY

1. ADD_MONTHS - 몇 개월 이후 날짜를 구하는 함수 - ADD_MONTHS( [날짜 데이터] , [더할 개월 수] ) select sysdate, add_months(sysdate,3) from dual; SYSDATE 는 현재 날짜를 의미한다. select hiredate, add_months(hiredate, 120) as "10주년" from emp; 위와 같이 칼럼을 불러와 입사 10주년 날짜를 구할 수도 있다. 2. MONTH_BETWEEN 함수 - MONTH_BETWEEN( [기준 날짜] , [뺄 날짜] ) - 두 날짜 간의 개월 수 차이를 구하는 함수 select hiredate, sysdate, months_between(hiredate,sysdate) from emp; 고용일로..

반응형