Flashback은 삭제했던 테이블을 다시 부를 수 있는 기능으로 오라클에서만 지원한다. VIEW나 SEQUENCE 같은 다른 Object는 지원하지 않는다. 오라클 DBMS는 휴지통에 삭제한 데이터를 넣어놓는데, 우선 테이블을 삭제해보자! 휴지통을 보여줘! - Recyclebin SHOW RECYCLEBIN; SELECT original_name, opration, droptime FROM RECYCLEBIN; 테이블을 Recyclebin에서 꺼내줘! - Flashback FLASHBACK TABLE emp2 TO BEFORE DROP; - 삭제한 테이블을 되살리면 NN 제약조건을 제외한 나머지는 사라지니 다시 추가해야한다! - 되살린 테이블은 제약조건명도 바꿔버린다(BIN$~이 있는 제약조건명) 다시..
Table - 사용방법(DQL -데이터 질의어, DML) : select / insert / update / delete - 정의방법 DDL : create / alter / drop / truncate View 테이블을 기반으로 생성, DB사전에 select 구문으로 정의만 되어있는 가상의 논리적인 테이블 목적 : 보안성, 다양성, 단순성, 편의성, 공간효율성 - 사용방법 : select / insert / update / delete - 정의방법 : create [ or replace ] / drop CREATE [ OR REPLACE ] [ FORCE | NOFORCE ] VIEW view [(alias[, alias]...)] AS subquery 수정을 원할 시 create or replace ..
새로운 컬럼, 제약조건 추가 - 컬럼은 마지막에 추가된다. ALTER TABLE 테이블명 ADD [ ]; 새로 추가된 컬럼은 데이터가 null이기 때문에 테이블을 생성할 때부터 신중하게 만드는 게 좋다. 컬럼 수정, 제약조건 추가 - 데이터타입, 컬럼사이즈, default 값을 수정한다. ALTER TABLE 테이블명 MODIFY [ ]; 컬럼의 사이즈를 얼마든지 가능하나 줄이는 건 될 수도 있고 안될 수도 있다. 저장된 데이터가 설정하려는 사이즈보다 크면 불가능하다(컬럼의 데이터타입 변경도 동일) 컬럼, 제약조건 삭제 ALTER TABLE DROP COLUMN [ ]; 아래의 표현과 동일하다(괄호 유무 확인) ALTER TABLE DEPT80 DROP COLUMN 컬럼명; ALTER TABLE DEPT..
제약조건 Primary key, Foreign key, Unique, Not Null, Check 부적합한 데이터를 막아준다! 제약조건 선언 시기 - table 생성 시(권장), table 생성 후 오라클은 제약조건명 부여하는 걸 권장(MySQL은 안 줘도 된다는 느낌), 생략 시 고유한 제약조건명을 자동 부여한다. 제약조건명은 테이블이 달라도 겹치면 안 된다. DB 안에서 고유해야 한다! [constraint 제약조건명지정] 제약조건지정 ex) 테이블약자_컬럼약자_제약조건유형약자 - MySQL의 경우 컬럼레벨 문법으로 쓰되, 포린키만 테이블 레벨 문법으로 쓰길 권장한다. create table test1 -- 컬럼레벨 문법 (id int primary key, name varchar(10) not nu..
Oracle 데이터 타입 char 고정길이 문자형, 공간효율 떨어지지만 성능이 좋다 varchar2 가변길이 문자형, 공간 효율 높지만 성능이 떨어진다 date 날짜형 number 숫자형 - number(10) 정수형만 들어올 수 있다. - number(8, 2) 실수형만 들어올 수 있다(최대 999999.99) 전체 8자리인데 그 중 2개만 소숫점 이하로 나옴 테이블 생성 DDL은 오토커밋을 내포하고 있기 때문에 테이블 만든 건 따로 커밋 선언하지 않아도 된다(롤백x) 특수문자는 _, #, $만 쓸 수 있고, 이름은 30byte를 넘겨서는 안된다. INSERT 작업 시 값을 지정하지 않으면 null 값이 들어가지만 DEFAULT 값이 선언된 컬럼은 DEFUALT 값이 들어간다. 명시적으로 DEFAULT..
!enter sql 오라클 쓰다가 잠깐 운영체제 단으로 나오고 싶을 때 exit 다시 오라클 들어올 때 cat [파일이름] : 파일 내용을 보여줌 Data Dictionary 구성요소 Base tables DB의 모든 정보를 Oracle이 보기 쉬운 형태로 기록해놓은 테이블 Data Dictionary views Base Table을 사용자가 보기 쉬운 형태로 만들어놓은 뷰이다. 읽기 전용이라 select만 가능하다 Basetable이 오라클 것이면 사용자는 Data Dictionary view를 보는 거고 사용자에겐 Data Dictionary views가 DB사전이다! Data Dictionay views의 종류 (무엇으로 시작되는 지에 따라 의미가 다르다) user_xxx 내가 소유한 object에..
치환변수 사원 ID만 다른 사원의 정보를 자주 조회하는데 너무 반복된다! SELECT employee_id, last_name, salary FROM employees WHERE employee_id = &emp_num; 여기서 &emp_num은 치환변수로 변수명은 아무렇게나 지정해도 된다. 실행시킬 때마다 해당 창이 뜨고, 입력한 값의 쿼리문으로 결과가 나온다! 데이터 입력할 때(INSERT) 자주 쓰인다. 데이터타입에 맞게 값을 입력해야 한다(오라클은 대소문자 구분하니 주의!) 스크립트 파일 저장 및 실행 자주 쓰는 구문을 저장하고 싶을 때 SQL Plus에서 쿼리문을 저장할 경우 INSERT INTO departments values (&dept_id, '&dept_name', &mgr_id, &l..
트랜잭션 논리적인 작업 단위 여러 DML이 모여 하나의 트랜잭션이 구성, DML 작업 후 commit, rollback으로 트랜잭션을 종료한다. 하나의 DDL 또는 DCL 구문이 하나의 트랜잭션을 구성된다. TCL 트랜잭션 제어 명령어 COMMIT 트랜잭션을 영구히 저장한다. ROLLBACK 트랜잭션을 처음으로 되돌린다. SAVEPOINT 트랜잭션 진행 중 되돌아갈 지점을 생성한다. 트랜잭션 시작 및 종료 시작 첫번째 DML 구문 실행 시 종료 DDL / DCL 구문 실행 시 autocommit SQL Plus/SQL Developer 정상 종료(exit 입력) 시 autocommit 시스템 장애/비정상종료 시 autorollback DDL과 DCL은 auto-commit을 내포하고 있어, 구문은 실행과..