[SQL] 테이블

테이블

-- 테이블 생성
-- CRUD : 약어 , DB 또는 실무 프로젝트 많이 사용하는 용어
-- C(CREATE 문(생성)), R(READ, SELECT 문(조회)), U(UPDATE 문(수정)), D(DELETE 문(삭제))
-- 테이블 의미 : DB(데이터베이스)에서 자료를 저장하는 곳(논리적 공간)
-- 프로젝트 : 개발자 계정으로 접속해서 테이블 등을 생성함 (SCOTT 계정)

데이터 정의어 DDL( DATA DEFINITION LANGUAGE )

 

테이블 CUD 예제 

-- 08_Table_CUD.sql

-- 1) 테이블 생성 : DDL( DATA DEFINITION LANGUAGE : 데이터 정의어(용어))
-- NUMBER(크기) : 숫자 자료형, (실수, 정수 등)
-- 예) NUMBER(2) : 2자리수 정수, NUMBER(2, 3) : 2자리수 정수 + 3자리수 소수점
--    NUMBER : 실수, 정수 무한 크기로 지정가능
-- 단, 크기가 지정되면 그 크기 이하로만 값을 넣을 수 있음(기본)
-- VARCHAR2(크기) : 문자열 자료형, 가변자료형 (VS CHAR(크기): 고정자료형)
-- 예) VARCHAR2(4000) : 최고 크기, VARCHAR2 : 잘 안씀(1글자만 들어감)
-- 사용법) CREATE TABLE 테이블명(
--        컬럼명 자료형(크기),
--        ...
--        );
CREATE TABLE DEPT(
        DNO NUMBER(2),
        DNAME VARCHAR2(14),
        LOC   VARCHAR2(13)
);

-- 예제 1) 사원테이블 : EMP
--        컬럼명 : ENO(사원번호, 숫자(4,0)
--                ENAME (사원명, 문자형(10)
--                JOB(직위, 문자형(9)
--                MANAGER(관리자) 숫자(4,0)
--                HIREDATE 입사일, 날짜형 (DATE)
--                SALARY 월급, 숫자형(7,2)
--                COMMISSION 상여금, 숫자형(7,2)
--                DNO  부서번호,  숫자형(2,0)  
CREATE TABLE EMP(
    ENO NUMBER(4,0),
    ENAME VARCHAR2(10),
    JOB VARCHAR2(9),
    MANAGER NUMBER(4,0),
    HIREDATE DATE,
    SALARY NUMBER(7,2),
    COMMISSION NUMBER(7,2),
    DNO NUMBER(2,0)
);

-- 실무 예 : 테이블만들기 : 테이블 복사(카피) 
-- 예제2) DEPARTMENT 테이블 복사하기 : DEPT_COPY 테이블을 만드세요
-- 1) 데이터까지 포함해서 복사
-- 사용법) CREATE TABLE 복사할테이블명
--        AS
--        SELECT * FROM 원본테이블;
CREATE TABLE DEPT_COPY
AS
SELECT * FROM DEPARTMENT;

-- 2) 데이터 빼고 테이블 설계(디자인)만 복사
-- 사용법) CREATE TABLE 복사할테이블명
--        AS
--        SELECT * FROM 원본테이블
--        WHERE 거짓조건
CREATE TABLE DEPT_COPY2
AS
SELECT * FROM DEPARTMENT
WHERE 1=2; -- 거짓조건 아무거나 붙이면 데이터 빼고 복사됨

-- 컬럼/테이블 주석 : 테이블/컬럼에 상세 설명을 붙일 수 있음
-- 예제 3) DEPT 테이블에 테이블/컬럼 주석 달기
-- 1) 테이블 주석 달기
-- 사용법) COMMENT ON TABLE 테이블명 IS '테이블주석';
COMMENT ON TABLE DEPT IS '부서정보';

-- 2) 컬럼 주석 달기
-- 사용법) COMMENT ON COLUMN 테이블명.컬럼명 IS '컬럼주석';
COMMENT ON COLUMN DEPT.DNO IS '부서번호';
COMMENT ON COLUMN DEPT.DNAME IS '부서명';
COMMENT ON COLUMN DEPT.LOC IS '부서위치';

