데이터베이스
: 데이터의 총 집합체
- 통합된 데이터
- 저장 데이터
- 운영 데이터
- 공용 데이터
인풋
Create 생성
Update 수정
Delete 삭제
아웃풋
Read 읽기
데이터베이스 특징
- 실시간 접근이 가능
- 계속적인 변화
- 동시 공유 가능
- 내용에 의한 참조 가능
오라클 : 데이터베이스 관리 시스템 (DBMS)
데이터베이스 언어
데이터 정의어 (DDL) : 데이터베이스 스키마를 정의하거나 수정할
목적으로 사용하는 언어
대표적인 데이터 정의어
- CREATE : 데이터베이스 생성
- ALTER : 데이터베이스 변경
- DROP : 데이터베이스 삭제
- RENAME : 데이터베이스 객체 이름 변경
- TRUNCATE : 데이터베이스 데이터 삭제
데이터 조작어 (DML) : 데이터베이스 내의 데이터 연산을 위한 언어
대표적인 데이터 조작어
- INSERT : 데이터 입력
- UPDATE : 데이터 수정
- DELETE : 데이터 삭제
데이터 제어어 (DCL) : 데이터베이스 내의 데이터를 올바르고 정확하게
유지하기 위한 언어
데이터 제어어의 역할
- 보안 : 불법적인 사용자로부터 데이터 보호
- 무결성 : 데이터 정확성
- 데이터 회복 : 시스템 장애에 대비
- 병행수행 : 데이터베이스의 동시 접근 가능
데이터베이스 용어
식별자 : 여러개의 집합체를 담고있는 관계형 데이터베이스에서
각각의 구분할 수 있는 논리적인 개념
식별자의 특성
- 유일성 : 하나의 릴레이션에서 모든 해은 서로 다른 키 값을 가져야 함
- 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성
- 튜플 : 테이블에서 행을 의미 (같은 말로 레코드, 로우),
튜플은 릴레이션에서 같은 값을 가질 수 없음, 튜플의 수는 카디날리티라고 함
- 어트리뷰트 : 테이블에서 열을 의미 (같은 말로 칼럼),
어트리뷰트의 수를 디그리라고 함
데이터베이스 사용자
- 일반 사용자 : 비절차적 DML를 통한 데이터베이스 접근 가능
- 응용 프로그래머 : 프로그래밍 언어에 DML을 삽입하여 데이터베이스에 접근
- 데이터베이스 관리자(DBA)
오라클 select문 조회
셀랙션, 프로젝션, 조인
1. 셀랙션 : 행 단위로 조회
2. 프로젝션 : 열 단위로 조회
3. 조인 : 두 개 이상의 테이블을 사용하여 조회
- 조회하기
1) select절
(select문은 데이터를 조회하는데 사용)
select 열이름1, 열이름2, 열이름3 from 테이블 이름;
ex> select * from emp;
---> "*"는 전체 열을 의미함
ex>
desc emp;
desc dept;
desc salgrade;
select * from emp;
select ename from emp;
select ename, job from emp;
select ename, sal, comm from emp;
select ename, sal, sal*12+comm, comm from emp;
(실제 자료는 오라클이라는 데이터베이스에 저장)
- distinct : 중복열 제거하기
같은 내용이 두 개 이상일 경우 중복 행은 한개만 남겨두고
나머지는 출력하지 않음
- 열과 연산식
하나 이상의 열, 숫자, 연산식(1칙연산)을 사용할 수 있음
ex> select ename, sal, sal*12+comm, comm from emp;
- 별칭 설정하기 (as 별칭)
ex> sal*12+comm as annsal
- order by 절
원하는 컬럼 기준으로 오름차순, 내림차순 정렬하기
- 정렬옵션
asc : 오름차순
desc : 내림차순
select * from emp
order by 열 이름 정렬옵션 (기본값은 오름차순)
ex>
select ename, comm, sal from emp order by sal;
select * from emp order by deptno asc, sal desc;
2) WHERE 절
: 특정 조건을 기준으로 원하는 행을 출력
select * from emp
where deptno = 10;
- and, or 연산자
부서 번호가 30이고 job은 SALESMAN일 때
select * from emp
where deptno=30 and job='SALESMAN';
3) 연산자 종류
- 산술 연산자
+,-,*,/
- 비교 연산자
(대소 비교 연산자)
A>B, A>=B, A<B, A<=B
- 등가비교 연산자
A=B(A와 B가 같나요?), A!=B(A와 B가 다른가요?),
A<>B(A와 B가 다른가요?), A^=B(A와 B가 다른가요?)
- 논리부정 연산자
NOT
ex> select * from
where not sal = 3000;
- IN연산자 : 특정 열에 해당하는 조건을 여러개 지정할 때 사용
ex>
where job = 'MANAGER' or job = 'SALESMAN'
where job in ('MANAGER', 'SALESMAN');
부서 번호가 10번 또는 20번인 사원 정보를 출력
where deptno in(10, 20);
ex>
select ename, deptno from emp where deptno in(10,20);
select ename, job deptno from emp where job in('MANAGER','SALESMAN');
select ename, job deptno from emp where job not in('MANAGER','SALESMAN');
select ename, job, sal from emp where job in('MANAGER','SALESMAN', 'CLERK');
- between a and b
특정 열값의 최소, 최고 범위를 지정
ex >
급여의 열값이 2000 이상 3000 이하인 데이터 행을 출력
select ename, sal, deptno
from emp
where sal between 2000 and 3000;
급여의 열값이 2000 이상 3000 이하가 아닌 데이터 행을 출력
select ename, sal, deptno
from emp
where sal not between 2000 and 3000;
- like 연산자
일부 문자열이 포함된 데이터를 조회할 때 사용 ---> 와일드 카드랑 함께 사용
(와일드 카드 : 특정 문자 또는 문자열을 대체하거나
문자열 데이터의 패턴을 표기하는 특수문자)
_ : 어떤 값이든 상관없이 한개의 문자를 의미
% : 길이와 상관없이 모든 문자 데이터를 의미
ex>
사원의 이름이 S로 시작하는 데이터만 출력
select * from emp
where ename like 'S%'
사원의 이름에 S가 들어있는 데이터만 출력
select * from emp
where ename like '%S%'
사원의 이름이 두번째 글자가 L인 데이터만 출력
select * from emp
where ename like '_L%'
사원의 이름이 두번째 글자가 L이 아닌 데이터만 출력
select * from emp
where ename not like '_L%'
- is null / is not null
null 은 데이터 값이 비어있는 것
- 집합 연산자
select문을 통해 데이터를 조회한 결과를 하나의 집합처럼 다룸
두 개 이상의 select문 결과 값을 연결할 때 사용
union 합집합 (중복제거)
union all 합집합
minus 차집합
intersect 교집합
ex>
select empno, ename, sal,deptno from emp
where deptno = 10
union
select empno, ename, sal, deptno from emp
where deptno = 20
select empno, ename, sal,deptno from emp
where deptno = 10
union all
select empno, ename, sal, deptno from emp
where deptno = 10
select empno, ename, sal,deptno from emp
minus
select empno, ename, sal, deptno from emp
where deptno = 30
select empno, ename, sal,deptno from emp
intersect
select empno, ename, sal, deptno from emp
where deptno = 30