230607 day43 개념 정리

Jin·2023년 6월 8일
0

codenotion

목록 보기
38/90
post-thumbnail
데이터베이스 
: 데이터의 총 집합체 
- 통합된 데이터
- 저장 데이터
- 운영 데이터
- 공용 데이터 

인풋
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
profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글