<수업내용>
데이터(Data)
어떠한 자료 혹은 실제 값을 의미한다.
ex) 에베레스트 높이 : 8848m (8848 미터라는 데이터)
정보(Infromation)
데이터를 기반으로 하여 의미를 부여한 것을 말한다.
ex) 에베레스트는 세계에서 가장 높은 산
데이터베이스(DataBase(DB))
한 조직에 필요한 정보를 여러 응용시스템에서 공용할 수 있도록 논리적으로 연관된 데이터를 모으고, 중복된 데이터를 최소화하여 구조적으로 통합/저장 해 놓은 것
데이터베이스(DataBase(DB)) 정의
1. 운영 데이터(Operational Data)
-> 조직의 목적을 위해 사용되는 데이터
-> 데이터 자체가 아닌 별도의 목적을 가진 데이터
2. 공용 데이터(Share Data)
-> 공동으로 사용되는 데이터
3. 통합 데이터(Integerated Data)
-> 중복을 최소화하여 종복으로 인한 데이터 불일치 현상을 제거
4. 저장 데이터(Stored Data)
-> 컴퓨터 저장 장치에 저장된 데이터
데이터베이스(DataBase(DB)) 의 특징
1. 실시간 접근성
-> 사용자가 데이터를 요청하면 실시간으로 결과를 서비스한다.
2. 계속적인 변화
-> 데이터 값은 시간에 따라 변화된다.
3. 동시 공유
-> 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시 공유된다.
4. 내용에 따른 참조
-> 데이터 베이스에 저장된 데이터는 데이터의 물리적 위치가 아니라 데이터 값에 따라 참조된다.
DBMS(DataBase Management System)
데이터 베이스에서 데이터를 추출, 조작, 정의, 제어 등을 할 수 있게 해 주는 데이터베이스 전용 관리 프로그램
방대한 데이터는 있으나 관리자가 없으면 결국 데이터를 검색, 수정 , 삭제 등의 업무 불편하기 때문에 DBMS 존재함
DBMS 종류 -> MS-SQL, MY-SQL, Maria, Oracle, 몽고, postgresql....
ORACLE DBMS
미국 Oracle 사의 관계형 데이터 베이스 관리 시스템
PL/SQL, 대용량 데이터 처리 기능 강력
12c 버전까지 출시됨
Oracle DBMS 에디션
Enterprise Edition : 기업용
-> 가장 강력하고 다양한 기능을 제공
Standard Edition : 부서용
-> 부서용 인터넷 애플리케이션 개발, 관리하기 위한 시스템
Personal Edition : 교육이나 클라이언트 작업용
-> 데스크톱 컴퓨터용
Lite Edition : 모바일용 데이터베이스
Express Edition : 무료 배포용
SQL(Structured Query Language)
-> Structrued Query Language의 약자(구조화된 질의 언어)
-> 데이터베이스를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
기본 SQL 문법 종류
-> 데이터 정의어 : DDL (Data Definition Language)
-> 데이터 조작어 : DML (Data Manipuilation Language)
-> 데이터 제어어 : DCL (Data Control Language)
-> 트랜잭션 제어어 : TCL (Transaction Control Language)
DDL(Data Denfinition Language)
-> 데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용하는 언어
-> DB 관리자 또는 설계자가 사용함
-> CREATE(객체 생성), ALTER(객체 수정), DROP(객체 삭제), TRUNCATE(객체 초기화)
DML(Data Manipuilation Language)
-> 데이터를 조작하기 위해 사용하는 언어
-> 데이터의 삽입, 삭제, 수정, 조회 등의 동작을 제어
-> 사용자와 DB시스템 간의 인터페이스를 직접 제공하는 언어
->INSERT(데이터 삽입), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 조회)
DQL(Data Query Language)
->데이터를 검색(추출) 하기 위해 사용되는 언(SELECT)
DCL(Data Control Language)
-> 사용자의 권한이나, 관리자 설정 등을 처리
-> GRANT(권한 부여), REVOKE(권한 삭제)
TCL (Transaction Control Language)
-> 트랜잭션 관리 처리 언어
-> COMMIT(트랜잭션 종료 처리 후 저장), ROLLBACK(트랜잭션 취소), SAVEPOINT(임시저장)
오라클 데이터 타입
숫자
NUMBER : 숫자
@ NUMBER([P, S])
P : 표현할 수 있는 전체 숫자 자릿수(1 ~ 38)
S : 소수점 이하 자릿수(-84 ~ 127)
-> 1234.567
데이터 타입 저장되는 값
NUMBER(7,3) 1234.567
NUMBER(7) 1235
NUMBER 1234.567
NUMBER(7,1) 1234.6
NUMBER(5,-2) 1200
#문자 타입
(자바에서 문자는 1글자 - > 오라클에서 문자는 자바의 문자열)
CHAR(size)
-> 최대 크기 : 2000Byte -> 고정 길이 문자
-> size : 포함될 문자(열) 크기
-> 지정한 크기보다 작은 문자열이 입력되고 남는 공간은 공백으로 채움
-> ' '를 사용하여 데이터를 표기
ex)
ORACLE
데이터 타입 저장되는 값
CHAR(6) ORACLE
CHAR(9) ORACLE <- 공백 3칸 들어감
CHAR(3) error
송승헌
CAHR(9) 송승헌 (한글 3 byte)(enterprise 버전 2 byte)
CAHR(12) 송승헌 <- 공백 3칸 들어감
CHAR(6) error
VARCHAR2
-> 가변 길이 문자 최대 4000Byte
ORACLE
데이터 타입 저장되는 값
VARCHAR(6) ORACLE
VARCHAR(9) ORACLE
VARCHAR(3) error
NCAHR, NVARCHAR2, LONG(2GB) , CLOB(4GB)
DATE
-> 일자(세기/년/월/일) 및 시간(시/분/초) 정보를 관리
-> 기본적으로 화면에 년/월/일 정보만 표기됨
-> 날짜의 연산 및 비교가 가능
연산 결과 타입 설명
날짜+숫자 DATE 작성한 숫자만큼 며칠 후
후
날짜-숫자 DATE 작성한 숫자만큼 며칠 전
전
날짜-날짜 NUMBER 두 날짜의 차이(일수)
날짜+숫자/24 DATE 날짜+시간의 의미
DQL(Data Query Language)
-> 데이터 검색(추출) 하기 위해 사용되는 언어로 DML에 속한 언어(SELECT)
-> 데이터를 조회한 결과 ResultSet이라고 함
-> SELECT 구문에 의해 반환된 행들의 집합
-> ResultSet은 0개 이상의 행이 포함될 수 있음
-> 특정 칼럼이나, 특정 행을 조회하는 것도 가능하며, 여러 테이블에서 특정행, 특정 칼럼 조회도 가능함
-> 정렬도 가능함
SELECT 기본 작성법
1. SELECT 칼럼 이름 FROM 테이블 이름;
2. SELECT 칼럼 이름 FROM 테이블 이름 WHERE 조건;
실습
1. JOB 테이블에서 JOB_NAME의 정보만 출력
2. DEPARTMENT 테이블의 내용 전체 출력
3. EMPLOYEE 테이블에서 이름(emp_name), 이메일(email), 전화번호(phone), 고용일(hire_date)만 출력
4. EMPLOYEE 테이블에서 고용일, 이름, 월급(salary)을 출력
5. EMPLOYEE 테이블에서 월급이 2500000 이상인 사람의 EMP_NAME과 SAL_GRADE 출력(> 크다, <작다, >=)
6. EMPLOYEE 테이블에서 월급이 3500000 이상이면서 JOB_CODE가 'J3'인 사람의 EMP_NAME, PHONE 출력
select job_name from job;
--1. JOB 테이블에서 JOB_NAME의 정보만 출력
select * from department;
--2. DEPARTMENT 테이블의 내용 전체 출력
select emp_name,email,phone,hire_date from employee;
--3. EMPLOYEE 테이블에서 이름(emp_name), 이메일(email), 전화번호(phone), 고용일(hire_date)만출력
select hire_date, emp_name, salary from employee;
--4. EMPLOYEE 테이블에서 고용일, 이름, 월급(salary)을 출력
SELECT EMP_NAME,SAL_LEVEL FROM EMPLOYEE where SALARY >= 2500000;
--5. EMPLOYEE 테이블에서 월급이 2500000 이상인 사람의 EMP_NAME 과 SAL_GRADE 출력(>크다, <작다, >=)
SELECT EMP_NAME,PHONE FROM EMPLOYEE WHERE SALARY >= 3500000 and JOB_CODE = 'J3';
--6. EMPLOYEE 테이블에서 월급이 3500000 이상이면서 JOB_CODE가 'J3' 인 사람의 EMP_NAME, PHONE 출력
비교 연산자
-> 표현식 사이의 관계를 비교하기 위해 사용하고, 결과는 논리 결과 중 하나로 됨(TRUE/FALSE/NULL)
-> 단, 비교하는 두 컬럼 값/표현식은 서로 동일한 데이터 타입이어야 한다.
연산자
= 같다
>, < 크다/작다
>=,=< 크거나 같다/작거나 같다
!=,^=,<> 같지 않다.
BETWEEN AND 특정 범위에 포함되는지 비교
LIKE/NOT LIKE 문자 패턴 비교
IS NULL / IS NOT NULL NULL 여부 비교
IN / NOT IN 비교 값 목록에 포함/미포함되는지 여부 비교
연산자 우선순위
산술> 연결 연산자 ( || )
비교(<,>,=) > is null / is not null, like / not like, in / not in, between
NOT(논리 부정)
AND
OR
데이터 정렬
select 칼럼명 1, 칼럼명 2,... from 테이블명
where 조건
order by 칼럼명|별명|칼럼 순서 오름차순/내림차순 (명시하지 않으면 오름차순)
데이터 정렬 방법
NUMBER CHAR DATE NULL
ASC 작은 수 ->->-> 큰 수 사전순 빠른날 -> 늦은날 가장 아래
DESC 큰수 ->->-> 작은 수 사전 역순 늦은 날 -> 빠른 날 가장 위
'이공계전문기술연수 > Database' 카테고리의 다른 글
<이공계전문기술연수> 6. DB (INDEX , DECLARE) (0) | 2019.09.05 |
---|---|
<이공계전문기술연수> 5. DB 실습 (0) | 2019.09.04 |
<이공계전문기술연수> 4. DB (DDL / DML / DCL) (0) | 2019.09.03 |
<이공계전문기술연수> 3. DB 그룹 함수 (0) | 2019.09.02 |
<이공계전문기술연수> 2. DB 단일 행 함수 (0) | 2019.09.01 |