-- 예제 3) 사원테이블의 EMP 의 테이블 주석/컬럼주석을 작성해서
--      만들어 주세요
--    보기 : EMP ( 테이블주석 : 사원정보 )
--       컬럼주석 : ENO(사원번호), 
--                 ENAME(사원명), 
--                 JOB(직위), 
--                 MANAGER(관리자), 
--                 HIREDATE(입사일), 
--                 SALARY(월급), 
--                 COMMISSION(상여금), 
--                 DNO(부서번호)
COMMENT ON COLUMN EMP.ENO        IS '사원번호'; 
COMMENT ON COLUMN EMP.ENAME      IS '사원명'; 
COMMENT ON COLUMN EMP.JOB        IS '직위'; 
COMMENT ON COLUMN EMP.MANAGER    IS '관리자'; 
COMMENT ON COLUMN EMP.HIREDATE   IS '입사일'; 
COMMENT ON COLUMN EMP.SALARY     IS '월급'; 
COMMENT ON COLUMN EMP.COMMISSION IS '상여금'; 
COMMENT ON COLUMN EMP.DNO        IS '부서번호';
COMMENT ON TABLE EMP IS '사원정보';

-- 2) 테이블 삭제 : DROP TABLE 테이블명;
DROP TABLE DEPT_COPY;

-- 예제 5) DEPT_COPY2 테이블 삭제하세요
DROP TABLE DEPT_COPY2;

-- 3) 데이터 추가(INSERT(CREATE))/삭제(DELETE)/수정(UPDATE) 명령어 : CUD
-- DML 문(DATA MANIPULATION LANGUAGE : 데이터 조작어)
-- 특징 : 명령문 실행 후 취소(ROLLBACK)
-- 1) 테이블 복사 : DEPT_COPY (원본 : DEPARTMENT(부서) ) [데이터 빼고]
CREATE TABLE DEPT_COPY
AS
SELECT * FROM DEPARTMENT
WHERE 1=2;

-- 예제 6) DEPT_COPY 테이블에 데이터 INSERT
-- 컬럼 : DNO(NUMBER(2,0)), DNAME(VARCHAR2(14), LOC(VARCHAR2(13)
-- 사용법) INSERT INTO 테이블명(컬럼명, 컬럼명2, ...)
--        VALUES(값, 값2, ...); -- 데이터 추가
INSERT INTO DEPT_COPY(DNO, DNAME, LOC)
VALUES(10, 'ACCOUNTING', 'NEW YORK'); -- 데이터 추가

SELECT * FROM DEPT_COPY; -- 데이터 확인

-- 취소 : ROLLBACK;
ROLLBACK;

-- 영구 반영 : 취소(ROLLBACK)불가상태
-- 의미 : 영구 반영하면 다른 유저가 현재 생성한/수정/삭제한 데이터를 볼 수 있음
COMMIT;

-- 예제 7) 임시적으로 NULL 값을 입력해서 INSERT 하기
-- 1) 암묵적으로(눈에 안보이지만) NULL 값 INSERT 하기
INSERT INTO DEPT_COPY(DNO, DNAME)
VALUES(30, 'SALES'); -- 데이터 생성

SELECT * FROM DEPT_COPY; -- 데이터 확인
-- 영구 반영
COMMIT;
-- 2) 명시적으로 NULL 값 넣기
INSERT INTO DEPT_COPY(DNO, DNAME, LOC)
VALUES(40, 'OPERATIONS', NULL); -- 데이터 생성

SELECT * FROM DEPT_COPY; -- 데이터 확인
-- 영구 반영
COMMIT;

-- 연습 2) DEPT_COPY 테이블에 50 부서 'COMPUTING' 만들고,
--        LOC 는 ' ' 공백으로 INSERT 하세요( 영구 반영 )
INSERT INTO DEPT_COPY(DNO, DNAME, LOC)
VALUES(50, 'COMPUTING', ' ');

-- 결과 보기
SELECT * FROM DEPT_COPY; -- 데이터 확인
-- 영구 반영
COMMIT;

-- 연습용 테이블 복사 : EMP_COPY (원본 : EMPLOYEE) [데이터 빼고]
CREATE TABLE EMP_COPY
AS
SELECT * FROM EMPLOYEE
WHERE 1=2; -- 거짓조건

-- 연습 2) EMP_COPY 테이블에 데이터 입력하기
--  ENO - 7000, ENAME - 'CANDY', JOB - 'MANAGER',
--  HIREDATE - '2012/05/01', DNO - 10
INSERT INTO EMP_COPY(ENO, ENAME, JOB, HIREDATE, DNO)
VALUES(7000, 'CANDY', 'MANAGER', '2012/05/01', 10);

