Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/5월

22. 05. 16 - DBMS ( Oracle DB, sqldeveloper ), SQL ( 자료형, 유형 )

giggs 2022. 5. 17. 12:09

 

 

개념 먼저

 

  • 그냥 파일에다가 해도 되지만
  • 불편하기도 하고 성능도 별로다.
  • 편리성과 성능 우월한 DB 사용한다.

 

  • DB에서는 데이터를
  • 문서로 관리하는 것이 아니라.
  • table형태로 (row,col) 저장-관리한다.

 

  • 우리는 DB 자체를 배우는 것이 아니라
  • DB에서 데이터를 생성하고/읽어오고/갱신하고/삭제하고
  • CRUD작업을 SQL을 배우는 것이다~!

 

  • ( 지금 말한 DB라고 한 부분은 DBMS라고 해야 정확한 표현)

 

 

 

 


 

 

 

 

DBMS 종류

 

  • DB를 관리하는 시스템 – 오라클 DBMS를 설치한 상태

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

관계형 데이터베이스의 구조 및 용어

 

  • RDBMS 
  • 사람마다 다르게 표현하는 경우도 많아서 개념만 잡고 가기

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

여기서부턴 오라클에 대해 알아보기

 

 

 

Oracle - 주요 사용자 계정 4가지

 

 

 

 

 

 

 

  • 계정 아무것도 안 만들었을 경우 4가지 계정 있다.
  • sys는 슈퍼계정 – 모든 권한이 다 있는 계정이다.
  • sys as sysdba – sys계정으로 로그인하긴 할 건데 db의 권한을 줘서 로그인하겠다는 의미

 

 

 

 


 

 

 

 

Oracle -  기본 자료형

 

 

 

 

 

 

 

 

 

> 자바에서도 데이터 타입이 있었듯이!

  • [ byte/ int / long / double / String / Date 등 ]

 

 

> DB에서도 데이터 타입이 존재한다.

  • 많아 보이지만 단순하다.
  • NUMBER -> 숫자 모든 거 해결
  • VARCHAR2  -> 문자열>문자열 모든 거 해결 --- 가변  
  • CHAR ->문자열 모든 거 해결 ---- 고정 
  • DATE -> 날짜 해결.

 

 

 

> VARCHAR2와 CHAR

  • ex) CARCHAR2(10) - 최대 10글자로 제한되는 것이고,
  • 한 글자만 넣으면 뒤에 부분을 없애고 한 글자만큼만 공간을 차지하게 바뀐다.
  • ex) CHAR(10) - 무조건 10칸 고정,-
  • 1글자만 입력해도 10칸 다 사용하는 것으로 인식된다.

 

 

 

##check point

  • 단순히 실행 속도면에서 char가 빠름
  • 성별이라는 칸에는 1글자만 들어가게 제한할 경우에 char사용
  • 전화번호부를 만들고 전화번호를 저장하겠다. - 11글자가 들어오도록 size지정
  • 들어올 데이터의 길이를 예상할 수 있을 경우에는 CHAR()를 써주는 것이 낫다.
  • why?
  • char는 처음부터 글자 수 제한 – 그 공간이 생긴다 - 컴퓨터가 인덱스 구분하기가 쉽다.
  • 연속적으로 데이터가 존재할 경우 - 한 칸 한 칸이 10byte씩 차지하고 있다는 것을 알고 있으므로 10byte 한 데이터 읽고 / 10byte 한 데이터 읽고 쉽다.
  • VARCHAR로 하게 되면 – 처음에 있는 데이터가 10byte인지 몇 byte인지 체크해서 첫 번째 데이터 인식 / 그 칸 가서 다시 size 체크해서 두 번째 데이터 인식 / 하는 작업 필요

 

 

 

 

 


 

 

 

 

Oracle - Table 만들기 

 

  • CREATE TABLE 테이블명( ... )

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

실습하기

 

 

 

실습 전 기본 개념

 

  • --이거는 한 줄 주석
  • /**/ 이거는 여러 줄 주석
  • SQL은 기본적으로 대문자로 작성
  • 실행은 마지막 줄에서 컨트롤 엔터 OR 블록 잡고 컨트롤 엔터

 

 

자바는 프로젝트 단위로 저장했었는데

SQL DEVELOPER 에서는 워크시트 단위로 저장한다.

워크시트에서 CTRL + S

 

 

 

 

 

워크 시트란?

  • sys라는 계정으로 접속한 상태
  • 내가 앞으로 실행하는 쿼리/명령하는 쿼리들은 전부 다
  • sys라는 계정을 바탕으로 실행될 것이다.
  • 이 워크시트라는 공간에서는 – SQL들을 작성하고 실행하는 공간이다.
  • 워크시트에 있는 내용을 저장해서 참고자료로 활용하면 된다.

 

 

 

 

 

계정 생성해서 권한 부여 -> 계정 접속해주기

 

 

 

 

 

계정 생성

  • ID앞에 C## 추가
  • 계정 생성 완료 – 대소문자 잘 체크

 

권한 부여

  • GRANT ..... TO ...

 

 

계정 로그인

  • 새로운 워크시트 생성된 것 확인

 

 

 

 

 

 

 

 

 


 

 

 

 

 

