데이터 베이스 시스템
- 데이터베이스: 데이터를 한 곳에 체계적으로 모아 놓은 것
- DBMS: 데이터를 관리하고 사용자의 요구를 처리하는 SW
- 데이터베이스 서버: 데이터베이스 및 DBMS가 설치된 컴퓨터
사용자는 DB관리 툴과 같은 SW를 통해 DBMS와 소통, 이때 SQL이라는 표준화 된 언어를 통해서 요구사항을 전달한다.
데이터베이스에 정보를 저장하는 기본 단위는 테이블(table)이며, 테이블의 집합이 데이터베이스이다.
사용자가 만든 테이블 외, 데이터베이스 자체를 관리하기 위한 테이블도 존재, 이는 시스템 카탈로그, 또는 데이터 사전이라고 한다.
데이터베이스 사용자
- 데이터베이스의 사용자는 크게 최종 사용자, 응용 프로그래머, 데이터베이스 관리자로 구분
- 최종 사용자: 구축 된 데이터베이스를 이용하는데 관심이 있음
- 초보 사용자: 작성된 프로그램을 통해 동일 작업을 주로 반복해서 수행
- Ex) 쿠팡에서 물건 구매, 반품등 동일한 작업을 반복해서 수행
- 자신이 데이터 베이스를 사용하는지 모르는 경우도 있음
- 응용 프로그래머: DB를 이용한 앱 개발자, 규모가 다양
- DBA(Database Administrator): 데이터베이스를 유지 보수 하는 사람

데이터베이스 언어
- SQL(Structured Query Language)
- DBMA와 사전에 약속된 언어로 소통을 해야함
- 관계형 DB언어는 SQL
- SQL언어는 표준화 됨 -> DBMS 종류 상관 없이 동일한 언어로 사용 가능
CDB와 PDB
- PDB: 우리가 알고 있는 데이터베이스
- CDB: 여러 PDB를 담을 수 있는 더 큰 데이터베이스

SQL Plus를 이용한 데이터베이스 실습
- SQL Plus 화면에 표시되는 정보를 보다 편리하게 확인하기 위해 다음의 네 가지 명령문을 실행
set linesize 120 //화면에 표시되는 실행 결과의 가로길이 지정
set pagesize 30 //화면에 표시되는 실행 결과의 세로길이 지정
set NULL null //특수한 값 NULL을 null로 표시
set colsep | //컬럼과 컬럼을 구분하는 표시로 | 를 사용
SQL- 오라클 DBMS의 버전 확인
select banner from v$version ;
SQL- 현재 접속한 사용자의 계정 이름 확인
select user from dual ;
SQL- 설치된 CDB 데이터베이스의 이름 확인
select name from V$database ;
SQL- 현재 접속해 있는 PDB 데이터베이스의 이름 확인
show con_name ; //Container Name
SQLCDB 전체의 PDB 목록을 확인하고 싶으면 다음과 같이 실행
select name from V$PDBS ;
SQL- EMPPDB를 구성하는 테이블스페이스 이름과 데이터 파일의 위치 확인
select tablespace_name, file_name from dba_data_files ;
SQL- 현재 접속한 데이터베이스에는 어떤 테이블들이 저장되어 있는지 확인
select table_name
2 from user_tables
3 order by table_name ;
SQL- 사원(EMP) 테이블이 저장되는 테이블스페이스는 어디인지 확인
SELECT table_name, tablespace_name FROM dba_tables
2 WHERE table_name = 'EMP' ;
SQL- 부서(DEPT) 테이블은 어떤 정보를 관리하는지 확인
desc dept ;
SQL- 부서(DEPT) 테이블에 저장된 부서 데이터를 확인
select *
2 from dept ;
SQL- 사원(EMP) 테이블의 구조 확인
desc emp ;
SQL- 사원(EMP) 테이블에 저장된 사원 데이터를 조회
select *
2 from emp ;
SQL- 급여(SAL)를 2000 이상 받는 사원의 이름(ename)과 담당업무(job), 급여액(sal)을 조회
SELECT ename, job, sal
2 FROM emp
3 WHERE sal >= 2000 ;
SQL- 작업 종료
exit ;
SQLTips
명령문은 한 줄에 작성해도 되고, 여러 줄에 나누어 작성해도 됨
명령문에서 사용되는 명령어, 테이블 이름 등은 대소문자를 구분하지 않음. 예를 들면 emp 와 EMP는 같은 이름
테이블 안에 있는 문자열 값들을 비교할 때는 대소문자를 구분하니 주의가 필요함
일반적으로 SQL 명령문 뒤에는 세미콜론(;)을 붙여서 명령문의 끝을 나타냄