강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

리눅스 쉘상태에서 특정 텍스트파일 전체내용을 MYSQL에 입력하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스 쉘상태에서 특정 텍스트파일 전체내용을 MYSQL에 입력하기




 

자 이제 앞에서 설명한 mysqlimport를 이용하여 특정 텍스트파일의 내용을 특정 데이터베이스의  테이블로 입력해 보도록 하겠습니다.   

 

 

  , MYSQL mysqlimport유틸리티를 이용하여 지정된 텍스트파일의 전체 내용을 특정 데이터베이스의 특정 테이블로 저장하는 실제 예를 설명 드리겠습니다.   

 

 

  앞의 설명에서 말씀드린바와 같이 mysqlimport유틸리티를 사용하는 형식은 다음과 같습니다.   

 

 

 

 

 

사용형식 : mysqlimport [옵션] 데이터베이스명 텍스트파일명

 

 

위와 형식대로 mysqlimport를 이용하여 지정된 텍스트파일의 내용을 특정 데이터베이스의 특정 테이블로 저장하려면 먼저 대상 텍스트파일이 있어야만 합니다.   

 

 

 

 

아래는 이번 예를 설명드리기 위하여 직접 만든 간단한 텍스트파일입니다.   

 

 

 텍스트파일의 이름은 addressbook입니다.   

 

 

 이 텍스트파일의 내용을 cat명령어로 확인한 것입니다.   

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# cat addressbook

PARKSUNGSOO        011-111-2222    SEOUL   A+

JUNGWOOYOUNG       011-222-3333    SEOUL   B+

LEEJAESUK          016-222-1111    BUSAN   C+

CHOYUEJIN          019-333-4444    BUSAN   D+

[root@file bin]#

 

텍스트파일을 생성할 때에는 가능한 TAB키를 이용하여 각 필드사이를 띄우시기 바랍니다.   

 

 

 물론 TAB키를 이용하지 않고 띄우셔도 입력은 되지만 아무런 에러없이 정확한 입력을 하시려면 TAB키를 이용하여 각 필드데이터 사이를 띄우시는 것이 좋습니다.   

 

 

 

 

그리고 다음은 addressbook이라는 텍스트파일의 내용을 temp_db2라는 데이터베이스의 addressbook이라는 테이블로 입력을 하기 위하여 mysqlimport를 사용한 것입니다.   

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ./mysqlimport -u root -p temp_db2 addressbook

Enter password: ********

temp_db2.addressbook: Records: 4  Deleted: 0  Skipped: 0  Warnings: 0

[root@file bin]#

 

위의 예에서 주의 하실 것은 “./mysqlimport -u root -p temp_db2 addressbook”에서 지정된 텍스트파일의 이름이 addressbook이라는 것이며 이 텍스트파일의 이름 addressbook이 저장될 테이블의 이름과 동일해야 한다는 점입니다.   

 

 

 

 

, 위의 mysqlimport명령문에서 실제 저장될 테이블명이 지정되지 않았지만 테이블명은 자동적으로 텍스트파일의 이름과 동일한 것으로 인식하게 됩니다.   

 

 

  따라서 앞서 언급해 드린바와 같이 텍스트파일의 이름을 정할 때에는 반드시 저장될 테이블의 이름과 동일한 파일명으로 하시기 바랍니다.   

 

 

 

 

그리고 위의 mysqlimport명령문의 사용결과를 보시면 “temp_db2.addressbook: Records: 4  Deleted: 0  Skipped: 0  Warnings: 0” 과 같습니다.   

 

 

 이는 temp_db2라는 데이터베이스의 addressbook이라는 테이블에 4개의 Record가 저장 되었으며 입력되지 않은 데이터 없이 모두 정상적으로 입력이 되었다는 것을 알 수 있습니다.   

 

 

 

 

그리고 다음은 위와 같이 mysqlimport를 이용하여 addressbook텍스트파일의 전체 내용을 temp_db2데이터베이스의 addressbook테이블에 저장하였으므로 실제로 입력이 되어있는가를 확인하기 위하여 MYSQL로 접속하여 확인한 것입니다.   

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ./mysql -u root -p temp_db2

Enter password: ********

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 47 to server version: 4.0.14

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> select * from addressbook;

+--------------+--------------+---------+-------+

| name         | tel          | address | grade |

+--------------+--------------+---------+-------+

| PARKSUNGSOO  | 011-111-2222 | SEOUL   | A+    |

| JUNGWOOYOUNG | 011-222-3333 | SEOUL   | B+    |

| LEEJAESUK    | 016-222-1111 | BUSAN   | C+    |

| CHOYUEJIN    | 019-333-4444 | BUSAN   | D+    |

+--------------+--------------+---------+-------+

4 rows in set (0.01 sec)

 

mysql>
mysql> exit

Bye

[root@file bin]#

 

위의 예를 보시면 temp_db2라는 데이터베이스로 접속하여 “select * from addressbook”이라는 SQL문을 이용하여 입력된 4개의 레코드값들을 확인한 것입니다.   

 

 

 텍스트파일의 내용과 동일한 데이터들이 모두 정상적으로 저장되어 있다는 것을 확인할 수 있습니다.   

 

 

 

 

 

 

아래 내용은 참고사항입니다.   

 

 

 필요하신 분만 읽어 보시기 바랍니다.   

 

 

 

 

앞의 설명에서 텍스트파일이 저장될 테이블이 mysqlimport를 사용하기 전에 미리 생성되어 있어야한다고 말씀드렸습니다.   

 

 

  따라서  이번 예를 직접 실습해 보실 분들을 위하여 addressbook이라는 테이블을 생성하는 실제 예를 보여드리도록 하겠습니다.   

 

 

  아래의 예는 필자가 이번 예를 위하여 addressbook이라는 테이블을 직접 생성한 실제예입니다.   

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ./mysql -u root -p temp_db2

Enter password: ********

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 44 to server version: 4.0.14

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql>

mysql> create table addressbook (

    -> name varchar(16) NOT NULL,

    -> tel varchar(14) NOT NULL,

    -> address varchar(120) NOT NULL,

    -> grade varchar(10) NOT NULL,

    -> primary key (tel)

    -> );

Query OK, 0 rows affected (0.01 sec)

 

mysql>

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> exit

Bye

[root@file bin]#

 

위의 예를 보시면 아시겠지만 특정 테이블을 생성할 때에는 ‘create table”이라는 SQL문을 이용합니다.   

 

 

  SQL문의 자세한 설명은 범위를 벗어나는 것이므로 “create table”의 자세한 설명은 이 웹사이트(www.linux.co.kr) MYSQL강좌를 확인해 보시거나 MYSQL전문서적 또는 필자가 직접 집필한 리눅스 서버관리 실무바이블을 참조하시기 바랍니다.   

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,787 개
  • 현재 접속자 :  273 명