-- 영구 반영
COMMIT;
SELECT * FROM EMP_COPY;

-- 예제 8) 명시적으로 날짜형으로 변환해서 INSERT 하기
-- 날짜함수 : TO_DATE(문자열, '날짜포맷')
-- 날짜포맷 : 'YYYY-MM-DD HH24:MI:SS'
INSERT INTO EMP_COPY(ENO, ENAME, JOB, HIREDATE, DNO)
VALUES(7010, 'CANDY2', 'MANAGER', TO_DATE('2012/05/01','YYYY-MM-DD HH24:MI:SS'), 10);
-- 영구 반영
COMMIT;
SELECT * FROM EMP_COPY;

-- 예제 9) INSERT 할때 현재날짜(시간) 데이터 넣기 : SYSDATE (현재날짜)
INSERT INTO EMP_COPY(ENO, ENAME, JOB, HIREDATE, DNO)
VALUES(7020, 'CANDY3', 'MANAGER', SYSDATE, 10);
-- 영구 반영
COMMIT;
SELECT * FROM EMP_COPY;

-- 예제 10) 다른 테이블의 데이터만 복사하기
SELECT * FROM DEPT_COPY;
-- 빠른 삭제 : DELETE 문 보다 속도 빠름
-- 전체 삭제만 됨, 취소불가(ROLLBACK)
-- 사용법) TRUNCATE TABLE 테이블명;
TRUNCATE TABLE DEPT_COPY;

-- 다른 테이블의 데이터 복사(원본데이터 : DEPARTMENT(부서))
-- 사용법) INSERT INTO 복사될테이블명
--        SELECT * FROM 원본테이블명;
INSERT INTO DEPT_COPY
SELECT * FROM DEPARTMENT;
-- 결과 확인
SELECT * FROM DEPT_COPY;
-- 영구 반영
COMMIT;

 

테이블 CUD 예제2

 

-- 09_Table_CUD_2.sql
-- UPDATE(수정)
-- 대상 : DEPT_COPY 실습
SELECT * FROM DEPT_COPY;
-- 예제 1) 10 번 부서의 이름 수정하기 : 'ACCOUNTING' -> 'PROGRAMMING'
-- 사용법) UPDATE 테이블명
--        SET
--           컬럼명 = 변경할값
--        WHERE 컬러명 = 값; (조건)
UPDATE DEPT_COPY
SET
    DNAME = 'PROGRAMMING'
WHERE DNO = 10;
-- 영구 반영 : 다른 사람이 변경된 데이터를 볼 수 있음
COMMIT;

-- 연습 1) 20번 부서 이름(DNAME) 수정하기 : 'HR'  (인력팀)
UPDATE DEPT_COPY
SET
    DNAME = 'HR'
WHERE DNO = 20;
SELECT * FROM DEPT_COPY; -- 결과 확인
COMMIT;  -- 영구반영

-- 연습(응용) 2) 컬럼 값을 여러개 수정하기
--        10 번 부서의 부서명을 'PROGRAMMING2', 부서위치를 'SEOUL' 로 수정하세요
-- 힌트) SET 컬럼명 = 값 , 컬럼명2 = 값2 ...
UPDATE DEPT_COPY
SET
    DNAME = 'PROGRAMMING2'
   ,LOC   = 'SEOUL'
WHERE DNO = 10;
SELECT * FROM DEPT_COPY; -- 결과 확인
COMMIT;  -- 영구반영

-- 전체 부서에 대해서 수정하기
UPDATE DEPT_COPY
SET
    DNAME = 'PROGRAMMING2'
   ,LOC   = 'SEOUL';
ROLLBACK; -- 취소

-- 예제 4) 10번 부서의 지역명을 (20번 부서의 지역명)으로 수정하기
-- 힌트) 서브쿼리로 수정하기
-- 1) 20번 부서의(DNO) 지역명(LOC)
SELECT LOC FROM DEPT_COPY WHERE DNO = 20; -- DALLAS
-- 2) UPDATE
UPDATE DEPT_COPY
SET
    LOC = (SELECT LOC FROM DEPT_COPY WHERE DNO = 20)
WHERE DNO = 10;
SELECT * FROM DEPT_COPY; -- 결과 확인
COMMIT; -- 영구 반영

