9_oracle_명령어 정리
@계정 생성
CREATE(ALTER) USER 계정명 INDENTIFIED [BY 비밀번호]
GRANT CONNECT, RESOURCE TO 계정명
*CONNECT 접속권한
*RESOURCE 객체, 데이터 권한
*DBA 데이터베이스 관리자 권한
GRANT CREATE VIEW, CREATE SEQUENCE TO 계정명
뷰, 시퀀스 생성권한
GRANT//권한부여 REVOKE// 권한제거
@ 테이블생성
CREATE TABLE 테이블명(
컬럼명 타입 제약조건,
컬럼명 타입 제약조건
);
CREATE TABLE 테이블명(
컬럼명 타입,
컬럼명 타입, // REFERENCES 테이블명 (참조할 컬럼명) //외래키조건
컬럼명 타입, // CHECK (컬럼명 IN ('데이터', '데이터'))
UNIQUE (제약할컬럼명, 제약할 컬럼명)
PRIMARY KEY (제약할 컬럼명),
FOREIGN KEY (컬럼명) REFERENCES 참조할테이블명 (컬럼명) [ON DELETE SET NULL]
);
@ 컬럼주석
COMMENT ON COLUMN 테이블명.컬럼명 IS '주석내용'
@ 외래키 삭제 옵션
ON DELETE RESTRICTED
ON DELETE SET NULL (삭제시 NULL 처리)
ON DELETE CASCADE (삭제시 참조컬럼까지 삭제)
* 서브커리로 CREATE시 제약조건은 NOT NULL만 복사됨
@ CRUD
INSERT INTO 테이블명[(특정컬럼명)] VALUES (데이터값들)
UPDATE 테이블명 SET 컬럼명 = 데이터값 WHERE 조건
DELETE FROM 테이블명 WHERE 조건
*컬럼(데이터)삭제를 위해 제약조건 비활성화
ALTER TABLE 테이블명
DISABLE CONSTRAINT 컬럼명 CASCADE
*활성화
ENABLE
@ 컬럼추가
ALTER TABLE 테이블명 ADD (컬럼명 컬럼타입 [속성])
@ 컬럼수정
ALTER TABLE 테이블명 MODIFY 컬럼명 컬럼타입
@ 컬럼삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명
* 제약조건 있는 컬럼삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명 CASCADE CONSTRAINT
@ 제약조건추가
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(제약컬럼명)
*NOT NULL 인 경우
ALTER TABLE 테이블명 MODIFY 컬럼명 CONSTRAINT 제약조건명 NOT NULL
@ 제약조건삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명
*NOT NULL 인경우
ALTER TABLE 테이블명 MODIFY 테이블명 NULL
@ 컬럼이름변경
ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 바꿀컬럼명
@ 제약조건이름변경
ALTER TABLE 테이블명 RENAME CONSTRAINT 제약조건명 TO 바꿀제약조건명
@ 테이블이름변경
ALTER TABLE 테이블명 RENAME TO 바꿀테이블명
RENAME 테이블명 TO 바꿀테이블명
@ 테이블삭제
DROP TABLE 테이블명 CASCADE CONSTRAINT
@ 뷰 생성
CREATE OR REPLACE VIEW 뷰이름[컬럼별칭..] AS (SELECT ~~~);
* 서브쿼리에 함수사용시 반드시 별칭 지정
* 뷰의 데이터를 손대면 베이스테이블 값도 변경됨
* 베이스 컬럼에 NOT NULL이 포함되어 있으면 VIEW 조작불가능,
* 산술포함식도 마찬가지
@ SEQUENCE 시퀀스
CREATE SEQUENCE 시퀀스명
[START WITH 숫자] //처음발생시킬 시작값
[INCREMENT BY 숫자] //다음 값에대한 증가치
*시퀀스명.CURRVAL // 현재번호
*시퀀스명.NEXTVAL // 다음번호 (주로사용)
* 수정시
ALTER SEQUENCE 시퀀스명