English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 장에서는 간단한 MySQL 데이터베이스导入 명령어를 몇 가지 소개합니다.
mysql 명령어로 데이터베이스导入의 문법은 다음과 같습니다:
mysql -u 사용자이름 -p 비밀번호 < 导入할 데이터베이스 데이터(w3codebox.sql)
예제:
# mysql -uroot -p123456 < w3codebox.sql
위 명령어는 백업된 전체 데이터베이스3codebox.sql导入
source 명령어로 데이터베이스导入하기 전에 먼저 데이터베이스 터미널에 로그인해야 합니다:
mysql> create database abc; # 데이터베이스 생성 mysql> use abc; # 이미 생성된 데이터베이스 사용 mysql> set names utf8; # 인코딩 설정 mysql> source /home/abc/abc.sql # 데이터베이스 백업导入
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);
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는 동일한 유일한 키워드의 행, 파일에 포함된 데이터는 무시됩니다. |
-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) 등을 입력하도록 안내합니다。