皆さん、こんにちはこんばんは。
今回は私がデータベースを操作するうえで毎回忘れたりしてしまうコマンドや設定を備忘録的な感じで残します。
前提条件
mysqlはバージョンが8.0であること。CSVファイルをインポートするにはセキュリティで許可されたディレクトリに配置すること。
CSVファイルは必ず文字コードは"UTF-8"改行コードは"LF(ラインフィールド)"であること。
データのインポート
データのインポートを行う前にデータベースの作成を行う.Sql
create database データベース名;
これを実行しデータベースの作成を行う。
この時sql文は大文字でも小文字でも区別はないので気にしなくてよい。
使用するデータベースの指定と確認
先ほどはデータベースの作成を行った。しかし、それはあくまでも作成しただけなのでこれから使用するデータベースを指定する。
Sql
use データベース名;
これで使用するデータベースの選択が行える。
選択したデータベースを確認する、もしくは選択されているデータベースを確認するには以下のsqlを実行することができる。
Sql
select database();
テーブルの確認
データベースは先ほどのsqlを実行することで使用可能になった。次は、データベースにテーブルの確認を行う。
Sql
show tables();
この時”Empty set(**sec)"と表示されれば中身は空で、何か表示されたら中のテーブルが確認できる。
Sqlをファイルから読み込んで実行
Sqlをいちいち打つのが面倒になった方はメモ帳などでSql文をまとめておいて実行するのがおすすめ。 使いたいSqlをメモ帳などでまとめて[hogehoge.sql]と保存する そういったものを実行するときには以下のSqlを実行する。Sql
source ファイルパス+ファイル名
この時注意としては[;](セミコロン)は必要ない。
CSVファイルインポート時の注意
CSVファイルからのインポート時にはいくつか注意点がある。[hogehoge.csv]として保存する際は”文字コード”と”改行コード”に注意。 文字コードは"UTF-8"もしくは"UTF-8N"改行コードはLFとすること。
mysql5.7以降はセキュリティの観点から既定のディレクトリからしかインポートできない。
規定のディレクトリを間作する時は下記のコードで調べられる。
Sql
select @@secure_file_priv;
既定のディレクトリに配置してなお、にエラーが発生した場合はファイルパスを¥から/に変更するもしくは下記のコマンドを入力する。
Sql
set perisist loca_infile = 1;
このコマンドを打って解決しない場合はmy.iniを編集することで解決する。
有効にできているか確認するには下記のコマンドで確認できる。
Sql
select @@local_infile;
実行結果がこのようになっていれば成功です。
実行結果
+---------------+
| @@local_infile|
+---------------+
| 1|
+---------------+
最後に
私がMySQLを触る上で毎回ドツボにハマるデータのインポート関連の項目がこれになります。もし、この記事が私と同じような問題に悩んでいる方のお役に立てば幸いです。