<이공계전문기술연수> 1. DataBase / SQL

2019. 9. 1. 17:10· 이공계전문기술연수/Database

<수업내용>

 

 

데이터(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
'이공계전문기술연수/Database' 카테고리의 다른 글
  • <이공계전문기술연수> 5. DB 실습
  • <이공계전문기술연수> 4. DB (DDL / DML / DCL)
  • <이공계전문기술연수> 3. DB 그룹 함수
  • <이공계전문기술연수> 2. DB 단일 행 함수
임쟌
임쟌
임쟌
Jian's Blog
임쟌
전체
오늘
어제

공지사항

  • [자기소개]
  • 쟌's Blog (227)
    • Language (32)
      • Python (8)
      • Go (24)
      • Java (0)
    • Framework (10)
      • Django (9)
      • Gin (1)
      • Spring boot (0)
      • Fiber (0)
    • Database (10)
      • PostgreSQL (8)
      • MySQL (0)
      • Redis (2)
    • Server (51)
      • Linux (16)
      • Git (12)
      • Oracle Cloud Infrastructure (13)
      • Mac (4)
      • Docker (4)
      • RabbitMQ (0)
      • ETC (2)
    • Operating System (0)
      • OS (0)
    • Algorithm (22)
      • Go (22)
      • Python (0)
    • Exam Certification (4)
    • Daily Life (27)
      • Review (21)
      • Diary (6)
    • 이공계전문기술연수 (71)
      • Java (17)
      • Database (8)
      • HTML | CSS (13)
      • JavaScript | jQuery (6)
      • Servlet | JSP (16)
      • Spring Framework (11)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
임쟌
<이공계전문기술연수> 1. DataBase / SQL
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.