Database

ALTER TABLE 테이블 구조(Schema)를 변경하는 구문 테이블을 지정해서 어떤 변경사항을 적용할 것인지에 따라 추가 구문이 달라진다. 수행 목적에 따라 구문의 키워드가 달라진다. ADD - 테이블의 구조(스키마) 추가 MODIFY - 테이블의 구조(스키마) 변경 DROP - 테이블의 구조(스키마) 삭제 새로운 컬럼 추가 마지막 컬럼으로 추가된다. (COLUMN_ID도 맨 마지막 숫자를 부여 받는다.) 이미 존재하는 컬럼들 중간에 추가할 수 없다. (Oracle은 불가능 다른 DB는 가능) ALTER TABLE tablename ADD (컬럼명 데이터타입); 컬럼 데이터타입 변경 데이터 타입을 바꾸거나 크기를 변경할 수 있다. 데이터 타입에 종속된 제약조건을 변경할 수 있다.(NOT NULL 등)..
인덱스, Index 색인 이라고 한다. 테이블의 검색(탐색) 속도 향상을 위한 데이터베이스 객체 테이블의 컬럼을 기준으로 적용하는 객체 하나의 테이블에 여러 개 인덱스를 적용하는 것도 가능하다. 테이블과는 독립적으로 생성되는 오브젝트 테이블의 컬럼의 의존적 UNIQUE KEY(유일 키, UK) 제약 사항이 걸린 컬럼은 인덱스를 자동으로 생성한다. 테이블의 컬럼값을 전부 추출해서 인덱스를 생성한다. 인덱스에는 기준 컬럼의 값과 원본데이터의 위치를 저장하고 있다. 인덱스의 장, 단점 장점 테이블 탐색할 때 전체탐색(FULL SCAN) 횟수를 줄여준다. 어쩔 수 없이 전체탐색을 해야할 때 시스템 성능 저하를 약간 줄여줄 수 있다. 단점 인덱스 객체를 생성하는 데 시간이 필요하다. 인덱스 객체를 위한 별도의 공..
스키마, Schema 데이터베이스의 구조 데이터베이스에 대한 메타데이터 데이터베이스를 바라보는 관점에 따라 분류한 스키마 개념 스키마 : 전체적인 구조, DB의 전체적인 논리 구조 개체들의 관계(Relation), 제약조건 등을 나타낸다. DB의 보안/권한/무결성 등을 정의한 것 내부 스키마 : 프로그래머 입장에서 보는 관점의 데이터베이스 구조, DB의 물리적인 저장구조, HDD에 어떻게 저장되어 있는지에 대한 관점 외부 스키마 : 사용자관점에서 바라보는 데이터베이스 구조, SELECT 구문을 수행하여 조회된 결과
식별관계, 비식별관계 PK, FK 의 관계 식별 관계(Identifying Relationship) FK가 해당 테이블에서 PK 역할을 수행하는 것 비 식별 관계(Non-Identifying Relationship) FK가 해당 테이블에서 PK 역할을 수행하지 않는 것
제약사항, 제약조건, Constraints 테이블에 부적절한 데이터가 입력되는 것을 방지하는 목적으로 테이블 컬럼에 설정하는 필터 조건 데이터의 무결성(Integrity)을 유지한다. 데이터 무결성이란?, 프로그램이 생명주기(Life Cycle)를 거치는 동안 데이터가 정확하고 일관성있는 값을 유지하고 그 값이 보장되는 성격 제약사항 지정 방식 CREATE TABLE 구문에 컬럼과 함께 지정하는 방법(컬럼 레벨에서 지정) 생성된 테이블에 ALTER TABLE 구문을 이용하여 추가적으로 반영하는 방식(테이블 레벨에서 지정) 제약사항의 종류 NOT NULL 데이터에 NULL 이 있으면 안된다. 컬럼의 데이터타입과 연계되어 적용되는 제약사항 'ALTER TABLE TABLENAME MODIFY COL ..
Commit & Rollback Commit 커밋 이라고 한다. 데이터 변경사항을 영구적으로 적용한다. Rollback 롤백 이라고 한다. 데이터 변경사항을 되돌린다. 커밋과 롤백은 신중에 신중을 기해야한다.
DDL CREATE & DROP -- 테이블의 결과를 복사하여 테이블을 생성하는 구문 CREATE TABLE 생성할 TABLENAME AS SELECT * FROM 복사할 TABLENAME; CREATE & DROP CREATE, DROP 은 COMMIT, ROLLBACK 이 불가능하다.
DML 문법 INSERT 테이블에 새로운 데이터(행)를 추가할 때 사용하는 SQL -- 문법 형식 INSERT INTO TABLENAME(COL1, COL2, COL3, COL4 ...) VALUES(DATA1, DATA2, DATA3, DATA4, ...); -- 컬럼수와 VALUES 순서가 맞아야하고, 지정된 데이터타입(유형)도 맞춰서 넣어야 한다. -- 문법 형식 2 INSERT INTO TABLENAME VALUES(DATA1, DATA2, DATA3, DATA4, ...); -- 컬럼을 입력하지 않아도 된다, 모든 컬럼의 값을 순서대로 입력해야한다. -- 문법 형식 3 INSERT INTO TABLENAME SELECT DATA1, DATA2, DATA3, DATA4, ... FROM DUAL;..
DELETE 테이블의 행을 삭제할 때 사용하는 구문 -- DELETE 구문 형식 DELETE FROM TABLENAME WHERE 조건; -- FROM 키워드는 생략가능하다. -- WHERE 조건; 없이 사용하면 테이블 전체 삭제되기 때문에 주의해야한다.
UPDATE 테이블의 데이터(행)을 수정하는 구문 특정 행의 컬럼 값을 변경할 수 있다. --- UPDATE 구문 형식 UPDATE TABLENAME SET COL1 = 값1, COL2 = 값2, COL3 = 값3 ... WHERE 조건절; -- WHERE 키워드 없이 사용하면 모든 행이 변경되기 때문에, DELETE 문과 마찬가지로 조건절을 붙여주는것이 좋다.
DML MERGE 오라클 전용 문법 SELECT 수행 결과에 따라 UPDATE 또는 DELETE 또는 INSERT 를 수행한다. SELECT 조회 결과가 '존재하면' UPDATE 또는 DELETE 수행한다. SELECT 조회 결과가 '존재하지' 않으면 INSERT 를 수행한다. -- MERGE 구문 형식 MERGE INTO TABLENAME USING ( SELECT 절 - 인라인 뷰(서브 쿼리) ) ON (조건절) WHEN MATCHED THEN 구문 WHEN NOT MATCHED THEN 구문; -- INTO : 삽입, 갱신, 삭제가 이루어지는 테이블 -- USING : 조건 비교할 소스테이블 또는 인라인 뷰(서브쿼리) -- ON : WHEN 절에서 반응하는 조건을 부여하..
트랜잭션, Transaction 데이터를 처리하는 일련의 작업 단위 클라이언트마다 관리되는 데이터베이스에 작업한 내역들을 트랜잭션이라고 한다. COMMIT, ROLLBACK 에 의해서 작업한 내역들을 반영하거나 되돌린다. Commit & Rollback 이란? 트랜잭션의 상태 변화 트랜잭션의 시작 INSERT, UPDATE, DELETE 세 개중 하나를 수행했을 때 실행 가능한 DML 문장이 수행 되었을 때부터 시작된다. 트랜잭션의 종료 Commit 또는 Rollback 수행 시 DDL 이나 DCL 문장을 수행했을 때 종료된다. Auto Commit (자동 반영) 상황 DDL, DCL 완료되는 시점 SQLPlus 의 정상 종료(Exit 명령 수행)ㅇㅇ Auto Rollback (자동 미반영) 상황 시스템..
DDL, Data Definition Language, 데이터 정의어 DB 객체 테이블, 사용자 계정, 뷰, 인덱스, 시퀀스 등을 생성, 변경, 삭제하는 SQL 구문 CREATE, ALTER, DROP 생성, 변경, 삭제 테이블, Table, TB 데이터베이스의 데이터를 저장하는 단위 행(row, record), 열(column, col, 컬럼)으로 구성된 객체 연관성있는 데이터끼리 독립적인 테이블로 구성한다. 테이블들끼리 관계를 맺어 연관성을 확보한다(Primary Key - Foreign Key) 관계 : Relation, Relationship 개체 : Entity (Table) ER, Entity - Relation 개체 - 관계, 테이블들이 관계를 짓고 있는 것 RDB, Relation Data..
Oracle 자료형의 종류 NUMBER 숫자 타입 정수, 실수 둘 다 표현 가능하다 음수, 0, 양수 표현 가능 가변 길이 타입 NUMBER 최대 38자리까지 저장 가능한 타입 NUMBER(숫자) 최대 '숫자'에 입력해놓은 자리까지 정수 '만' 저장가능한 타입 NUMBER(숫자, d) 전체 '숫자' 자리까지 입력 가능, 소수점이하 d자리수까지 지정자리 확보 ex) NUMBER(7, 3) - 전체 7자리, 정수부 4자리, 소수부 3자리 ex) NUMBER(3, 5) - 전체 3자리, 소수점 이하 5자리 확보 VARCHAR2(n) 문자 타입 최대 n 길이의 문자를 저장할 수 있는 데이터 타입 가변 길이 문자 데이터 실제 저장되는 데이터 크기만큼만 저장공간을 가진다...
집합 연산자 두 개의 쿼리 결과를 하나의 집합(결과)로 만드는 연산자 조회 결과 집합(Result Set)을 하나로 합쳐서 보여준다. 각 조회 쿼리의 결과가 컬럼의 갯수, 컬럼의 이름이 같아야 한다. 집합 연산자의 종류 UNION 합집합 UNION ALL 중복을 허용하는 합집합 INTERSECT 교집합 MINUS 차집합
헌일