ySQL에서 테이블을 CSV로 내보내는 방법

ySQL에서 테이블을 CSV로 내보내는 방법

2022-06-03 last update

9 minutes reading MySQL MariaDB
CSV 파일은 많은 응용 프로그램에서 지원하는 매우 일반적인 텍스트 파일 형식입니다.CSV의 전체 형식은 쉼표로 구분된 값입니다.이것은 데이터가 이 파일의 모든 줄에서 쉼표로 구분된다는 것을 의미한다.이것은 주로 이 파일 형식을 지원하는 다양한 유형의 응용 프로그램 간에 표 데이터를 교환하는 데 사용된다.XML은 일반적으로 응용 프로그램 간에 데이터를 교환하는 데 사용되는 다른 파일 형식입니다.그러나 CSV 파일은 XML 파일보다 더 좋습니다. 왜냐하면 XML 파일보다 더 적은 공간과 대역폭을 차지하기 때문입니다.다른 응용 프로그램에 데이터를 가져오기 전에 한 응용 프로그램에서 CSV 형식의 데이터를 내보내야 합니다.MySQL은 데이터베이스 테이블에서 데이터를 내보내는 다양한 방식을 지원합니다.CSV 형식이 그 중 하나입니다.본고는 MySQL 데이터베이스 테이블에서 CSV 형식으로 데이터를 내보내는 다양한 방법을 보여 줍니다.

선행 조건:


모든 export 문장을 실행하기 전에 새로운 데이터베이스와 테이블을 만들거나 기존 데이터베이스와 테이블을 선택해야 합니다.다음 명령을 실행하여 도서관 데이터베이스와 책, 대출자, 책\uborrow\u info라는 세 개의 표를 만듭니다.
CREATE DATABASE library;
USE library;