-- 연습 3) 10 번 부서의 부서명, 지역명을 30번 부서의 부서명, 지역명으로 변경하기
-- 힌트) 서브쿼리
-- 1) 30번 부서의 부서명(DNAME), 지역명(LOC)
SELECT DNAME FROM DEPT_COPY WHERE DNO = 30; -- SALES
SELECT LOC FROM DEPT_COPY WHERE DNO = 30; -- CHICAGO

-- 2) update 
UPDATE DEPT_COPY
SET
    DNAME = (SELECT DNAME FROM DEPT_COPY WHERE DNO = 30)
    ,LOC = (SELECT LOC FROM DEPT_COPY WHERE DNO = 30)
WHERE DNO = 10;
SELECT * FROM DEPT_COPY;

-- 다른 풀이 : 결과 같음
UPDATE DEPT_COPY
SET
    (DNAME, LOC) = (SELECT DNAME, LOC FROM DEPT_COPY WHERE DNO = 30)
WHERE DNO = 10;

-- DELETE : 삭제(D), 전체삭제,부분삭제 모두 가능, 취소가능
-- VS TRUNCATE TABLE 테이블; (빠른 전체삭제, 취소불가)
-- 예제 6) 10번 부서를 삭제하세요
-- 사용법) DELETE (FROM) 테이블명
--        WHERE 컬럼명 = 값; (조건)
-- FROM 생략가능
DELETE FROM DEPT_COPY
WHERE DNO = 10;
SELECT * FROM DEPT_COPY;
-- 영구 반영
COMMIT;

-- 연습 1) 영업부에(SALES) 에 근무하는 사원(DNO) 삭제하기
-- 힌트) 서브쿼리 사용해서 삭제
-- 1) 영업부에(SALES)에 해당하는 부서번호를 찾고 : 30
SELECT DNO FROM DEPT_COPY WHERE DNAME = 'SALES';
-- 2) 30 부서번호를 가진 사원을 삭제하기
DELETE DEPT_COPY
WHERE DNO = (SELECT DNO FROM DEPT_COPY WHERE DNAME = 'SALES');

-- 취소
ROLLBACK;
-- 영구 반영
COMMIT;
SELECT * FROM DEPT_COPY;

-- 기타 명령어
-- 테이블 설계구조 보기 : DESC 테이블명
DESC DEPT_COPY;


테이블 CUD 연습문제

-- 10_Table_CUD_Exam.sql
-- 테이블 : CUD(INSERT/UPDATE/DELETE) 연습문제
-- 1) EMPLOYEE 테이블의 구조만 복사하여 
--    EMP_INSERT 란 이름의 빈 테이블을 만드시오.

CREATE TABLE EMP_INSERT
AS
SELECT * FROM EMPLOYEE
WHERE 1=2;

-- 2) 본인을 EMP_INSERT 테이블에 추가하되 SYSDATE를 이용해서 입사일을 
--    오늘로 입력하세요.
--   예) ENO(사번) : 1, ENAME(사원명) : 'KTG', JOB(직위): 'STUDENT',
--      MANAGER(관리자) : NULL, HIREDATE(입사일) : SYSDATE, 
--      SALARY(월급): 2700, COMMISSION(상여금): 230, DNO(부서번호):10

INSERT INTO EMP_INSERT(ENAME, JOB, MANAGER, HIREDATE, SALARY, COMMISSION, DNO)
VALUES('DKJ', 'STUDENT', NULL, SYSDATE, 3500, 300, 70);
-- 영구 반영
COMMIT;
-- 결과 보기
SELECT * FROM EMP_INSERT;

-- 3) EMP_INSERT 테이블에 옆(아시는분) 사람을 추가하되 
--    TO_DATE 함수를 이용해서 입사일을 어제로 입력하세요.
-- 참고) INSERT 시 EMP_INSERT(컬럼명 ...) : 컬럼명 생략가능( 모든 데이터를 INSERT 할때만 가능 )


INSERT INTO EMP_INSERT(ENAME, JOB, MANAGER, HIREDATE, SALARY, COMMISSION, DNO)
VALUES('LDH', 'STUDENT', NULL, TO_DATE(SYSDATE-1,'YYYY/MM/DD'), 3500, 300, 70);

-- 다른 풀이 : 컬럼명 생략
INSERT INTO EMP_INSERT
VALUES('LDH', 'STUDENT', NULL, TO_DATE(SYSDATE-1,'YYYY/MM/DD'), 3500, 300, 70);
-- 영구 반영
COMMIT;
-- 결과 보기
SELECT * FROM EMP_INSERT;

