English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL 데이터 가져오기

이 장에서는 간단한 MySQL 데이터베이스导入 명령어를 몇 가지 소개합니다.

1mysql 명령어로 데이터베이스导入

mysql 명령어로 데이터베이스导入의 문법은 다음과 같습니다:

mysql -u 사용자이름    -p 비밀번호    <  导入할 데이터베이스 데이터(w3codebox.sql)

예제:

# mysql -uroot -p123456 < w3codebox.sql

위 명령어는 백업된 전체 데이터베이스3codebox.sql导入

2source 명령어로 데이터베이스导入

source 명령어로 데이터베이스导入하기 전에 먼저 데이터베이스 터미널에 로그인해야 합니다:

mysql> create database abc;      # 데이터베이스 생성
mysql> use abc;                  # 이미 생성된 데이터베이스 사용 
mysql> set names utf8;           # 인코딩 설정
mysql> source /home/abc/abc.sql  # 데이터베이스 백업导入

3LOAD DATA로 데이터导入

MySQL은 데이터를 삽입하기 위한 LOAD DATA INFILE 문장을 제공합니다. 다음 예제에서 현재 디렉토리의 dump.txt 파일을 읽고, 이 파일의 데이터를 현재 데이터베이스의 mytbl 테이블에 삽입합니다.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

 LOCAL 키워드를 지정하면 클라이언트 호스트에서 경로에 따라 파일을 읽습니다. 지정하지 않으면 서버에서 경로에 따라 파일을 읽습니다.

LOAD DATA 문장에서 열 값의 구분 기호와 행 끝 표시를 명확하게 지정할 수 있습니다. 하지만 기본 표시는 위치 기호와 개행 문자입니다.

두 명령어의 FIELDS과 LINES 절의 문법은 같습니다. 두 절 모두 선택 사항입니다. 하지만 두 가지를 동시에 지정하는 경우, FIELDS 절은 LINES 절보다 앞에 위치해야 합니다.

FIELDS 절을 지정한 경우, 그 절 (TERMINATED BY, [OPTIONALLY] ENCLOSED BY, ESCAPED BY)도 선택사항입니다. 그러나 사용자는 최소한 하나를 지정해야 합니다.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
  -> FIELDS TERMINATED BY ':'
  -> LINES TERMINATED BY '\r\n';

LOAD DATA는 기본적으로 데이터 파일의 열 순서에 따라 데이터를 삽입합니다. 데이터 파일의 열과 삽입 테이블의 열이 일치하지 않으면 열의 순서를 지정해야 합니다.

예를 들어, 데이터 파일의 열 순서는 a, b, c이지만, 삽입 테이블의 열 순서는 b, c, a이면, 데이터 가져오기 문법은 다음과 같습니다:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
    -> INTO TABLE mytbl (b, c, a);

4mysqlimport를 사용하여 데이터를 가져오기

mysqlimport 클라이언트는 LOAD DATA INFILEQL 문의 명령줄 인터페이스를 제공합니다. mysqlimport의 대부분의 옵션은 LOAD DATA INFILE 절과 일치합니다.

dump.txt 파일에서 데이터를 mytbl 데이터 테이블에 가져오려면 다음 명령어를 사용할 수 있습니다:

$ mysqlimport -u root -p --로컬 mytbl dump.txt
비밀번호 *****

mysqlimport 명령어는 옵션을 사용하여 특정 형식을 설정할 수 있습니다. 명령어 문법은 다음과 같습니다:

$ mysqlimport -u root -p --로컬 --fields-terminated-by=":" \
   --lines-terminated-by="\r\n"  mytbl dump.txt
비밀번호 *****

mysqlimport 문에서 사용 --columns 옵션을 사용하여 열의 순서를 설정합니다:

$ mysqlimport -u root -p --로컬 --columns=b,c,a \
    mytbl dump.txt
비밀번호 *****

mysqlimport의 일반적인 옵션 소개

옵션기능
-또는 --삭제새 데이터가 데이터 테이블에 가져오기 전에 데이터 테이블의 모든 정보를 삭제합니다.
-또는 --강제에러가 발생하든지 않든지, mysqlimport는 강제로 데이터를 삽입합니다.
-또는 --무시mysqlimport는 동일한 유일한              키워드의 행, 파일에 포함된 데이터는 무시됩니다.
-l 또는 -lock-tables데이터가 삽입되기 전에 테이블을 잠금으로 만들어서,                데이터베이스를 업데이트할 때 사용자의 쿼리와 업데이트가 영향을 받습니다.
-r 또는 -replace이 옵션은 -i 옵션과 반대로 작동합니다. 이 옵션은                           테이블에 같은 유일한 키를 가진 레코드가 있습니다.
--fields-enclosed- by= char텍스트 파일의 데이터 레코드를 구분하는 것을 어떻게 묶는지 지정합니다. 많은 경우에,                 데이터는 쌍따옴표로 묶여 있습니다. 기본적으로 데이터는 문자로 묶이지 않습니다.
--fields-terminated- by=char각 데이터의 값 간 구분자를 지정합니다. 점으로 구분된 파일에서는,                 구분자는句号입니다. 이 옵션을 사용하여 데이터 간 구분자를 지정할 수 있습니다。                 기본 구분자는 탭(Tab)입니다. 이 옵션을 사용하여 데이터 간 구분자를 지정할 수 있습니다。
--lines-terminated- by=str이 옵션은 텍스트 파일의 행 간 데이터 구분 문자를 지정합니다                또는 문자. 기본적으로 mysqlimport는 newline를 행 구분자로 사용합니다。                한 개의 문자를 대체할 수 있는 문자열을 사용할 수 있습니다:                 새 줄 또는 엔터.

mysqlimport 명령어에서 일반적으로 사용하는 옵션还包括 -v 버전(version), -p 비밀번호(password) 등을 입력하도록 안내합니다。