- [MySQL] 22. 테이블 복사 및 데이터 추가2024년 06월 05일
- Song hyun
- 작성자
- 2024.06.05.:24
728x90반응형[MySQL] 22. 테이블 복사 및 데이터 추가
1. 기존 테이블 구조 복사하기
2. 기존 테이블 구조와 데이터 모두 복사하기
3. 기존 테이블의 데이터를 이용해, 새 데이터를 삽입하기 (INSERT INTO SELECT)
4. CSV 파일 또는 외부 데이터 소스 사용하기
1. 기존 테이블 구조 복사하기
데이터베이스에서 한 테이블의 구조나 데이터를 다른 테이블로 복사하는 작업은 여러 상황에서 유용하게 사용된다.
기존에 존재했던 dept_emp의 구조를 그대로 복사한 것을 확인할 수 있다.
*where 1=0 조건 때문에, 어떠한 데이터도 가져오지 않고, 컬럼 구조만 복제된 새 테이블이 생성되었다.
use employees; -- 테이블 복사(구조만 복사) create table dept_emp_copy as select*from dept_emp where 1=0; select*from dept_emp_copy; desc dept_emp_copy;
2. 기존 테이블 구조와 데이터 모두 복사하기
*기본키, 외래키, 인덱스 등의 제약사항은 복사되지 않을 수 있다.
따라서, 이러한 제약사항을 수동으로 추가해야 할 필요가 있다. (alter 사용)
create table employees_copy as select*from employees;
3. 기존 테이블의 데이터를 이용해, 새 데이터를 삽입하기 (INSERT INTO SELECT)
insert into dept_emp_copy(emp_no,dept_no,from_date,to_date) select emp_no,dept_no,from_date,to_date from dept_emp where emp_no>20001; select*from dept_emp_copy;
4. CSV 파일 또는 외부 데이터 소스 사용하기
-대량의 데이터를 처리해야 할 때는 외부 파일에서 데이터를 읽어와서, 데이터베이스 테이블에 삽입하는 방법이 효율적이다. 대부분의 데이터베이스 시스템에서는 외부 데이터 파일을 삽입할 수 있는 도구나 명령어를 제공한다.
*CSV 파일: Comma-seperated values. 몇 가지 필드를 쉼표(,)로 구분해둔 텍스트 데이터 및 텍스트 파일이다. 스프레드 시트, 데이터베이스 소프트웨어에서 많이 쓰였다. 유사한 포맷으로는 TSV,SSV 등이 있다.
LOAD DATA INFILE 'path/to/yourfile.csv' INTO TABLE students FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; -- 첫 번째 행이 헤더일 경우 이 행을 무시
이름,나이,직업 홍길동,30,개발자 김영희,25,디자이너 이철수,28,마케터
728x90반응형'MySQL > 기본 개념 및 지식' 카테고리의 다른 글
[MySQL] 24. 예제 코드: Function, decimal 이해하기 (0) 2024.06.07 [MySQL] 23. SQL Function (0) 2024.06.07 [MySQL] 21. OUTER JOIN (0) 2024.06.05 [MySQL] 20. JOIN (0) 2024.06.05 [MySQL] 19. 시나리오 코드로 관계 차수 이해하기 : 야구 팀과 야구 선수 (0) 2024.06.04 다음글이전글이전 글이 없습니다.댓글