ホームページ >データベース >mysql チュートリアル >mysqlのロードデータが文字化けした場合はどうすればよいですか?

mysqlのロードデータが文字化けした場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2023-02-16 10:37:202607ブラウズ

Mysql ロード データが文字化けする解決策: 1. 文字化けした SQL ステートメントを見つけます; 2. ステートメントを「LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE Character set utf8;」に変更します。

mysqlのロードデータが文字化けした場合はどうすればよいですか?

このチュートリアルの動作環境: Windows 10 システム、MySQL バージョン 5.7、Dell G3 コンピューター。

mysql のロード データが文字化けしている場合はどうすればよいですか?

LOAD を使用して MySQL によってインポートされた文字化けした中国語データの問題を解決する

テキストemployee.txt内のデータがテーブルEMPLOYEE

文字化けしていると仮定します。 SQL ステートメントが表示されます

LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE;

解決策、文字セット utf8 を追加します

LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE character set utf8;

関連拡張子:

1.ロード ステートメントを使用してデータをインポートします

これは、ロードコマンドの簡単な概要。

MySQL に入ったら、次のコマンドを使用します:

load data local infile 'S:/tab_user.txt' 
into table tab_user lines 
terminated by '\r\n' ignore 1 lines;

このステートメントの構文は次のとおりです:

基本構文:

load data  [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name,   )]

構文の説明部分:

load data infile ステートメントは、テキスト ファイルからテーブルに非常に高速に読み取ります。このコマンドを使用する前に、mysqld プロセス (サービス) が実行されている必要があります。

セキュリティ上の理由から、サーバー上にあるテキスト ファイルを読み取る場合、ファイルはデータベース ディレクトリにあるか、誰でも読み取り可能である必要があります。

さらに、サーバー上のファイルでデータ infile のロードを使用するには、サーバー ホストに対するファイル権限が必要です。

(1) キーワード low_priority を指定すると、MySQL はデータを挿入する前に、他の誰もこのテーブルを読み取らなくなるまで待機します。次のコマンドを使用できます:

load data low_priority infile "S:/tab_user.txt" into table tab_user;

2)、local キーワードを指定すると、ファイルを読み取ることになります。クライアントホストから。 local が指定されていない場合、ファイルはサーバー上に存在する必要があります。

(3)、replace およびignore キーワードは、既存の一意のキー レコードの重複処理を制御します。 replace を指定すると、同じ一意のキー値を持つ既存の行が新しい行に置き換えられます。 ignore を指定すると、一意のキーを持つ既存の行に対する重複行の入力がスキップされます。どちらのオプションも指定しない場合、重複キーが見つかったときにエラーが発生し、テキスト ファイルの残りの部分は無視されます。例:

load data low_priority infile "S:/tab_user.txt" replace

into table tab_user;

(4), separator

( a) フィールド キーワードは、ファイル セグメントの分割形式を指定します。このキーワードが使用される場合、MySQL パーサーは、次のオプションの少なくとも 1 つを確認することを期待します:

terminated by delimiter: whatcharacter does it means? as区切り文字

フィールドで囲まれた文字で囲まれます

エスケープ文字でエスケープされます

フィールドを説明する区切り文字で終了します (デフォルトではタブ文字 (\t)

##) #enclosed by は、フィールドの括弧文字を説明します。

記述されたエスケープ文字によってエスケープされます。デフォルトはバックスラッシュ (バックスラッシュ: \) です。

例: データ infile "S:/tab_user.txt" をロードします。テーブル tab_user (id, name) で終了するものに置き換えます。',' 1 行を無視します;(, As delimiter)

(b)lines キーワードは、各レコードの区切り文字を指定します。デフォルトは、改行文字である '\n' です。

両方のフィールドを指定する場合、フィールドは行の前にある必要があります。フィールド キーワードを指定しない場合、デフォルト値は次のように記述した場合と同じになります。フィールドは '\t' で終了し、' '' ' で囲まれ、'\\'でエスケープされます。 Lines 句の場合、デフォルト値は次のように記述した場合と同じです。「行は '\n' で終了します。

例: データ ファイル "s:/tab_user.txt" をロードし、' で終了するテーブル テスト フィールドに置き換えます」 ' '/n' で終わる行;

(5)、load data infile は、指定された列に従ってファイルをデータベースにインポートできます。データの一部をインポートしたい場合は、追加のニーズを満たすために、MySQL データベースにいくつかの列 (列/フィールド/フィールド) を追加する必要があります。たとえば、Access データベースから MySQL データベースにアップグレードする場合、

次の例は、指定した列 (フィールド) にデータをインポートする方法を示しています。

load data infile "s: / tab_user.txt" を tab_user(id, name);

(6) というテーブルに追加します。サーバー ホスト上のファイルを検索するとき、サーバーは次のルールを使用します。

(a) Ifサーバーによって使用される絶対パス名。

(b) 1 つ以上の先行コンポーネントを含む相対パス名が指定された場合、サーバーはサーバーのデータ ディレクトリを基準にしてファイルを検索します。

(c) プレフィックスのないファイル名が指定された場合、サーバーは現在のデータベースのデータベース ディレクトリでファイルを検索します。

例: 「/myfile txt」として指定されたファイルはサーバーのデータ ディレクトリから読み取られ、「myfile txt」として指定されたファイルは現在のデータベースのデータベース ディレクトリから読み取られます。 ## 推奨される学習: 「

MySQL ビデオ チュートリアル

以上がmysqlのロードデータが文字化けした場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。