-
ORACLE_DDL(CREATE, ALTER, DROP)Oracle SQL 2022. 3. 25. 00:10
DDL(Data Definition Language)
: 데이터 정의어(객체 관련)
-CREATE(객체 생성)
-ALTER(객체 수정)
-DROP(객체 삭제)
CREATE
<생성 구조>
CREATE TABLE 테이블명(
컬럼명 데이터타입(데이터 크기),
컬럼명 데이터타입(데이터 크기),
컬럼명 데이터타입(데이터 크기)
);
<데이터 타입>
1) 문자
-CHAR(크기[바이트/문자]) : 고정 문자열 자료형 (최대 2000byte)
ex.CHAR(10) 1바이트 -->한글 3글자
CHAR(10char)-->한글 10글자
-VARCHAR2(크기[바이트/문자]) : 가변 문자열 자료형 (최대 4000byte)
ex.CHAR(10char) --> 안녕하세요_ _ _ _ _
VARCHAR2(10char) --> 안녕하세요
-NVARCHAR2 : 문자 개수 자체를 길이로 계산하는 자료형
-->유니코드에 적합하다.
고정되어있는 (크기)는 변하지않고 크기가 넘어가게되면 에러남!!
대부분 바이트 자체로 많이 사용한다.
2) 숫자
: NUMBER[(P, S)]
NUMBER : 최대 40자리
NUMBER(크기) : 길이 지정 가능
P : 최대 자리수
S : 소수점 자리수
ex. NUMBER(4, 3) --> 최대 네 자리수, 소수점 세 자리 허용.
3) 날짜
: DATE, TIMESTAMP
<컬럼에 주석달기>
COMMENT ON COLUMN 테이블명.컬럼명 IS '주석내용';
COMMENT ON COLUMN MEMBER.MEMBER_ID IS '회원 아이디'; COMMENT ON COLUMN MEMBER.MEMBER_PWD IS '회원 비밀번호'; COMMENT ON COLUMN MEMBER.MEMBER_NAME IS '회원 이름'; SELECT * FROM USER_TABLES;--사용자가 작성한 테이블을 확인하는 뷰 SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'MEMBER'; DESC MEMBER;
<제약조건>(CONSTRAINTS)
: 테이블 작성 시 각 컬럼마다 값 기록에 대한 제약 조건 설정 가능
데이터 무결성 보장 목적 (데이터 무결성 : 데이터의 정확성, 일관성, 유효성 유지)
입력 데이터에 문제가 없는지 검사하는 목적
DESC USER_CONSTRAINTS; SELECT * FROM USER_CONSTRAINTS; CREATE TABLE USER_NOCONST( USER_NO NUMBER, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(30), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) ); INSERT INTO USER_NOCONST VALUES(1, 'user01', 'pass01', '김나라', '여', '010-1111-2222', 'kim@k.k'); INSERT INTO USER_NOCONST VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL); --값 대입, NULL 대입도 가능
<제약조건 종류>
1) NOT NULL
: 데이터에 NULL 허용X
2) UNIQUE
: 중복된 값 허용X
3) PRIMARY KEY
: NOT NULL + UNIQUE (NULL X, 중복X) --> 고유 식별자
4) FOREIGN KEY
: 외부 테이블에서 참조해 온 컬럼 값이 존재하면 허용
5) CHECK
: 데이터 값의 범위나 조건을 지정해 설정한 값만 허용
1) NOT NULL
반드시 들어가야하는 값에 NOT NULL로 컬럼 레벨에서 제한 (컬럼 옆에 제약조건 설정)
CREATE TABLE USER_NOTNULL( USER_NO NUMBER NOT NULL, USER_ID VARCHAR2(20) NOT NULL, USER_PWD VARCHAR2(30) NOT NULL, USER_NAME VARCHAR2(30) NOT NULL, GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) ); INSERT INTO USER_NOTNULL VALUES(1, 'user01', 'pass01', '김나라', '여', '010-1111-2222', 'kim@k.k'); INSERT INTO USER_NOTNULL VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL);--NOT NULL때문에 NULL값 불가능 INSERT INTO USER_NOTNULL VALUES(2, 'user02', 'pass02', '김라나', NULL, NULL, NULL);
2) UNIQUE
입력 값이 중복되지 않도록 컬럼 레벨과 테이블 레벨에 설정 가능 (중복X 설정)
2)-1 컬럼레벨
CREATE TABLE USER_UNIQUE( USER_NO NUMBER, USER_ID VARCHAR2(20) UNIQUE,--컬럼 레벨에서 제약조건 설정 가능 USER_PWD VARCHAR2(30), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) ); INSERT INTO USER_UNIQUE VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); INSERT INTO USER_UNIQUE VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k');--'user01' 불가능(중복X) INSERT INTO USER_UNIQUE VALUES(1, 'user02', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); --UNIQUE인 USER_ID만 중복불가능하고 다른 정보들은 중복가능.
2)-2 테이블 레벨
CREATE TABLE USER_UNIQUE2( USER_NO NUMBER, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(30), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), UNIQUE(USER_ID)--테이블 레벨 );
CREATE TABLE USESR_UNIQUE3( USER_NO NUMBER, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(30), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), UNIQUE(USER_NO, USER_ID)--묶어서 사용가능, 둘다 중복 불가능 ); INSERT INTO USER_UNIQUE3 VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); INSERT INTO USER_UNIQUE3 VALUES(2, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k');--USER_ID 중복되서 불가능 INSERT INTO USER_UNIQUE3 VALUES(1, 'user02', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k');--USER_NO 중복되서 불가능 INSERT INTO USER_UNIQUE3 VALUES(2, 'user02', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k');--USER_NO, USER_ID에 중복없기 때문에가능 INSERT INTO USER_UNIQUE3 VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k');--USER_ID, USER_NO 둘다 중복되서 불가능
<제약조건 이름 설정>
CONSTRAINT 설정할 이름명 UNIQUE(적용할 변수명)
CREATE TABLE CONS_NAME( TEST_DATA1 VARCHAR2(20) CONSTRAINT CN_TD1_NN NOT NULL,--CN_TD1_NN 테이블명, 컬럼명, NOT NULL TEST_DATA2 VARCHAR2(20) CONSTRAINT CN_TD2_UQ UNIQE, TEST_DATA3 VARCHAR2(20), CONSTRAINT CN_TD3_UK UNIQUE(TEST_DATA3) ); INSERT INTO CONS_NAME VALUES('Z', 'A', 'B');
3) PRIMARY KEY
NOT NULL + UNIQUE --> 고유 식별자
-한 테이블 당 한 개만 설정 가능 (고유 -> 유일하기 때문에)
CREATE TABLE USER_PRIMARYKEY( USER_NO NUMBER CONSTRAINT UP_UNO_PK PRIMARY KEY, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(30), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) ); INSERT INTO USER_PRIMARYKEY VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); INSERT INTO USER_PRIMARYKEY VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); --중복일 때 --> 무결성 제약 조건에 위배(마치 유니크에서 오류난 것처럼 뜸)
CREATE TABLE USER_PRIMARYKEY2( USER_NO NUMBER, USER_ID VARCHAR2(20), USER_PWD VARCHAR2(30), USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), CONSTRAINT UP2_UNO_UI_PK PRIMARY KEY(USER_NO, USER_ID) ); INSERT INTO USER_PRIMARYKEY2 VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); INSERT INTO USER_PRIMARYKEY2 VALUES(1, 'user02', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); --USER_NO 중복되서 불가능 INSERT INTO USER_PRIMARYKEY2 VALUES(2, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k'); --USER_NO와 USER_ID가 중복되지 않아서 가능함.
4) FOREIGN KEY
: 외부 테이블에서 참조해 온 컬럼 값이 존재하면 허용
CREATE TABLE USER_GRADE(--부모테이블 GRADE_CODE NUMBER PRIMARY KEY, GRADE_NAME VARCHAR2(30) NOT NULL ); INSERT INTO USER_GRADE VALUES(10, '일반회원'); INSERT INTO USER_GRADE VALUES(20, '우수회원'); INSERT INTO USER_GRADE VALUES(30, '특별회원'); CREATE TABLE USER_FOREIGNKEY(--자식테이블(부모테이블 참조) USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20) UNIQUE, USER_PWD VARCHAR2(30) NOT NULL, USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), GRADE_CODE NUMBER, CONSTRAINT UF_GC_FK FOREIGN KEY(GRADE_CODE) REFERENCES USER_GRADE(GRADE_CODE) ); INSERT INTO USER_FOREIGNKEY VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k', 10); INSERT INTO USER_FOREIGNKEY VALUES(2, 'user02', 'pass02', '남나눔', '남', '010-2222-3333', 'nam@n.n', 10); INSERT INTO USER_FOREIGNKEY VALUES(3, 'user03', 'pass03', '도대담', '남', '010-3333-4444', 'do@d.d', 30); INSERT INTO USER_FOREIGNKEY VALUES(4, 'user04', 'pass04', '류라라', '여', '010-2222-1111', 'ryu@r.r', NULL); --참조하는 테이블(=부모테이블)의 참조 컬럼 값 외에 NULL 값도 가능 INSERT INTO USER_FOREIGNKEY VALUES(5, 'user05', 'pass05', '문미미', '여', '010-1111-0000', 'moon@m.m', 50); --ORA-02291: 무결성 제약조건(KH.UF_GC_FK)이 위배되었습니다- 부모 키가 없습니다 --부모테이블의 USER_GRADE에 50이 없는데 50을 참조
<삭제 옵션>
1) DELETE
DELETE FROM USER_GRADE WHERE GRADE_CODE = 10; --ORA-02292: 무결성 제약조건(KH.UF_GC_FK)이 위배되었습니다- 자식 레코드가 발견되었습니다 --참조되어 사용되어서 삭제 불가능이라고 오류 뜸. DELETE FROM USER_GRADE WHERE GRADE_CODE = 20; --참조되고있지않아서 삭제 가능.
2) ON DELETE SET NULL
CREATE TABLE USER_GRADE2(--부모테이블 GRADE_CODE NUMBER PRIMARY KEY, GRADE_NAME VARCHAR2(30) NOT NULL ); INSERT INTO USER_GRADE2 VALUES(10, '일반회원'); INSERT INTO USER_GRADE2 VALUES(20, '우수회원'); INSERT INTO USER_GRADE2 VALUES(30, '특별회원'); CREATE TABLE USER_FOREIGNKEY2(--자식테이블(부모테이블 참조) USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20) UNIQUE, USER_PWD VARCHAR2(30) NOT NULL, USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), GRADE_CODE NUMBER, CONSTRAINT UF2_GC_FK FOREIGN KEY(GRADE_CODE) REFERENCES USER_GRADE2(GRADE_CODE) ON DELETE SET NULL --ON DELETE SET NULL : 삭제 옵션 ); INSERT INTO USER_FOREIGNKEY2 VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k', 10); INSERT INTO USER_FOREIGNKEY2 VALUES(2, 'user02', 'pass02', '남나눔', '남', '010-2222-3333', 'nam@n.n', 10); INSERT INTO USER_FOREIGNKEY2 VALUES(3, 'user03', 'pass03', '도대담', '남', '010-3333-4444', 'do@d.d', 30); INSERT INTO USER_FOREIGNKEY2 VALUES(4, 'user04', 'pass04', '류라라', '여', '010-2222-1111', 'ryu@r.r', NULL); --참조하는 테이블(=부모테이블)의 참조 컬럼 값 외에 NULL 값도 가능
3) ON DELETE CASCADE
: 부모 키 삭제 시 자식 키도 함께 삭제
CREATE TABLE USER_GRADE3(--부모테이블 GRADE_CODE NUMBER PRIMARY KEY, GRADE_NAME VARCHAR2(30) NOT NULL ); INSERT INTO USER_GRADE3 VALUES(10, '일반회원'); INSERT INTO USER_GRADE3 VALUES(20, '우수회원'); INSERT INTO USER_GRADE3 VALUES(30, '특별회원'); CREATE TABLE USER_FOREIGNKEY3(--자식테이블(부모테이블 참조) USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20) UNIQUE, USER_PWD VARCHAR2(30) NOT NULL, USER_NAME VARCHAR2(30), GENDER VARCHAR2(10), PHONE VARCHAR2(30), EMAIL VARCHAR2(50), GRADE_CODE NUMBER, CONSTRAINT UF3_GC_FK FOREIGN KEY(GRADE_CODE) REFERENCES USER_GRADE3(GRADE_CODE) ON DELETE CASCADE --ON DELETE CASCADE : 부모 키 삭제 시 자식 키도 함께 삭제 ); INSERT INTO USER_FOREIGNKEY3 VALUES(1, 'user01', 'pass01', '김나리', '여', '010-1111-2222', 'kim@k.k', 10); INSERT INTO USER_FOREIGNKEY3 VALUES(2, 'user02', 'pass02', '남나눔', '남', '010-2222-3333', 'nam@n.n', 10); INSERT INTO USER_FOREIGNKEY3 VALUES(3, 'user03', 'pass03', '도대담', '남', '010-3333-4444', 'do@d.d', 30); INSERT INTO USER_FOREIGNKEY3 VALUES(4, 'user04', 'pass04', '류라라', '여', '010-2222-1111', 'ryu@r.r', NULL); --참조하는 테이블(=부모테이블)의 참조 컬럼 값 외에 NULL 값도 가능
5) CHECK
데이터 값의 범위나 조건을 지정해 설정한 값만 허용
CREATE TABLE USER_CHECK( USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20) UNIQUE, USER_PWD VARCHAR2(30) NOT NULL, USER_NAME VARCHAR2(30), GENDER VARCHAR2(10) CHECK(GENDER IN('남', '여')), PHONE VARCHAR2(30), EMAIL VARCHAR2(50) ); INSERT INTO USER_CHECK VALUES(1, 'user01', 'pass01', '강건강', '남', '010-1111-2222', 'kang@k.k'); INSERT INTO USER_CHECK VALUES(2, 'user02', 'pass02', '남나눔', '남자', '010-1111-2222', 'kang@k.k'); CREATE TABLE USER_CHECK2( TEST_NUMBER NUMBER, CONSTRAINT UC2_TN_CK CHECK(TEST_NUMBER > 0) ); INSERT INTO USER_CHECK2 VALUES(10); INSERT INTO USER_CHECK2 VALUES(-1);
<CREATE 작성 예시>
CREATE TABLE USER_TEST( USER_NO NUMBER CONSTRAINT PK_UT_USERNO PRIMARY KEY, USER_ID VARCHAR2(20) CONSTRAINT UQ_UT_USERID UNIQUE, USER_PWD VARCHAR2(20) CONSTRAINT NN_UT_USERPWD NOT NULL, PNO VARCHAR2(20) CONSTRAINT NN_UT_PNO NOT NULL, GENDER VARCHAR2(3) CONSTRAINT CK_UT_GENDER CHECK(GENDER IN('남', '여')), PHONE VARCHAR2(20), ADDRESS VARCHAR2(100), STATUS VARCHAR2(3) CONSTRAINT NN_UT_STATUS NOT NULL, CONSTRAINT UQ_UT_PNO UNIQUE(PNO), CONSTRAINT CK_UT_STATUS CHECK(STATUS IN('Y', 'N')) ); COMMENT ON COLUMN USER_TEST.USER_NO IS '회원번호'; COMMENT ON COLUMN USER_TEST.USER_ID IS '회원아이디'; COMMENT ON COLUMN USER_TEST.USER_PWD IS '회원 비밀번호'; COMMENT ON COLUMN USER_TEST.PNO IS '주민등록번호'; COMMENT ON COLUMN USER_TEST.GENDER IS '성별'; COMMENT ON COLUMN USER_TEST.PHONE IS '전화번호'; COMMENT ON COLUMN USER_TEST.ADDRESS IS '주소'; COMMENT ON COLUMN USER_TEST.STATUS IS '탈퇴여부'; INSERT INTO USER_TEST VALUES(1, 'user01', 'pass01', '010101-1800000', '남', '010-1111-2222', '서울', 'N'); INSERT INTO USER_TEST VALUES(2, 'user02', 'pass02', '121201-1500000', '남', '010-2222-3333', '강원', 'N'); INSERT INTO USER_TEST VALUES(3, 'user03', 'pass03', '110101-1200000', '남', '010-3333-4444', '광주', 'N'); INSERT INTO USER_TEST VALUES(4, 'user04', 'pass04', '100101-2200000', '여', '010-4444-5555', '부산', 'N'); INSERT INTO USER_TEST VALUES(5, 'user05', 'pass05', '890101-2200000', '여', '010-5555-6666', '제주', 'N');
<SUBQUERT를 이용한 테이블 생성>
CREATE TABLE EMPLOYEE_COPY AS SELECT * FROM EMPLOYEE; SELECT * FROM EMPLOYEE_COPY; CREATE TABLE EMPLOYEE_COPY2 AS SELECT EMP_ID, EMP_NAME, SALARY, DEPT_TITLE, JOB_NAME FROM EMPLOYEE LEFT JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID) JOIN JOB USING(JOB_CODE); SELECT * FROM EMPLOYEE_COPY2;
<제약조건 추가>
ALTER TABLE 테이블명 ADD 제약조건;
CREATE TABLE USER_GRADE4( GRADE_CODE NUMBER, GRADE_NAME VARCHAR2(30) ); ALTER TABLE USER_GRADE4 ADD /*CONSTRAINT UG4_GC_PK*/ PRIMARY KEY(GRADE_CODE); CREATE TABLE USER_PRIMARYKEY4( USER_NO NUMBER PRIMARY KEY, USER_ID VARCHAR2(20),--UNIQUE USER_PWD VARCHAR2(30),--NOT NULL USER_NAME VARCHAR2(30), GENDER VARCHAR2(10),--CHECK PHONE VARCHAR2(30), EMAIL VARCHAR2(50), GRADE_CODE NUMBER--FOREIGN KEY ); ALTER TABLE USER_FOREIGNKEY4 ADD UNIQUE(USER_ID); ALTER TABLE USER_FOREIGNKEY4 MODIFY USER_PWD NOT NULL; ALTER TABLE USER_FOREUGNKEY4 ADD CHECK(GENDER IN('남', '여')); ALTER TABLE USER_FOREUGNKEY4 ADD FOREIGN KEY(GRADE_CODE) REFERENCES USER_GRADE4(GRADE_CODE); --생략가능 참조하는 테이블에 프라이머리 가져와서 참조하면 생략가능!!! ALTER TABLE USER_FOREUGNKEY4 ADD FOREIGN KEY(GRADE_CODE) REFERENCES USER_GRADE4;
미니실습
: DEPARTMENT테이블의 LOCATION_ID에 외래키 제약조건 추가
(참조 테이블은 LOCATION, 참조 컬럼은 LOCATION은 기본키)ALTER TABLE DEPARTMENT ADD FOREIGN KEY(LOCATION_ID) REFERENCES LOCATION;
ALTER
객체 수정
-컬럼 추가/삭제, 제약조건 추가/삭제, 컬럼 자료형 변경, DEFAULT값 변경
-테이블 명/ 컬럼 명/ 제약조건 명 변경
-컬럼 추가, 삭제, 수정
<컬럼 추가>
ALTER TABLE 추가할 테이블명
ADD(생성할 컬럼명 데이터타입(크기));
ALTER TABLE DEPT_COPY ADD (ANAME VARCHAR2(20));
DEFAULT값 변경
ALTER TABLE DEPT_COPY ADD (ANAME VARCHAR2(40) DEFAULT '한국');
<컬럼수정>
MODIFY 사용
ALTER TABLE DEPT_COPY MODIFY DEPT_ID CHAR(3) MODIFY DEPT_TITLE VARCHAR2(30) MODIFY LOCATION_ID VARCHAR2(20) MODIFY ANAME CHAR(25) MODIFY BNAME DEFAULT '미국'; INSERT INTO DEPT_COPY VALUES('010', '생산부', 'L2', NULL, DEFAULT); SELECT * FROM DEPT_COPY; ALTER TABLE DEPT_COPY MODIFY DEPT_TITLE VARCHAR2(10); --**오류**일부 값이 너무 커서 열 길이를 줄일 수 없음
<컬럼 삭제>
DROP
-DROP이 실행되면 COMMIT이 자동으로 됨.-->이후에 ROLLBACK 실행이 안됨.--> 이미 커밋이 된 이후이기 때문이다.
-테이블에 모든 열들을 삭제할 수 없다.--> 한개는 남아 있어야함.
ALTER TABLE DEPT_COPY2 DROP COLUMN DEPT_ID; ROLLBACK;--ROLLBACK 불가능!
<CASCADE CONSTRAINTS>
제약조건과 함께 삭제
ALTER TABLE TB1 DROP COLUMN PK1 CASCADE CONSTRAINTS; SELECT * FROM TB1;
<제약조건 추가 예시>
ALTER TABLE DEPT_COPY ADD CONSTRAINT DCOPY_DID_PK PRIMARY KEY(DEPT_ID) ADD CONSTRAINT DCOPY_DTITLE_UQ UNIQUE(DEPT_TITLE) MODIFY LNAME CONSTRAINT DCOPY_LNAME_NN NOT NULL;
DEPT_COPY의 DEPT_ID컬럼에 PRIMARY KEY(DCOPY_DID_PK),
DEPT_TITLE컬럼에 UNIQUE(DCOPY_DTITLE_UQ),
LNAME컬럼에 NOT NULL(DCOPY_LNAME_NN)추가<제약조건 삭제>
ALTER TABLE DEPT_COPY DROP CONSTRAINT DCOPY_DID_PK; ALTER TABLE DEPT_COPY DROP CONSTRAINT DCOPY_DTITLE_UQ DROP CONSTRAINT SYS_C007611 MODIFY ANAME NULL;
<컬럼명 변경>
ALTER TABLE DEPT_COPY RENAME COLUMN DEPT_TITLE TO DEPT_NAME;
<제약조건 이름 변경>
ALTER TABLE DEPT_COPY RENAME CONSTRAINT SYS_C007612 TO DCOPY_LID_NN;
<테이블 명 변경>
ALTER TABLE DEPT_COPY RENAME TO DEPT_TEST;
<테이블 삭제>
DROP TABLE DEPT_TEST CASCADE CONSTRAINTS;
'Oracle SQL' 카테고리의 다른 글
오라클_DDL_예제_문제풀이 (0) 2022.03.25 ORACLE_DML (0) 2022.03.25 오라클_시험대비_기본개념정리[1] (0) 2022.03.24 오라클_VIEW_예제_문제풀이[1] (0) 2022.03.23 오라클_예제_문제풀이[2] (0) 2022.03.21