MySQL) 샘플 데이터 테이블 생성
본문 바로가기
Data Base/SQL

MySQL) 샘플 데이터 테이블 생성

by 조훈이 2022. 1. 4.

 샘플 데이터 테이블 생성 

CREATE TABLE <...> SELECT <...>


  설명 

CREATE TABLE emp (
      id INT NOT NULL PRIMARY KEY,
      name VARCHAR(30) NOT NULL,
      age INT NULL
);
INSERT INTO emp VALUES
(11111, 'David', 34),
(22222, 'Jiyeon', 29),
(33333, 'Roy', 31),
(44444, 'John', 23);

  위와 같은 테이블을 생성한 뒤 4개의 데이터를 집어 넣었다. emp 테이블에는 아래와 같이 data들이 들어있게 된다.

 

emp 테이블

  만약, 이 테이블에서 name COLUMN 만 따로 가져와서 emp_names 테이블을 따로 만들고 싶다면 어떻게 해야할까? 아래와 같이 하면 된다.

 

[첫 번째 방법]

CREATE TABLE emp_names (
      name VARCHAR(30) NOT NULL
);

  우선, 새로운 테이블을 CREATE 한다. emp 테이블의 name COLUMN 만으로 이루어진 테이블을 만들 것 이므로 위와 같이 정의를 하였다. 이 새로운 테이블에 emp 테이블의 name COLUMN 만 집어넣을 땐 아래와 같이 집어넣으면 된다.

 

INSERT INTO emp_names
SELECT name
FROM emp;

  emp 테이블의 name COLUMN data들을 emp_names 테이블에  INSERT 하게 된다. 그러면 emp_names 테이블에는 아래와 같이 data들이 삽입 되어있게 된다.

 

emp_names 테이블

[두 번째 방법]

CREATE TABLE emp_names2 AS
SELECT name FROM emp;

  만약 테이블을 CREATE 한 뒤 INSERT 를 하는게 아니라 한번에 샘플 데이터 테이블을 생성하고 싶다면, 위와 같이 `AS`를 사용하여 한번에 생성할 수 있다.

 

emp_names2 테이블


  그렇다면, 만약 emp 테이블에서 두 개의 COLUMN 을 가지고 새로운 테이블을 만들고 싶다면?

# 첫 번째 방법
CREATE TABLE emp_names_ages (
      name VARCHAR(30) NOT NULL,
      age INT NOT NULL
);

INSERT INTO emp_names_ages
SELECT name, age
FROM emp;

# 두 번째 방법
CREATE TABLE emp_names_ages2 AS
SELECT name, age FROM emp;

  위와 같이 emp 테이블로부터 원하는 COLUMN 만 더 SELECT 를 해 주면 된다.

 

  마지막으로, 현재 테이블을 복사하고 싶다면 예상하듯 아래와 같이 하면 된다.

CREATE TABLE emp_copy AS
SELECT * FROM emp;

 

emp_copy 테이블

728x90

댓글