실습하기

 

 

 

CURD 실습

 

 

 

 

 

 

 

C R U D

  • CREATE
  • READ
  • UPDATE
  • DELETE

 

 

 

 


 

 

 

 

 

SQL 자료형 실습

 

 

 

문자열 형식

  • 3가지 ( CHAR / VARCHAR / NCHAR )

 

대용량 형식

  • 2 가지 ( CLOB, NCLOB ) - CLOB을 주로 사용
  • EX) 블로그 글 작성 시 영상, 사진 등 대용량 필요한 경우

 

숫자

  • 숫자(NUMERIC) 형식 - ( NUMBER )

 

날짜

  • 한국 – 미국 이런 식으로 사용하는 경우에는 TIME ZONE 사용
  • 보통의 경우에는 TIMESTAMP 많이 사용

 

 

 

 

 

 

## 유니코드란?

  • >아스키코드에는 한글이 없다. 아메리칸 스탠더드
  • >한글이나 한자나 이런 아시아권 언어를 처리하기 위해
  • >아스키코드와 비슷하게 만들어 놓은 것 == 유니코드

 

 

 

 

 

큰 흐름만 챙겨가자~ 디테일까지 외울 필요 없다.

NUMBER 만 사용해봤다 강사님 曰

 

회사에서 ORACLE DB를 사용 안 한다 하면 외우고 파놓아도 도루묵

EX) VARCHAR2 도 오라클에서만 사용. 다른 DB에서는 VARCHAR로 사용할 수도.

 

 

 

 

 

 


 

 

 

 

SQL 유형 실습

 

  • DDL - DATA DEFINATION LANGUAGE - 데이터 정의 언어 - ( 테이블 생성 구문 )
  • DML - DATA MANIPULATION LANGUAGE - 데이터 조작 언어 - ( SELECT, INSERT, UPDATE, DELETE )
  • DCL - DATA CONTROL LANGUAGE - 데이터 제어 언어 - ( GRANT, REVOKE )

 

 

 


 

 

- DML 실습

  • < SELECT,  INSERT, UPDATE, DELETE >
  • >( 강사님 보내주신 데이터 기반으로 해보기)

 

 

 

 

 

 

 

1번 - SELECT

 

 

 

 

1- SELECT * FROM EMP; 해버리면 모든 칼럼의 내용이 다 출력된다.

 

2모든 칼럼 말고 특정 칼럼만 뽑아서 보고 싶다

 

3번 별칭 주기

  • SELECT EMPNO AS 사원번호, ENAME AS 사원 이름 FROM EMP;
  • -AS 생략해도 출력 결과가 똑같이 나오네! 확인
  • -공백 있을 때는 “ ”로 묶어줘야 한다.

 

 

 

 


 

 

 

 

2번 - INSERT 

 

 

 

1- 칼럼 추가하기 INSERT INTO() , VALUE()

 

2- 특정 칼럼의 값을 넣어주기 싫은 경우 ( 모르는 경우 )

 

3- 모든 칼럼을 다 쓰는 경우에는, 칼럼명 생략 가능

 

 

 

 

###CHECK

  • – 문자열 삽입시 “ ” 아닌 ‘ ’ 사용
  • 칼럼 순서는 상관없다. 값만 맞게 넣어주면 OK
  • + 추가 잘 되었는지 확인해보기~ SELECT * FROM EMP

 

 

 

 


 

 

 

3번 - UPDATE 

 

 

 

 

1데이터 넣어주기 ( INSERT INTO / VALUES )

 

2데이터 수정해보기.

  • 문제 발생. 모든 열의 SAL 칼럼 값이 변경되었다.

 

3번 SWY 의 SAL 값만 변경하고 싶었는데

  • 모든 열의 SAL 값이 다 바뀌었다.

 

4- 문제를 해결해보자.

  • ( JAVA의 IF문 같은 조건을 달아주면 된다 )
  • WHERE 사용!

 

 

 

 


 

 

 

 

4번 - DELETE 

 

 

 

 

 

1- 2개의 ROW중 1개의 ROW만 삭제하고 싶었는데 2개다 삭제됐다.

 

2조건을 추가해주면 된다. -- WHERE 추가

 

 

 

 

 

DML 실습 끝!

 


 

 

 

 

 

### RESULT SET

 

  • 결과들의 집합이라는 의미로 RESULT SET이라고 부른다.

 

 

 

 

 

 

 


 

 

 




REVIEW


ORACLE  DB를 배운 기념으로 대문자로 사용해보았다. :D

JAVA진도를 마치고 드디어 시작된 DB파트!
DB 파트를 배우고 JDBC 배우면 이제 JAVA와 DB 연결 가능!
후후 가보자으!

새로운 도구인 SQL developer를 사용하는 데 
계정 생성이나 접속 부분이 낯설었다.
BUT
여기서 사용하고 배울 SQL은
정처기 준비하며 공부했던 부분이다.
DML / DDL / DCL / TCL
문법과 개념을 접하는데 낯설지도 않고 좋았다.

복습으로 각 조에서 진행하는
miniProject 주제에 맞는
테이블 만들기 과제를 내주셨다.
열심히 배워서 미니 플젝도 잘해보자!