> 데이터 베이스 > MySQL 튜토리얼 > mysql에서 테이블을 내보내는 방법은 무엇입니까?

mysql에서 테이블을 내보내는 방법은 무엇입니까?

青灯夜游
풀어 주다: 2020-10-06 07:45:40
원래의
10134명이 탐색했습니다.

내보내기 방법: "SELECTI...INTO OUTFILE" 문을 통해 "SELECT 열 이름 FROM 테이블 [WHERE 문] INTO OUTFILE '대상 파일' [OPTIONS]" 형식 문을 사용하여 테이블의 내용을 텍스트 파일.

mysql에서 테이블을 내보내는 방법은 무엇입니까?

데이터 테이블 가져오기 및 내보내기를 통해 MySQL 데이터베이스 서버와 다른 데이터베이스 서버 간에 데이터를 이동할 수 있습니다. 내보내기는 MySQL 데이터 테이블의 데이터를 텍스트 파일로 복사하는 것을 의미합니다. 데이터를 내보내는 방법에는 여러 가지가 있습니다. 이 섹션에서는 주로 SELECTI...INTO OUTFILE 문을 사용하여 데이터를 내보내는 방법을 소개합니다.

MySQL에서는 SELECTI...INTO OUTFILE 문을 사용하여 테이블 내용을 텍스트 파일로 내보낼 수 있습니다. SELECT...INTO OUTFILE 문의 기본 형식은 다음과 같습니다.

SELECT 列名 FROM table [WHERE 语句] INTO OUTFILE '目标文件'[OPTIONS]
로그인 후 복사

이 문은 SELECT를 사용하여 필요한 데이터를 쿼리하고 INTO OUTFILE을 사용하여 데이터를 내보냅니다. 그 중 대상 파일은 조회된 레코드를 내보낼 파일을 지정하는 데 사용됩니다. 여기서 주목해야 할 점은 대상 파일이 기존 파일이 될 수 없다는 것입니다.

  • [OPTIONS]는 선택적 매개변수 옵션입니다. OPTIONS 부분의 구문에는 FIELDS 및 LINES 절이 포함됩니다. 일반적으로 사용되는 값은 다음과 같습니다.

  • FIELDS TERMINATED BY 'String': 필드 사이에 문자열을 설정합니다. 단일 또는 다중 문자일 수 있는 구분 기호는 기본적으로 탭 문자 't'입니다.

  • 필드 [선택 사항] ENCLOSED BY '문자': CHAR, VARCHAR 및 TEXT와 같은 문자 필드를 묶는 문자를 설정합니다. OPTIONALLY를 사용하는 경우 CHAR 및 VARCHAR와 같은 문자 필드를 묶는 데에만 사용할 수 있습니다.

  • FIELDS ESCAPED BY 'Character': 특수 문자를 쓰거나 읽는 방법을 설정합니다. 단일 문자만 가능합니다. 즉, 이스케이프 문자를 설정합니다. 기본값은 ''입니다.

  • '문자열'로 시작하는 줄: 각 줄의 시작 부분에 문자를 설정합니다. 기본적으로 문자는 사용되지 않습니다.

  • LINES TERMINATED BY 'String': 각 줄의 끝에 문자를 설정합니다. 단일 문자 또는 여러 문자일 수 있습니다. 기본값은 'n'입니다.

참고: FIELDS 및 LINES 절은 모두 선택 사항이지만 둘 다 지정한 경우 FIELDS는 LINES 앞에 배치되어야 합니다.

예제 1

다음은 SELECT...INTO OUTFILE 문을 사용하여 테스트 데이터베이스의 person 테이블에 있는 레코드를 내보냅니다. SQL 문 및 실행 결과는 다음과 같습니다.

mysql> SELECT * FROM test.person INTO OUTFILE 'C://ProgramData/MySQL/MySQL Server 5.7/Uploads/person.txt';
Query OK, 5 rows affected (0.05 sec)
로그인 후 복사

그런 다음 내보낸 경로에 따라 person.txt 파일을 찾습니다. 파일 내용은 다음과 같습니다.

1    Java 12
2    MySQL     13
3    C      15
4    C++  22
5    Python     18
로그인 후 복사

개인 테이블 데이터를 성공적으로 내보냈습니다.

참고: 내보낼 때 다음 오류가 발생할 수 있습니다.

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
로그인 후 복사

이는 MySQL이 데이터 내보내기 경로를 제한하기 때문입니다. MySQL 가져오기 및 내보내기 파일은 secure-file-priv 변수에 지정된 경로의 파일로만 가져오고 내보낼 수 있습니다.

다음 두 가지 해결 방법이 있습니다.

1) 먼저 '%secure%' 문과 같은 표시 변수를 사용하여 secure-file-priv 변수 구성을 확인하세요.

mysql> show variables like '%secure%' \G
*************************** 1. row ***************************
Variable_name: require_secure_transport
        Value: OFF
*************************** 2. row ***************************
Variable_name: secure_auth
        Value: ON
*************************** 3. row ***************************
Variable_name: secure_file_priv
        Value: C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\
3 rows in set, 1 warning (0.04 sec)
로그인 후 복사

secure_file_priv 이 값은 MySQL 가져오기 및 내보내기 파일의 경로를 지정합니다. SQL 문의 내보내기 파일 경로를 지정된 변수 경로로 수정한 후 가져오기 및 내보내기 작업을 수행합니다. my.ini 구성 파일에서 secure-file-priv 값을 수정한 다음 서비스를 다시 시작할 수도 있습니다.

2) secure_file_priv 값이 NULL이면 내보내기가 금지됩니다. MySQL 설치 경로 아래 my.ini 파일에 secure_file_priv= 설정 경로 문을 추가한 후 서비스를 다시 시작하면 됩니다.

예 2

테스트 데이터베이스의 person 테이블에 있는 레코드를 텍스트 파일로 내보내려면 SELECT...INTO OUTFILE 문을 사용하세요. 필드를 구분해야 하는 FIELDS 옵션과 LINES 옵션을 사용하세요. 및 문자 데이터를 큰따옴표로 묶습니다. 각 레코드는 -로 시작합니다. SQL 문은 다음과 같습니다.

SELECT * FROM test.person INTO OUTFILE 'C:/person.txt'
    FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\-'
TERMINATED BY '\r\n';
로그인 후 복사

그중

  • FIELDS TERMINATED BY ', ':

  • ENCLOSED BY '"': 각 필드가

  • LINES STARTING BY '-': 각 줄이 -로 시작함을 의미합니다.

  • TERMINATED BY 'rn'은 각 줄이 캐리지 리턴과 줄 바꿈으로 끝나서 각 레코드가 한 줄을 차지함을 의미합니다.

person.txt 파일의 내용은 다음과 같습니다.

-1、"Java"、12
-2、"MySQL"、13
-3、"C"、15
-4、"C++"、22
-5、"Python"、18
로그인 후 복사

각 레코드가 -로 시작하고, 각 데이터가 ,로 구분되며, 모든 필드 값이 큰따옴표로 포함되어 있는 것을 볼 수 있습니다.

추천 튜토리얼:

mysql 비디오 튜토리얼

위 내용은 mysql에서 테이블을 내보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