MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

テキストファイルからMySQLテーブルにデータをインポートする際のテキストファイルでのエスケープ文字(\)の使用は何ですか?


エスケープ文字(\)の使用は、フィールドの値の間にコンマまたはその他の文字を挿入する場合に非常に重要になります。それは例の助けを借りて理解することができます。次のデータを含むA.txtという名前のテキストファイルからMySQLテーブルにデータをインポートするとします-

id,   Name,    Country,       Salary
105,  Chum,    Marsh,USA,     11000
106,  Danny,   Harrison,AUS,  12000

ここで、フィールド名には2つの値があり、名前はコンマで区切られています。次のクエリは、上記のテキストファイル「A.txt」から「employee4_tbl」にデータをインポートします-

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee4_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS;
Query OK, 2 rows affected, 4 warnings (0.05 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 4

「A.txt」からテーブルにデータをインポートすると、4つの警告があることがわかります。次のクエリは、テーブルに挿入されたものを示します-

mysql> Select * from employee4_tbl;
+------+---------+----------+--------+
| Id   | Name    | Country  | Salary |
+------+---------+----------+--------+
| 105  | Chum    | Marsh    |      0 |
| 106  | Danny   | Harrison |      0 |
+------+---------+----------+--------+
2 rows in set (0.00 sec)

上記の結果セットは、MySQLがフィールド「name」の値である「lastname」をファイルされた「Country」の値として予測することを示しています。

上記の問題は、次のようにエスケープ文字をテキストファイルに入れることで解決できます-

id,    Name,    Country,        Salary
105,   Chum\,   Marsh,USA,      11000
106,   Danny\,  Harrison,AUS,   12000

次のクエリを使用して、このテキストファイルをMySQLテーブルにインポートします-

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee5_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS;
Query OK, 2 rows affected (0.03 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0

上記のクエリで以前にあったように、警告がないことがわかります。これで、次のクエリを使用して何がインポートされたかを確認できます-

mysql> Select * from employee5_tbl;
+------+----------------+----------+--------+
| Id   | Name           | Country  | Salary |
+------+----------------+----------+--------+
| 105  | Chum,Marsh     | USA      |  11000 |
| 106  | Danny,Harrison | AUS      |  12000 |
+------+----------------+----------+--------+
2 rows in set (0.00 sec)

  1. SAPデータベースで、名前に/が含まれるテーブル列をインポートする

    BCPユーティリティを使用して、SQLServerのテキストファイルへのデータのインポート/エクスポートを実行することをお勧めします。以下のコマンドを実行すると、データがテキストファイルに読み込まれます。 BCP Db.TN out "Location of the text file " -c -S ServerName –T フラットファイルからSQLServerにデータをロードする場合は、次を使用できます。 BCP Db.TN in "Location of the text file " -c -S ServerName &ndas

  2. MySQLのテーブルAと比較しているときに、データがテーブルBにない場合は、データをテーブルCに挿入しますか?

    これには、テーブルAとBで左結合を使用します。最初のテーブルを作成しましょう- mysql> create table demo20 −> ( −> id int, −> name varchar(20) −> ); Query OK, 0 rows affected (1.87 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo20 values(100,'John'); Query OK, 1 row affect