CREATE TABLE books (
id INT NOT NULL AUTO_INCREMENT,
title varchar(50) NOT NULL,
author varchar(50) NOT NULL,
publisher varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE borrowers (
id VARCHAR(50) NOT NULL,
name varchar(50) NOT NULL,
address varchar(50) NOT NULL,
email varchar(50) NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE book_borrow_info (
borrow_id VARCHAR(50),
book_id INT,
borrow_date DATE NOT NULL,
return_date DATE NOT NULL,
status VARCHAR(15) NOT NULL,
INDEX par_ind (book_id),
PRIMARY KEY (borrow_id, borrow_date),
FOREIGN KEY (book_id) REFERENCES books(id)
ON DELETE CASCADE
ON UPDATE CASCADE );
다음 SQL 명령을 실행하여 세 테이블에 일부 데이터를 삽입합니다.
INSERT INTO books VALUES
(NULL, 'To Kill a Mockingbird', 'Harper Lee', 'Grand Central Publishing'),
(NULL, 'One Hundred Years of Solitude', 'Garcia Marquez', 'Lutfi Ozkok'),
(NULL, 'Invisible Man', 'Ralph Ellison', 'Encyclopadeia Britannica, Inc.');

INSERT INTO borrowers VALUES
('123490', 'Patrick Wood', '34 West Street LANCASTER LA14 9ZH', '[email protected]'),
('157643', 'Ezra Martin', '10 The Grove BIRMINGHAM B98 1EU', '[email protected]'),
('146788', 'Frederick Hanson', '85 Highfield Road SHREWSBURY SY46 3ME',
'[email protected]');

INSERT INTO book_borrow_info VALUES
('123490', 1, '2020-02-15', '2020-02-25', 'Returned'),
('157643', 2, '2020-03-31', '2020-03-10', 'Pending'),
('146788', 3, '2020-04-10', '2020-01-20', 'Borrowed');
내보낸 모든 파일은 MySQL의 특정 위치에 저장됩니다. 이 위치는 변수 "secure\u file\u priv"에 저장됩니다. 다음 명령을 실행하여 파일의 경로를 찾습니다. 이것은 읽기 전용 변수입니다. 변경할 수 없습니다.
SHOW VARIABLES LIKE "secure_file_priv";

파일의 위치는 "/var/lib/mysql files/"입니다.export 명령을 실행할 때 이 위치를 사용해야 합니다.

INTO OUTFILE 문을 사용하여 CSV 형식으로 데이터를 내보냅니다.


INTO OUTFILE 문을 사용하여 데이터베이스 테이블을 내보낼 수 있습니다.가령, 나는books표의 데이터를 내보내고 싶다.다음 명령을 실행하여 이 테이블의 기존 데이터를 검사합니다.
SELECT * FROM books;

있는 모든 파일 이름입니다.내보내기 파일 이름을 위한 csv 확장자를 설정할 수 있습니다.다음 내보내기 명령을 실행하여 책을 만듭니다.csv 파일은/var/lib/mysql 파일/위치에 있습니다.
SELECT title, author, publisher FROM books INTO OUTFILE '/var/lib/mysql-files/books.csv';

내보내기 위치로 이동하여 파일이 에 생성되었는지 확인합니다.파일을 클릭하여 파일의 내용을 표시합니다.쉼표가 표의 필드 값의 내용으로 존재하면 이 값은 여러 값으로 구분됩니다.books 테이블에서publisher 필드는 세 번째 기록의 내용으로 쉼표 (,) 를 포함합니다.CSV 파일의 내용을 확인하면,publisher 내용이 두 개의 부적절한 값으로 구분되는 것을 볼 수 있습니다.

상술한 문제를 해결하려면 SQL 문장에 필요한 구분자를 정확하게 지정하여 북스 테이블 데이터를 CSV 파일로 내보낼 수 있습니다.다음 명령을 실행하여books표를 books2로 내보냅니다.csv 파일.여기에 세 개의 구분자를 사용하여 데이터를 정확하게 내보냅니다.이것은 엔딩 필드, 괄호 필드, 엔딩 줄입니다.
SELECT title, author, publisher FROM books
INTO OUTFILE '/var/lib/mysql-files/books2.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

지금 책 2를 펼치면csv 파일, 그리고 이 파일에서 해결된 문제를 볼 수 있으며, 데이터는 쉼표 (,) 를 여러 값으로 나누지 않습니다.

mysql 클라이언트를 사용하여 CSV 형식으로 데이터를 내보냅니다.


mysql 클라이언트를 사용하여 테이블 데이터를 CSV 파일로 내보낼 수 있습니다.본고의 이 부분은 대출자 표를 내보낼 것이다.다음 명령을 실행하여 이 테이블의 기존 내용을 검사합니다.
SELECT * FROM borrowers;

"sed"명령이 있는 mysql 문장을 사용하여 데이터를 내보냅니다.이 문장의 장점 중 하나는 이전 예에서 사용한 기본 위치 대신 CSV 파일을 저장하는 데 사용할 위치와 파일 이름을 설정할 수 있다는 것입니다.루트 사용자가 비밀번호가 없으면 -p 옵션은 무시됩니다.내보내기 위치는/tmp이고 출력 파일 이름입니다.여기는 csv입니다.
mysql -h localhost -u root -p -e 'select * from library.borrowers' |
sed 's/\t/,/g' > /tmp/output.csv

출력을 열면csv 파일, 그리고 다음 출력을 표시합니다.

phpmyadmin을 사용하여 CSV 형식으로 데이터를 내보냅니다.


모든 데이터베이스 관리 도구를 사용하면 데이터베이스 테이블을 CSV 파일로 쉽게 내보낼 수 있습니다.내보내기 전에 이 도구를 설치해야 합니다.여기서 phpmyadmin을 사용하여 테이블을 CSV 파일로 내보냅니다.여기서 내보낸 파일 이름은 테이블의 이름입니다.브라우저에서 다음 URL을 실행하여 MySQL 서버의 기존 데이터베이스 목록을 표시합니다.
http://localhost/phpmyadmin

내보낼 데이터베이스 테이블을 선택하고 오른쪽에 있는 내보내기 탭을 클릭합니다.형식 드롭다운 목록에서 CSV 형식을 선택하고 Go 버튼을 클릭합니다.파일 저장 옵션을 선택하고 확인 버튼을 누릅니다.

이 파일은 다운로드 폴더로 다운로드됩니다.여기서 book\u borrow\u info 테이블을 내보냅니다.따라서 CSV 파일 이름은 book\u borrow\u info입니다.파일을 열면 csv와 다음 내용이 표시됩니다.

결론:


데이터베이스 서버의 내보내기 기능을 사용하면 응용 프로그램 간의 데이터 교환 작업이 더욱 쉬워진다.MySQL은 테이블 데이터를 내보내기 위해 여러 파일 형식을 지원합니다.ql 파일 형식은 주로 같은 데이터베이스 서버 간에 데이터를 전송하는 데 사용됩니다.서로 다른 두 응용 프로그램 간에 데이터를 교환하려면 CSV 형식이 매우 유용합니다.