MySQL에서 특정 열 데이터를 내보내는 방법
MySQL에서 특정 열(컬럼)의 데이터만 골라서 파일로 저장하고 싶다면 INTO OUTFILE 구문을 사용하면 됩니다. 기본 문법은 다음과 같습니다.
SELECT yourColumnName FROM yourTableName INTO OUTFILE 'yourLocationOfFile';
이제 실제 예제를 통해 단계별로 자세히 살펴보겠습니다.
1단계: 테이블 생성하기
먼저 예제로 사용할 테이블을 생성합니다.
mysql> CREATE TABLE DemoTable
(
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(20),
StudentLastName VARCHAR(20)
);
Query OK, 0 rows affected (0.54 sec)
2단계: 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John','Doe');
Query OK, 1 row affected (0.26 sec)
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('David','Miller');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John','Smith');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('Carol','Taylor');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('Sam','Williams');
Query OK, 1 row affected (0.18 sec)
3단계: 저장된 데이터 확인하기
SELECT 명령어로 테이블의 전체 레코드를 조회합니다.
mysql> SELECT * FROM DemoTable;
실행 결과는 다음과 같습니다.
+-----------+------------------+-----------------+ | StudentId | StudentFirstName | StudentLastName | +-----------+------------------+-----------------+ | 1 | John | Doe | | 2 | David | Miller | | 3 | John | Smith | | 4 | Carol | Taylor | | 5 | Sam | Williams | +-----------+------------------+-----------------+ 5 rows in set (0.00 sec)
4단계: 특정 열 데이터 내보내기
다음은 MySQL에서 특정 열의 데이터를 파일로 내보내는 쿼리입니다.
mysql> SELECT StudentLastName FROM DemoTable INTO OUTFILE 'E:\StudentLastName.txt';
Query OK, 5 rows affected (0.00 sec)
위 쿼리를 실행하면 StudentLastName 열의 값들이 지정한 경로인 'E:\StudentLastName.txt' 파일에 저장됩니다. 파일을 열어보면 다섯 명의 학생 성(last name)이 정상적으로 기록되어 있으며, 이를 통해 열 데이터가 성공적으로 내보내졌음을 확인할 수 있습니다.
OUTFILE 사용 시 알아두면 좋은 팁
- 파일 쓰기 권한 확인: MySQL 서버가 지정한 경로에 파일을 생성할 수 있는 권한이 있어야 합니다.
- secure_file_priv 설정: 보안 정책에 따라 특정 디렉터리에서만 내보내기가 허용될 수 있습니다.
SHOW VARIABLES LIKE 'secure_file_priv';명령으로 허용된 경로를 미리 확인하세요. - 동일 파일명 덮어쓰기 불가: 같은 이름의 파일이 이미 존재하면 오류가 발생하므로 항상 새로운 파일명을 사용해야 합니다.
- 출력 형식 지정:
FIELDS TERMINATED BY ',',LINES TERMINATED BY '\n'같은 옵션을 추가하면 CSV 형식 등 원하는 포맷으로 손쉽게 출력할 수 있습니다.