KB IT’s Your Life 4기 - Java SQL 19일차


오라클 XE 다운로드 주소
https://download.oracle.com/otn-pub/otn_software/db-express/OracleXE213_Win64.zip

오라클 SqlDeveloper 다운로드 주소
https://www.oracle.com/database/sqldeveloper/technologies/download/#license-lightbox

SQL?

관계형 데이터베이스를 사용하기 위한 언어

Oracle XE 설치

암호 - oracle

오라클 HR 계정 만들기

  • 오라클 버전에 맞는 스키마파일을 다운로드 한다. https://github.com/oracle-samples/db-sample-schemas/releases

  • 임의의 폴더에 압축해제한 후 C:\app***\product\21c\dbhomeXE\demo\schema 디렉터리에 human_resources를 복사한다.

  • SQL*PLUS앱 실행 사용자명 입력: SYSTEM 비밀번호: 설치시 설정한 비밀번호 (나는야 oracle)

cmd에서 ‘sqlplus 계정명/비밀번호’를 입력한다

아래는 계정명입력시 오류방지하기 위해 입력한다. SQL> ALTER SESSION SET “_ORACLE_SCRIPT”=TRUE; //안하면, @@HR이라고 써야해서 귀찮음… HR 계정 생성을 위한 스크립트를 실행한다.

SQL> @?/demo/schema/human_resources/hr_main.sql

  1. parameter 1 : 계정 비밀번호 HR // 암호임
  2. parameter 2 : 기본 테이블 스페이스 users //테이블을 어느공간에 만들것인지
  3. parameter 3 : 임시 테이블 스페이스 temp //임시 작업 공간명
  4. parameter 4 : SYSTEM 비밀번호 system 비밀번호를 입력하면 됩니다. 비밀번호 //나는 소문자 oracle
  5. parameter 5 : 로그 저장 디렉터리 log //작업 사항 저장
  6. parameter 6 : 접속 문자열을 입력합니다. localhost:1521/xe // xe가 DB명이고 기본임.
  • unable to open file “SUB__CWD” 오류가 발생할 수 있습니다. __SUB__CWD__는 현재 디렉터리를 저장하는 변수이지만 제대로 작동하지 않을 수 있습니다.

  • human_resources 폴더내 hr_main.sql에 있는 코드를 직접 수정할 수 있습니다. @SUB__CWD/ 부분을 모두 @?/demo/schema/ 로 변경한다.

이후 hr_main.sql를 다시 실행 시킨다.

sql developer

비밀번호:HR

image

test 클릭 상태 : 성공 확인 접속 클릭 image

이클립스가 웹 개발 버전이라 오라클 연동 가능함.

  • 이클립스에 DB 연동하기

image

image

image

new 클릭 > oracle 클릭 > next 클릭 > Drivers

image

image

image

image

edit 누름.

image

image

jde 1.8이라서, 8버전을 이용

image

image

오라클이 설치되어있는 서버 번호랑 오라클xe인것을 알려줌

image

비번, 대문자 HR 아이디 hr

image

SID로 바꾸고, save password

test connection 클릭하여 확인하기

fininsh 누르면

image

연결완 확인!

image

여기서 확인

image

image

데이터 확인 가능

+) Drivers의 설명
이클립스의 자바를 오라클 사이에 sql을 명령어로 번역해주는 번역기를 driver라고 부른다.

index

빠르게 검색 (성능 관련)

view

파견 근무 나온 사람이 로그인 관련 db를 써야할 때,

인사팀이 가진 정보를 보고 나쁜 마음을 먹을 수 있기 때문에

real data를 개발자를 위한 일부만을 떼어내서 공유하는 것.

특정 칼럼 몇개만 뽑아낸 것

시퀀스

자동 증가 번호 객체

게시판 만들때, 게시판 번호를 자동 증가해야하는데, 특정 번호를 증가시키게 만든다.

DDL

  • CREATE
  • ALTER
  • DROP
  • RENAME
  • COMMENT : 설명 붙임
  • TRUNCATE : 테이블의 모든 행 삭제(알맹이만 지움)

엔터티

한 개의 행

도서관 도서, 비디오, CD 회원 관리 시스템

  • 도서관 회원 테이블의 필요 칼럼 정의
- 논리 데이터

저장 데이터
이름: 홍길동 
아이디: ghhong
비밀번호: 1234
전화번호: 010-0111-2222
주소: 경기도 용인시...
이메일: gdhong@abc.com
상태: 정상/잠김

// 비밀번호를 텍스트로 저장하면 법률 위반이다. 회원의 비밀번호는 반드시 암호화 해야한다. 평문 작성시 해킹당하면, 모두 날아간다.
// 비밀번호는 DES 알고리즘을 사용한다.

-물리 데이터
// 오라클은 무조건 대문자로 관리 , 오라클은 VARCHAR가 아니고 VARCHAR2로 사용 (가변길이 문자-공간절약가능)
// LONG형은 검색이 안된다는 단점을 가짐. CHAR 와 VARCHAR만 검색 가능
name VARCHAR2(50),
    id VARCHAR2(50),
    password VARCHAR2(50),
    status CHAR(1) -- Normal / Locked

image

  • 오라클 접속 찍고 새로고침해야 새로고침이 눌러진다.

image

파일의 저장

파일은 DB에 저장하지 않고 경로에 저장되고 DB에는 이름만 저장한다.

SQL 실행법

-실행하고픈 쿼리문만 따로 잡아서 초록색 실행버튼을 누르면 해당 컬럼이 추출되어 스크립트가 출력된다.

image

image

DDL 예시

CREATE TABLE members(
    name VARCHAR2(50),
    id VARCHAR2(50),
    password VARCHAR2(50),
    status CHAR(1) -- Normal / Locked
)

CREATE TABLE MY_EMP
AS 
    SELECT * FROM employees
    WHERE employee_id < 200
    
DROP TABLE MY_EMP
  • 손으로 직접 데이터를 추가하는 경우,

image

클릭하면,

image

INSERT INTO "HR"."MEMBERS" (NAME, ID, PASSWORD, STATUS) VALUES ('user01', '홍길동씨', '1111', 'N')

가 자동으로 된다.

  • 오라클에서 ; 이 문장의 끝인걸 알지만, 표준 SQL에서는 ;를 사용하면 오류가 난다.

제약조건 위배

image

  • 오류 발생 이유: name VARCHAR2(50) primary key 이기 때문.

제약 조건명

CONSTRAINT를 이용하여 제약 조건명을 설정하면,

name VARCHAR2(50) CONSTRAINT members_pk primary key

image

오류 발생시, 제약 조건명을 알려준다.