[1] DATABASE와 DBMS의 개요
: 데이터를 한 곳에 모아 관리하여 중복을 없애는 방법으로 결함을 줄임
- 동시성, 성능, 보안(무결성) 문제를 해결하기 위해 관리 소프트웨어를 통해서 데이터를 사용 (프로그램이 데이터 직접 사용X)
[2] SQL(Structured Query Language)?
: DBMS(*DATABASE+MANAGEMENT SYSTEM) 에게 질의하는 명령어 (구조화된 데이터를 질의)
DDL : create / alter / drop - 테이블 생성/변경/삭제
DML: select / inesrt / update / delete - CRUD
DCL: grant / revoke
[3] 오라클 PDB서버에 접속
: 데이터 베이스 두종류
원랜 하나의 인스턴스에 하나의 DB가 들어가 있었으나, multi tenent기능이 도입되면서 하나의 인스턴스 내에 멀티 DB가 들어갈 수 있게 되었다.
CDB : 데이터를 CONTAIN하고있는 데이터베이스. 데이터 자체가 컨테이너.
PDB (PLUGGABLE DATABASE) : CDB 아래에 연결된 가상 데이터베이스. CDB안에 끼워진 DB
[4] 데이터베이스와 데이터파일, 테이블스페이스
: 구조가 마련된 데이터베이스 = 스키마
테이블 스페이스는 영구적 데이터 저장 목적 하나와 임시로 사용하는 저장소 (트랜잭션관련) - 로그스페이스 총 2개가 생성된다.
보기 - DBA - 테이블스페이스 - 새로만들기로 스페이스 두개 추가.
보기 - DBA - 사용자 - 권한을 가진 관리자용 사용자 추가.
작업할 PDB에 관리자 권한으로 서버를 실행한 후 테이블 작성 진행.
[5] 테이블 생성 CREATE
테이블 정의 = 데이터 구조 정의 = 개념상의 데이터 정의 = ENTITY 정의
: 개념화된 데이터를 데이터베이스에 알려줘야 함
[6] 오라클 데이터형식
Oracle Built in Data Types (오라클 내장형)
TYPE | Example |
Character | 'nEWlec' 'A' '140' |
Numeric | 36, 5.33 , 6.3f , 192 |
Date | '2023-02-03' |
TIMESTAMP | '2023-12-31 10.38.29.00000' |
6-1) Character 형식
: 이때 괄호 안에 들어가는 숫자는 글자 개수가 아니라 BYTE
CHAR(3) : 고정길이 데이터 CHAR [(size [BYTE | CHAR])] // 기본값은 BYTE지만 CHAR로도 지정가능 공간차지를 많이함. 비효율적 size: 1byte |
VARCHAR2(3) : 가변길이 데이터. 최대값지정 VARCHAR2(size [BYTE | CHAR]) 쓰이지 않은 데이터를 반환함 size: 1byte |
NCHAR(3) national character 여러 나라 문자가 값으로 들어오는 경우 size : 2 or 3byte encoding and three times size for UTF8 encoding |
NVARCHAR(3) |
: LONG 대신 CLOB을 사용함
: CLOB 대용량 텍스트 데이터 타입 (최대 4GBYTE)
: NCLOB 대용량 텍스트 유니코드 데이터 타입 (최대 4GBYTE)
6-2) 숫자형식 NUMBER
NUMBER(4) | 최대 4자로 이루어진 숫자 9999 |
NUMBER(6,2) | 소수점 2자리를 포함하는 최대 6자리 (소수점 둘째에서 반올림) |
NUMBER(6,-2) | 소수점 -2자리에서 반올림하는 최대 6자리 |
NUMBER | NUMBER(38,*) MAXIMUM 38로 인식 |
NUMBER(*,5) | NUMBER(38,5) 38자리로 자동인식 |
6-3) 날짜형식 DATE, TIMESTAMP
DATE | 01-JAN-99 |
TIMESTAMP | NLS_TIMETAMP_FORMAT 파라미터에 명시된 값을 따름 |
TIMESTAMP WITH TIME ZONE | NLS_TIMESTAMP_TZ_FORMAT 파라미터에 명시된 값을 따름 |
TIMESTAMP WITH LOCAL TIME ZONE 지역변수에 따라 표현되는 방법이 다름 |
NLS_TIMESTAMP_FORMAT 파라미터에 명시된 값을 따름 SELECT * FROM NLS_DATABASE_PARAMETERS |
[7] 테이블 수정 ALTER
✔ 테이블 항목 수정 (단, 데이터들이 변경될 속성에 일치하는 상황이어야 한다)
ALTER TABLE MEMBER MODIFY ID NVARCHAR2(50);
✔ 테이블 내 컬럼 삭제
ALTER TABLE MEMBER DROP COLUMN AGE;
✔ 테이블 내 컬럼 추가
ALTER TABLE MEMBER ADD EMAIL VARCHAR2(200);