DB/ORACLE

오라클 1~9

브리오 2024. 1. 28. 15:26

CH01

동시성, 성능, 보안을 담당 가능한 관리자를 하나 만든다 = DBMS

DBMS가 있음으로 데이터베이스에 직접 요청하는게 아니라 DBMS에 요청한다 = SQL

SQL은 크게 세개로 나뉜다

DDL : CREATE, ALTER, DROP

DML : SELECT, INSERT, UPDATE, DELETE

DCL : GRANT, REVOKE

CH02

client program(sql plus)를 통해서 server program(oracle)을 동작시킨다

port = 1521

CH03

sql develovper는 sql plus와 다르게 gui형식

CH04

실제 데이터베이스(컨테이너=CDB)를 점유하면서 독립되어 있는 가상의 데이터 베이스 = pluggable 데이터 베이스

PDB와 CDB는 각각 다른계정으로 운영된다

CH05

엔티티를 포함한 다양한것들이 데이터베이스 안의 테이블 스페이스에 존재한다

임시적으로 사용할 공간은 LOG_SPACE

DBA->보안->사용자 : 일반계정 생성

접속->어느 계정으로 어느데이터에 접속할건지 정하는것, 롤 설정할때 기본값으로 설정해야 일반계정으로 접속 가능하다

처음 만들때 계정은 SYS계정

CH06

SQL은 크게 세개로 나뉜다

DDL : CREATE, ALTER, DROP

DML : SELECT, INSERT, UPDATE, DELETE = CRUD

DCL : GRANT, REVOKE

자바에서의 클래스 = table

CH07

오라클 데이터 형식

1. Character

2. Numeric

3. Date

4. LOB : 큰 데이터

 

CHAR ->고정길이

VARCHAR->가변길이

N붙이면 영어를 제외한 여러 언어 가능

고정길이를 사용하는 이유는 가변길이를 사용했을때 보다 FIND하기 훨씬 빠르다

가변길이는 한칸의 크기가 정해져 있지 않아서 찾기 힘들다

-- 사용하면 주석

 

(N) -> N이 의미하는것은 BYTE수

알파벳1개 = 1BYTE

 

CHAR (2 CHAR) -> 괄호안에 CHAR넣으면 글자개수로 인식 즉, 2개의 글자가능

근데 이렇게 하면 숫자,영어를 제외한 글자에 3BYTE씩 작동한다 -> CHAR는 UTF8의 16BIT로 인코딩 되어있다

 

NCHAR(2) -> NCHAR는 UTF16의 16BIT로 되어있어서 영어 숫자를 제외한 모든 글자가 2BYTE씩 차지한다

즉 2BYTE글자 2개가능 이렇게 동작한다

CHAR(2 CHAR) 대신 NCHAR(2)이렇게 사용하자

CH08

CLOB : 최대 4GB

NCLOB : 최대 4GB, 여러 언어 가능

 

NUMBER(6,2)  : 소수점 2번째 자리에서 반올림 하는 최대 6자리

NUMBER(6,-2) : 소수점 -2번째 자리에서 반올림하는 최대 6자리

NUMBER(*,2) : 소수점 2번째자리를 포함하는 최대 38자리수

NUMBER(6) : 최대 6자리 수

 

DATE : DAY-MONTH-YEAR -> 지역마다 다르게 나온다

TIMESTAMP : DATE에 초까지 표현

CH09-테이블 수정하기

ALTER TABLE NAME +

MODIFY COLNAME TYPE

DROP COLUMN COLNAME

ADD COLNAME TYPE

이렇게 하는데 DBMS마다 원하는 명령어가 달라서 요새는 그냥 SQL쿼리대신 편집 눌러서 수정한다

DDL은 그렇게 중요한것이 아니다

 

테이블 열 이름 변경

ALTER TABLE 테이블명 RENAME COLUMN 이전열명 TO 새로운열명;

예를 들어, "employees" 테이블의 "emp_id" 열을 "employee_id"로 변경하는 경우:

ALTER TABLE employees
RENAME COLUMN emp_id TO employee_id;