< 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 절에 산술식 또는 함수식 기술된 경우 반드시 별칭을 지정해야됨!