ホームページ >データベース >mysql チュートリアル >mysqlのロードデータが文字化けした場合はどうすればよいですか?
Mysql ロード データが文字化けする解決策: 1. 文字化けした SQL ステートメントを見つけます; 2. ステートメントを「LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE Character set utf8;」に変更します。
このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。