-- 4) EMPLOYEE 테이블의 구조와 내용을 복사하여 
--    EMP_COPY란 이름의 테이블을 만드세요.
-- 단, EMP_COPY 테이블이 있으면 테이블을 삭제하고 다시 만드세요
DROP TABLE EMP_COPY;

CREATE TABLE EMP_COPY
AS 
SELECT * FROM EMPLOYEE;

-- 5) 사원번호가 7788인 사원의 부서번호를 10번으로 수정하세요.
--   ( 대상테이블 : EMP_COPY )

UPDATE EMP_COPY
SET DNO = 10
WHERE ENO = 7788;
COMMIT; -- 영구 반영
SELECT * FROM EMP_COPY;

-- 6) 사원번호가 7788의 담당 업무(JOB) 및 급여를(SALARY) 
--    사원번호 7499의 담당 업무(JOB) 및 급여와(SALARY) 
--    일치하도록 갱신하세요.( 대상테이블 : EMP_COPY )
--  힌트 : UPDATE 서브쿼리

SELECT JOB, SALARY FROM EMP_COPY WHERE ENO = 7499;

UPDATE EMP_COPY
SET (JOB, SALARY) = (SELECT JOB, SALARY FROM EMP_COPY WHERE ENO = 7499)
WHERE ENO = 7788;

COMMIT; -- 영구 반영
SELECT * FROM EMP_COPY;

-- 7) (사원번호(ENO) 7369)와 업무가 동일한 모든 사원의 부서번호를(DNO) 
--    (사원 7369의 현재 부서번호)로 갱신하세요.
-- 힌트) 조건절 (서브쿼리), SET 컬럼명=(서브쿼리)
-- 1) 사원번호(ENO) 7369 의 업무(JOB) 를 찾기 : 
-- 2) 사원번호(ENO) 7369의 현재 부서번호로 찾기 : 
-- 3) 2번을 UPDATE(SET 절 : 서브쿼리)
--    1번을 조건으로 걸기(WHERE 절 : 서브쿼리)

SELECT JOB
FROM EMP_COPY
WHERE ENO = 7369;

SELECT DNO
FROM EMP_COPY
WHERE ENO = 7369;

UPDATE EMP_COPY
SET DNO = (SELECT DNO
FROM EMP_COPY
WHERE ENO = 7369)
WHERE JOB = (SELECT JOB
FROM EMP_COPY
WHERE ENO = 7369);

COMMIT; -- 영구 반영

SELECT * FROM EMP_COPY;

-- 8) DEPARTMENT 테이블의 구조와 내용을 복사하여 
--    DEPT_COPY란 이름의 테이블을 만드세요.

DROP TABLE DEPT_COPY;

CREATE TABLE DEPT_COPY
AS
SELECT * FROM DEPARTMENT;

COMMIT; -- 영구 반영
SELECT * FROM DEPT_COPY;

-- 9) DEPT_COPY 테이블에서 부서명이(DNAME) RESEARCH 인 부서를 제거하세요.

DELETE FROM DEPT_COPY
WHERE DNAME = 'RESEARCH';

SELECT * FROM DEPT_COPY;

-- 10) DEPT_COPY 테이블에서 부서 번호가(DNO) 10이거나 40인 부서를 제거하세요.

DELETE DEPT_COPY
WHERE DNO IN (10, 40);

COMMIT;
SELECT * FROM DEPT_COPY;

 

테이블 ALTER 

-- 11_Table_Alter.sql
-- 테이블 구조(설계) 변경하기 : DBA(Database Administrator : DB 관리자)
-- 실습 테이블 : DEPT20 (구조만 복사)
CREATE TABLE DEPT20
AS
SELECT * FROM DEPARTMENT
WHERE 1=2;

-- 결과 보기
SELECT * FROM DEPT20;
-- 예제 1) 부서 테이블에 날짜 자료형을(DATE) 가지는 BIRTH 컬럼 추가하기(ADD)
-- 날짜 자료형 : DATE 사용(크기 없음)
-- 테이블에 새로운 컬럼 추가하기
-- 사용법) ALTER TABLE 테이블명 ADD(컬럼명 자료형);
ALTER TABLE DEPT20
ADD(BIRTH DATE);
-- 결과 보기
SELECT * FROM DEPT20;

