10-7. 서브 쿼리 구문을 사용한 테이블 생성 > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 10-7. 서브 쿼리 구문을 사용한 테이블 생성

본문

 

첫 번째 방법은

․ CREATE TABLE문과 AS subquery 옵션을 결합하여 테이블을 생성하고 행을 삽입한다.

․ 지정한 열 수를 서브 쿼리 열 수 와 일치시켜야 한다.

․ 열 이름 및 기본값을 사용하여 열을 정의한다.

 

CREATE TABLE table

[(column, column...)]

AS subquery;

구문 설명 :

table 테이블 이름이다.

column 열 이름, 기본값 및 무결성 제약 조건이다.

subquery 새 테이블에 삽입될 행의 집합을 정의하는 SELECT문이다.

 

 

 

 

두 번째 방법은 AS subquery 절을 적용하여 테이블 생성과 서크 쿼리에 의해 반환되는 행 삽입을 모

두 수행하는 것이다.

 

 지침   

​ 지정한 열 이름을 사용하여 테이블을 생성하며 SELECT문에 의해 검색된 행을 테이블에 삽입한다. 

․ 열 정의에는 열 이름과 기본값만 포함시킬 수 있습니다. 

․ 열 명세가 제공되는 경우 열 수는 서브 쿼리의 SELECT목록에 있는 열 수와 동일해야 한다. 

․ 열 명세가 제공되지 않는 경우 해당 테이블의 열 이름은 서브 쿼리의 열 이름과 동일한다. 

․ 무결성 규칙은 새로운 테이블에 전달되지 않으며 열 데이터 유형 정의만 전달된다.

 

예제) 서브 쿼리를 사용한 테이블 생성

오라클 디비 예제 : 

 

CREATE TABLE dept80

AS

SELECT employee_id, last_name, salary*12 ANNSAL, hire_date

FROM employees

WHERE department id = 80;

Table created.

DESCRIBE dept80

☞설명) 다른 테이블의 행으로부터 테이블 생성(계속)

예제는 부서80에서 일하는 모든 사원에 대한 자세한 정보를 포함하는 DEPT80 테이블을 생성한다.

DEPT80 테이블의 데이터는 EMPLOYEES 테이블에서 가져온다.

iSQL*plus DESCRIBE 명령을 사용하여 데이터베이스 테이블의 유무 및 열 정의를 확인할 수 있다.

표현식을 선택할 때 열 별칭을 지정해야 한다.

표현식 SALARY*12에는 별칭 ANNSAL이 지정되다.

별칭이 없으면 다음 오류가 생성된다.

 

------------------------------------------------ 

ERROR at line 3 :

ORA-00998 : must name this expression with a column alias

from pubs.dbo.employee

where pub_id=0877

sp_columns dept80

select * from dept80'

-------------------------------------------------

 

 

 

테이블형식만 가져오기

SELECT * into dept81 from pubs.dbo.employee

where 1=2

select * from dept81 

 

 

댓글목록

10. 제약 조건 포함​
이어쓰기 1.A 10-1. NOT NULL 제약 조건
이어쓰기 2.B 10-2. UNIQUE 제약 조건
이어쓰기 3.C 10-3. PRIMARY KEY 제약 조건
이어쓰기 4.D 10-4. FOREIGN KEY REFERENCES 제약 조건
이어쓰기 5.E 10-5. CHECK 제약 조건
이어쓰기 6.F 10-6. 제약조건 위반
이어쓰기 7.G 10-7. 서브 쿼리 구문을 사용한 테이블 생성
이어쓰기 8.H 10-8. 테이블 삭제
이어쓰기 9.I 10-9. 객체 이름 변경
이어쓰기 10.J 10-10. 테이블 주석 추가 --MSSQL에서는 지원하지 않는 기능이다.
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기