Database/Oracle

[Oracle] SUBQUERY를 이용한 테이블 생성

21종 2023. 7. 30. 17:36

< SUBQUERY를 이용한 테이블 생성 >

테이블 복사 뜨는 개념

[ 표현식 ]
CREATE TABLE 테이블명 
AS 서브쿼리;

-- EMPLOYEE 테이블을 복제한 새로운 테이블 생성
CREATE TABLE EMPLOYEE_COPY 
AS SELECT * 
    FROM EMPLOYEE;

SELECT * FROM EMPLOYEE_COPY;
--> 컬럼, 데이터값은 잘 복사되지만, 제약조건 같은 경우 NOT NULL만 복사됨..

 

 

테이블 구조만 복사

CREATE TABLE EMPLOYEE_COPY2
AS SELECT EMP_ID, EMP_NAME, SALARY, BONUS
    FROM EMPLOYEE -- 테이블 구조만 가져오고 싶다. 데이터 제외하고
    WHERE 1 = 0; -- 무조건 FALSE인 조건 : 구조만을 복사하고자 할 때 쓰이는 구문 (데이터 값은 필요 없을 때)

 

 

CREATE TABLE EMPLOYEE_COPY3
--AS SELECT EMP_ID, EMP_NAME, SALARY, SALARY * 12 -- 별칭이 안붙어있음
AS SELECT EMP_ID, EMP_NAME, SALARY, SALARY * 12 AS "연봉"
    FROM EMPLOYEE;
-- ORA-00998: must name this expression with a column alias
-- alias : 별칭
--> 서브쿼리 SELECT 절에 산술식 또는 함수식 기술된 경우 반드시 별칭을 지정해야됨!