목록Oracle Database (103)
hyeonga_code
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0rd6k/btsqD5ni8Is/BN1LN7TXFwF9SzJ9LwZrK0/img.jpg)
-- DROP TABLE /* DROP TABLE table [PURGE]; */ -- 테이블의 모든 데이터와 구조를 삭제하는 명령입니다. -- 테이블과 연관된 인덱스도 모두 삭제됩니다. -- 테이블과 연관된 뷰와 동의어는 사용불가 상태로 유지됩니다. -- 해당 테이블을 소유하고 있거나 높은 레벨의 권한이 있는 경우 테이블 제거가 가능합니다. -- 자동으로 커밋되므로 ROLLBACK은 불가합니다. -- PURGE 옵션을 사용하지 않은 경우 FLASHBACK이 가능합니다. -- PURGE : 휴지통에 저장되지 않습니다. -- RECYCLE BIN_휴지통 -- 삭제된 테이블에 대한 휴지통이 제공됩니다. -- FLASHBACK 명령문으로 삭제된 테이블을 휴지통으로부터 복원이 가능합니다. -- 실수로 잘못 삭제..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TGwKl/btsqtyE8tA0/jnKRqxoGd9IDqeOQEK5eyK/img.jpg)
-- ALTER TABLE -- 테이블의 구조를 변경합니다. -- 사용하는 경우 -- 새 열을 추가합니다. -- 기존 열을 수정합니다. -- 새 열의 기본값을 정의합니다. -- 열을 삭제합니다. -- 열 추가 /* ALTER TABLE table ADD ( column datatype [DEFAULT expr] ... ); */ -- 열의 표시 위치를 지정할 수는 없습니다. -- 새로운 열은 마지막 열이 됩니다. -- 열을 추가할 때 테이블이 이미 행을 포함하고 있는 경우 새 열의 모든 행은 초기에 널 값을 가집니다. ALTER TABLE dept80 ADD (job_id VARCHAR2(9)); /* Table DEPT80이(가) 변경되었습니다. */ DESC dept80; /* 이름 널? 유형 ---..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ua5IQ/btspOzKFBcq/trkSJeBfiGUvCAG2a8XFlk/img.jpg)
-- 오라클 데이터 유형 -- 숫자 -- NUMBER( p, s ) : 자릿수가 p이고 소수점 이하 자릿수가 s인 가변 길이의 숫자 -- 날짜 -- DATE : 날짜 및 시간 -- DATETIME -- TIMESTAMP : 소수 표시 초단위 날짜로 시간을 저장합니다. -- 데이터 타입을 변환하지 않아도 되는 유형입니다. -- INTERVAL YEAR TO MONTH : 년 및 월 간격으로 시간을 저장합니다. -- INTERVAL DAY TO SECOND : 일, 시, 분 및 초 간격으로 시간을 저장합니다. -- 시간 간격을 분수로 작성하지 않아도 되는 유형입니다. -- 문자 -- CHAR (n) : 고정 길이가 n 바이트인 문자 데이터(최대 2,000 바이트) -- 우편 번호, 학번 -- VARCHAR2..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjr4P4/btspVp1qJKC/8LsYEKabwckLmqdGq6KRj0/img.jpg)
-- 테이블 생성과 관리 -- 테이블의 유형 -- 사용자 테이블 -- 사용자가 생성 및 유지 관리하는 테이블의 COLLECTION입니다. -- 사용자 정보를 포함합니다. -- 사용자 테이블만 있는 것이 아니라 데이터 딕셔너리도 존재합니다. -- 데이터 딕셔너리 -- Oracle Server가 생성, 유지 관리하는 테이블의 collection입니다. -- 데이터베이스 자체에 관한 정보를 포함하는 테이블의 모음입니다. -- 데이터베이스 생성 시 자동으로 생성되어 오라클 서버에 의해 자동으로 유지 관리됩니다. -- 시스템 자체 정보를 포함하고 있으므로 삭제할 수 없습니다. -- 관리자 계정인 sys 사용자가 소유하고 있습니다. -- 사용자가 데이터베이스에 관한 정보를 얻기 위해 데이터 딕셔너리 뷰를 엑세스할 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vyY1D/btspMj2p4e4/YHDF4i3SnOmyLE38nvFNKk/img.jpg)
/* UNDO 파일이 있습니다. HR 에서 113번 급여정보를 변경한 뒤 COMMIT하지 않고 LOCK을 걸었습니다. C:드라이브 > oraclexe > app > oracle > oradata > xe(DB 이름입니다.) -- 데이터가 저장되어있는 위치를 몰라도 논리적으로 접근할 수 있습니다. -- CONTROL.DBF : 아래의 다른 파일들을 제어하기 위한 프로그램입니다. -- SYSAUX.DBF -- SYSTEM.DBF -- TEMP.DBF -- UNDOTBS1.DBF : 두 번째 창에서 접근 시 USERS.DBF 를 거쳐 넘어옵니다. -- USERS.DBF -- 윈도우에서는 사이즈 크기만 알 수 있고 안에 얼만큼의 용량이 저장되어 있는지 알 수 없습니다. */ --------------------..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6IIsO/btspFja6Zgp/smbsglRrwce1SZkTVxFJgk/img.jpg)
-- 데이터베이스 작업 단위 -- COMMIT이 될 때마다 TRANSACTION이 종료됩니다. -- SAVEPOINT : 트랜잭션 사이사이에 표시해두는 이정표입니다. -- ROLLBACK TO savepoint : 지정한 위치로 롤백합니다. -- 무조건 현재로부터 롤백을 진행합니다. -- 데이터베이스 트랜잭션 -- 트랜잭션을 기반으로 데이터 일관성을 보장합니다. -- 트랜잭션은 데이터를 변경할 때 뿐만 아니라 사용자 프로세스가 중단되거나 시스템 장애가 발생한 경우에도 데이터 일관성을 보장합니다. -- 데이터베이스 트랜잭션의 구성 -- 데이터를 일관성 있게 변경하는 하나 이상의 DML문 -- DDL -- DCL -- 트랜잭션 시작 및 종료 시기 -- 트랜잭션은 첫 DML 문이 실행됳 때 시작됩니다. -- ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bgT5Cs/btspGLL3F4a/omwNSw1hXJN7wjj43n5O9k/img.jpg)
-- DML_Data Management Language 데이터 조작어 -- DELETE /* DELETE [FROM] table [WHERE condition]; */ -- 필요한 경우 한 번에 여러 행을 삭제할 수 있습니다. -- 주의사항 -- WHERE 절을 생략하면 테이블의 모든 행이 삭제됩니다. -- WHERE 절의 조건에 해앋하는 행이 없는 경우 '0 rows deleted.'라는 메세지가 반환됩니다. -- 서브쿼리를 사용하면 다른 테이블의 값을 기반으로 행을 삭제할 수 있습니다. DELETE FROM departments WHERE department_name='finance'; /* 0개 행 이(가) 삭제되었습니다. -- Finance의 앞글자가 대문자입니다. */ DELETE FROM d..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Loec6/btspH0vmdDk/4iuLXqWMfNAjnDXub76OD1/img.jpg)
-- DML_Data Management Language 데이터 조작어 -- UPDATE /* UPDATE table SET column=value, ... [WHERE condition]; */ -- 이미 저장되어 있는 테이블의 데이터를 수정합니다. -- 필요한 경우 한 번에 여러 열 또는 여러 행을 갱신합니다. -- 주의사항 -- WHERE 절을 생략하는 경우 테이블의 모든 행이 수정됩니다. -- WHERE 절의 조건에 해당하는 행이 없는 경우 오류는 발생하지 않고 아무 행도 변경되지 않습니다. -- 수정할 데이터가 존재하는 지 확인합니다. SELECT employee_id, last_name, hire_date FROM employees WHERE employee_id=113; /* EM_ID LA..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8Mgan/btsoMHo51wC/BeI0TKpWB59IkJKvPmsXS0/img.jpg)
-- DML_Data Management Language 데이터 조작어 -- INSERT /* INSERT INTO table [ (column, ... )] VALUES (value, ...); */ -- 테이블에 데이터를 추가합니다. -- 한 번에 한 행만 추가할 수 있습니다. -- 각 열에 대한 값을 포함하는 새 행을 삽입합니다. -- 테이블 열의 기본 순서대로 값을 작성해야 합니다. -- INSERT 절에 열을 직접 나열할 수 있습니다. -- 테이블 생성시 선언한 순서대로 데이터를 삽입하는 경우 컬럼 이름을 생략할 수 있습니다. -- 문자 및 날짜 값은 작은 따옴표로 묶어 작성합니다. -- 1) INSERT INTO departments(department_id, department_name, m..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6HAje/btsoCkPk0uk/HFy4ZK40LRRd8YZNnV0d1K/img.jpg)
-- 알고있어야 하는 작업 단위 -- Session -- 데이터베이스에 접속하는 순간 생성됩니다. -- 접속 종료까지 계속 유지됩니다. -- Transaction -- 데이터베이스에서 발생하는 1개 이상의 명령어들을 하나의 논리 집합으로 묶어놓은 단위입니다. -- DML로 시작하여 TCL로 끝나는 작업 단위를 의미합니다. -- DML 조작어만 포함됩니다.(commit, rollback) -- TCL_Transaction Control Language -- 한 가지 작업이라도 실행에 실패한 경우 모든 작업을 취소/복구하기 위함입니다. -- 입출금 > 계좌 간의 이체 내역 등 -- SELECT, INSERT, UPDATE, DELETE는 모두 하나의 과정으로 묶여 처리되어야 합니다. -- Statement ..