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은 그렇게 중요한것이 아니다
테이블 열 이름 변경
예를 들어, "employees" 테이블의 "emp_id" 열을 "employee_id"로 변경하는 경우:
ALTER TABLE employees
RENAME COLUMN emp_id TO employee_id;