-- 예제 2) 부서테이블에(DEPT20) 부서명(DNAME) 의 크기를 변경하기(기존 -> 수정(MODIFY))
-- 테이블에 컬럼 변경(크기 변경, 자료형 변경 등)
-- 사용법) ALTER TABLE 테이블명 MODIFY 컬럼명 자료형(크기);
ALTER TABLE DEPT20 MODIFY DNAME VARCHAR2(30);
-- 테이블 구조 보기 명령어 : DESC 테이블명
DESC DEPT20;

-- 예제 3) 부서테이블(DEPT20) BIRTH 컬럼 삭제하기
-- 사용법) ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명;
ALTER TABLE DEPT20 DROP COLUMN BIRTH;

-- 예제 4) 테이블 이름 변경하기 : DEPT20 -> DEPT30
RENAME DEPT20 TO DEPT30;
--테이블 구조 보기 명령어 : DESC 테이블명
DESC DEPT30; -- DEPT20 -> DEPT30 으로 변경 확인

-- 12_Table_Alter_Exam.sql
-- 테이블 구조(설계:디자인) 연습문제
-- 1) DEPT 테이블을 생성하세요.
-- 단 , DEPT 이 있으면 삭제하고 재생성하세요.
-- 컬럼명 : DNO   NUMBER(2)
--         DNAME VARCHAR2(14)
--         LOC   VARCHAR2(13)

DROP TABLE DEPT;
CREATE TABLE DEPT(
DNO NUMBER(2),
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
);

-- 2) EMP 테이블을 생성하세요.
-- 단, EMP 테이블이 있으면 삭제하고 재생성하세요.
-- 컬럼명 : ENO   NUMBER(4)
--         ENAME VARCHAR2(10)
--         DNO   NUMBER(2)

DROP TABLE EMP;
CREATE TABLE EMP(
ENO NUMBER(4),
ENAME VARCHAR2(10),
DNO NUMBER(2)
);

-- 3) EMP 테이블을 수정하세요.(ENAME 컬럼 크기)
-- 컬럼명 : ENO   NUMBER(4)
--         ENAME VARCHAR2(25)
--         DNO   NUMBER(2)

ALTER TABLE EMP MODIFY ENAME VARCHAR2(25);
DESC EMP;

-- 4) EMPLOYEE 테이블을 복사해서 EMPLOYEE2 테이블을 생성하되
--    사원번호, 이름, 급여, 부서번호 컬럼만 복사하고,
--    새로 생성된 테이블의 컬럼명은 각각 
--    EMP_ID, NAME, SAL, DEPT_ID로 지정하세요.
--   (데이터도 복사)

-- 방법1

CREATE TABLE EMPLOYEE2(EMP_ID, NAME, SAL, DEPT_ID)
AS
SELECT ENO, ENAME, SALARY, DNO FROM EMPLOYEE;

-- 방법2
CREATE TABLE EMPLOYEE2
AS
SELECT ENO , ENAME , SALARY , DNO FROM EMPLOYEE;

ALTER TABLE EMPLOYEE2 RENAME COLUMN ENO TO EMP_ID;
ALTER TABLE EMPLOYEE2 RENAME COLUMN ENAME TO NAME;
ALTER TABLE EMPLOYEE2 RENAME COLUMN SALARY TO SAL;
ALTER TABLE EMPLOYEE2 RENAME COLUMN DNO TO DEPT_ID;

-- 방법3

CREATE TABLE EMPLOYEE2(EMP_ID, NAME, SAL, DEPT_ID)
AS
SELECT ENO AS EMP_ID , ENAME AS NAME , SALARY AS SAL , DNO AS DEPT_ID FROM EMPLOYEE;

-- 5) EMP 테이블을 삭제하세요.

DROP TABLE EMP;

-- 6) EMPLOYEE2란 이름을 EMP로 변경하세요.

RENAME EMPLOYEE2 TO EMP;
DESC EMP;

-- 7) DEPT 테이블에서 DNAME 컬럼을 제거하세요.

ALTER TABLE DEPT DROP COLUMN DNAME;
DESC DEPT;

 

※INSERT UPDATE DELETE만 ROLLBACK 가능

'HTML > SQL' 카테고리의 다른 글

[SQL] SEQUENCE, INDEX  (0) 2023.09.14
[SQL] CONSTRAINT (제약조건)  (0) 2023.09.14
[SQL] DDL, DML, DCL  (0) 2023.09.13
[SQL] 서브 쿼리  (0) 2023.09.12
[SQL] 그룹 함수, 조인  (0) 2023.09.11