周辺知識

MySQLコマンドについての備忘録(クォート/置換/ダンプ)

2018/04/10

Laravel で開発している場合、DB のスキーマ―の変更はマイグレーション機能を使います。

ただ、レコードの置換であったりダンプ作業は直接 MySQ Lコマンドを叩きます。

今回は僕がよく使う MySQL コマンドについての備忘録をエントリーします。

 

クォート(クォーテーション)について

シングルクォート(')とバッククォート(`)の使い分け

【 構文 】
DELETE FROM `テーブル名` WHERE `カラム名` = '値';
  • テーブル名やフィールド名はバッククォート
  • 値や文字列はシングルクォート
  • バッククォートは、キーボードでは「@」の上にあり、Shift+@キーで入力できる。
  • バッククォートは必須ではない
  • バッククォートは予約語をエスケープするため

 
シングルクォート(')とダブルクォート(")の使い分け

  • シングルクォートは変数展開しない
  • ダブルクォートは変数展開する
  • シングルクォートのほうが処理は早い

 

一括置換

MySQLのテーブルの内容に一括置換をかけたい場合は、次のようにします。

【 構文 】
UPDATE `デーブル名` SET `カラム名`=REPLACE(`カラム名`, '検索文字列', '置換文字列');

さらに条件(id=8)を追加

【 構文 】
UPDATE `デーブル名` SET `カラム名`=REPLACE(`カラム名`, '検索文字列', '置換文字列') WHERE id=8;

 

ログインコマンド

よく忘れます。後述のダンプコマンドと形は近いです。

【 構文 】
mysql -u {ユーザー名} -p {データベース名}
  • ホスト先が localhost の場合は "-h" 省略できる
  • ワンライナーでパスワードを入れる場合は-pと Password の間は空白なし

 

ダンプ

DBをDumpしたい場合

【 構文 】
mysqldump -u {ユーザー名} -p {データベース名} > {アウトプットファイル名}
  • アウトプットファイル名の命名規則 例)20180405dbname-dump.sql
  • "-h" を省略すると localhost が指定される
  • "-p" はパスワードを指定してログイン
mysqldump -u homestead -p sample_db > 170807sample-dump.sql
【 ダンプデータの置き場所について 】
DB のダンプデータは本番環境にあっても意味のないファイルのため、/tmp 以下に作成したほうがベター。

 
TABLEをDumpしたい場合

【 構文 】
mysqldump -u {ユーザー名} -p {DB名} {TABLE名} > {アウトプットファイル名}
  • アウトプットファイル名の命名規則 例)20180405dbname-tablename-dump.sql
  • "-t" はテーブルの作成を行わずにダンプ(データのみ)
mysqldump -u homestead -p sample_db sample_tbl > 170807sample-smple_tbl-dump.sql

 
ダンプしたデータをローカルにダウンロード

Linuxコマンドではscpコマンドを使うのですが、新しくターミナルを起動する必要があります。

Windowsの場合はソフトを利用するほうが便利。

 
ダンプしたデータをリストア

【 構文 】
mysql -u {ユーザー名} -p {データベース名} < {ダンプファイル名}
  • テーブルのリストアの場合はデータベース名を指定する
  • データベースのリストアの場合はデータベース名を指定する必要はなし
mysqldump -u homestead -p sample_db < C:\170807sample-dump.sql

 

その他

データベース一覧

【 構文 】
show databases;

 
データベースへ接続

【 構文 】
use {データベース名};

 
テーブル一覧

【 構文 】
show tables;

 
テーブル定義確認

【 構文 】
describe {テーブル名};
※descでも可

 
テーブル作成

【 構文 】
create table {テーブル名} (
{フィールド名} {データ型},
{フィールド名} {データ型},
{フィールド名} {データ型}
);
create table user(
id int,
username varchar(255),
email varchar(255),
password char(30)
);
【 解説 】
データ型が int のときは長さを省略できます。その場合はint(11)になります。

MySQL の備忘録は以上になります。

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-周辺知識