오라클 Study(1)

jaehoon ahn·2025년 10월 15일

Oracle

목록 보기
1/2
post-thumbnail

1. SQL, DB, DBMS의 의미와 필요성

SQL이란?

  • DBMS에게 질의하는 명령어
    • 질의
      • 무엇을? ⇒ 구조화된 데이터를
  • DBMS : Datebase + Management System

Database와 DBMS의 개요

  • DB가 필요한 이유
    • 중복을 없애는 방법으로 결함을 줄임
      • ex) 납입금 내역 확인

SQL(Structured Query Language)

  • DDL(create/alter/drop)
    • create/alter/drop
  • DML
    • select/insert/update/delete
  • DCL
    • grant/revoke

2. 오라클 DBMS 설치

Oracle Database Express Edition (XE) Downloads | Oracle 대한민국

3. SQL Developer 준비

Oracle SQL Developer Downloads | Oracle 대한민국

⇒ 각 플랫폼에 맞게 설치 진행

4. 오라클 PDB 서버에 접속하기

  • 오라클 서버 데이터베이스 종류는 2가지

  • Pluggable 데이터베이스

CREATE
	PLUGGABLE DATABASE hrpdb
	ADMIN USER dba1
	IDENTIFIED BY password

원격 접속을 위한 설정 변경

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

⇒ ip를 입력해서 테스트를 통해 접속

⇒ 방화벽이 설정되어있거나, 혹은 포트가 열려있지 않으면 접속 불가
⇒ ipconfig를 통해 해당 ip 주소 탐색 후 접속

5. 수업용 사용자와 데이터베이스 생성

데이터 베이스와 데이터 파일 그리고 테이블 스페이스

  • 여러 파일을 갖고있음
  • 논리적으로는 DB 범주 내에 저장되어 있음

테이블 스페이스

  • EX)
    • 학생테이블

    • 도서대여테이블

    • 인덱스1

    • 납입테이블

    • 인덱스2

      ⇒ 등등 존재

스키마

  • 위와 같은 테이블, 인덱스와 같은 오브젝트로 이루어진 형태를 스키마라고 부름

PDB 서버 설정

⇒ DBA 선택

⇒ 테이블 스페이스 2개 추가

⇒ 영구, 임시 테이블 스페이스

⇒ 사용자 추가

⇒ + 클릭 후 데이터베이스 새로 만들고 접속하기

6. MEMBER 테이블 생성하기

DDL, DML, DCL

DDL - 데이터 정의 언어(Data Definition Language)

  • CREATE / ALTER / DROP
    • CREATE
      • 데이터 구조 정의
    • ALTER
      • 수정
    • DROP
      • 테이블 삭제

DML - 데이터 조작 언어(Data Manipulation Language)

  • 데이터 조작
    • INSERT
    • SELECT
    • UPDATE
    • DELETE
      • ⇒ CRUD

⇒ 데이터 조작에 대한 부분 (가장 많이 사용)

DCL - 데이터 제어어(Data Control Language)

  • 데이터 접근 권한에 대한 부여 및 회수
    • GRANT
    • REVOKE

테이블 생성하기 - CREATE

CREATE TABLE MEMBER (
    ID  VARCHAR2(50),
    PWD  VARCHAR2(50),
    NAME  VARCHAR2(50),
    GENDER  VARCHAR2(50),
    AGE  NUMBER,
    BIRTHDAY  VARCHAR2(50),
    PHONE  VARCHAR2(50),
    REGDATE DATE
);

7. 오라클 SQL 데이터 형식 #1 (문자열 형식)

Oracle SQL Data Types

Value Type

Character 형식

  • CHAR
    • 고정길이에 적합
    • 크기를 50으로 설정하면 50으로 고정
  • VARCHAR2
    • 가변적으로 변하는 값에 적합
    • 500개를 쓰더라도 500개를 다 쓰는게 아니라, 2개만 넣었다면 498개를 반환함
    • 공간을 쓰겠다는 의미가 아닌 최대 500개라는 의미
  • NCHAR
    • 값을 저장할 때 전 세계 언어가 들어와야 하는 경우에 사용
    • 더 많은 바이트를 사용하게 됌
    • 한글은 3바이트지만, NCHAR를 사용하면 모든 언어를 2바이트씩 할당하기 때문에 NCHAR가 더 효율적
  • NVARCHAR2

수정

CREATE TABLE MEMBER (
    ID  VARCHAR2(50),
    PWD  VARCHAR2(50),
    NAME  VARCHAR2(50),
    GENDER  CHAR(2), --남성 OR 여성 2글자가 아닌 2바이트를 의미 
    AGE  NUMBER,
    BIRTHDAY  CHAR(10), --2000-01-02
    PHONE  CHAR(130), --010-1234-2345
    REGDATE DATE
);

LENGTH, LENGTHB

SELECT LENGTH('ab') FROM DUAL; -- 글자 개수 => 2
SELECT LENGTHB('ab') FROM DUAL; -- 바이트 길이, 영문자는 1글자가 1바이트 => 2
                                -- 
SELECT LENGTH('한글') FROM DUAL; -- 문자 개수 => 2
SELECT LENGTHB('한글') FROM DUAL; -- 몇 바이트인지 => 6, 한글자에 3바이트씩

DROP

⇒ 테이블 제거

DROP TABLE MEMBER;

INSERT

INSERT INTO MEMBER (GENDER) VALUES('남성');

8. 오라클 SQL 데이터 형식 #2

Character 형식

Numeric 형식

Date 형식

9. 테이블 수정하기(ALTER)

CREATE TABLE MEMBER (
    ID  VARCHAR2(50),
    PWD  VARCHAR2(50),
    NAME  VARCHAR2(50),
    GENDER  NCHAR(2), --남성 OR 여성 2글자가 아닌 2바이트를 의미 
    AGE  NUMBER(3),
    BIRTHDAY  CHAR(10), --2000-01-02
    PHONE  CHAR(13), --010-1234-2345
    REGDATE DATE
);

ALTER(테이블 컬럼 수정)

ALTER TABLE MEMBER MODIFY ID NVARCHAR2(50);

⇒ NVARCHAR2로 변경

컬럼 삭제

ALTER TABLE MEMBER DROP COLUMN AGE;

컬럼 추가

ALTER TABLE MEMBER ADD EMAIL VARCHAR2(200);

명령어 없이 편집하는 방법

⇒ 테이블을 선택해서 편집하는 버튼을 클릭하면 됌

10. 쿼리 연습을 위한 테이블 준비

테이블 준비

테이블 생성

CREATE TABLE NOTICE(
    ID NUMBER,
    TITLE NVARCHAR2(100),
    WRITER_ID NVARCHAR2(50),
    CONTENT CLOB,
    REGDATE TIMESTAMP,
    HIT NUMBER,
    FILES NVARCHAR2(1000)
);

CREATE TABLE "COMMENT"(
    ID NUMBER,
    CONTENT NVARCHAR2(2000),
    REGDATE TIMESTAMP,
    WRITER_ID NVARCHAR2(50),
    NOTICE_ID NUMBER
);
-- 예약어를 테이블명으로 하고싶다면 ""로 감싸주면 된다.

CREATE TABLE ROLE(
    ID VARCHAR2(50),
    DISCRIPTION NVARCHAR2(500)
);

CREATE TABLE MEMBER_ROLE(
    MEMBER_ID NVARCHAR2(50),
    ROLE_ID VARCHAR2(50)
);

0개의 댓글