2021/12/14
Laravel で開発している場合、DB のスキーマ―の変更はマイグレーション機能を使います。
ただ、レコードの置換であったりダンプ作業は直接 MySQ Lコマンドを叩きます。
今回は僕がよく使う MySQL コマンドについての備忘録をエントリーします。
クォート(クォーテーション)について
シングルクォート(')とバッククォート(`)の使い分け
【 構文 】
DELETE FROM `テーブル名` WHERE `カラム名` = '値';
DELETE FROM `テーブル名` WHERE `カラム名` = '値';
- テーブル名やフィールド名はバッククォート
- 値や文字列はシングルクォート
- バッククォートは、キーボードでは「@」の上にあり、Shift+@キーで入力できる。
- バッククォートは必須ではない
- バッククォートは予約語をエスケープするため
シングルクォート(')とダブルクォート(")の使い分け
- シングルクォートは変数展開しない
- ダブルクォートは変数展開する
- シングルクォートのほうが処理は早い
一括置換
MySQLのテーブルの内容に一括置換をかけたい場合は、次のようにします。
【 構文 】
UPDATE `デーブル名` SET `カラム名`=REPLACE(`カラム名`, '検索文字列', '置換文字列');
UPDATE `デーブル名` SET `カラム名`=REPLACE(`カラム名`, '検索文字列', '置換文字列');
さらに条件(id=8)を追加
【 構文 】
UPDATE `デーブル名` SET `カラム名`=REPLACE(`カラム名`, '検索文字列', '置換文字列') WHERE id=8;
UPDATE `デーブル名` SET `カラム名`=REPLACE(`カラム名`, '検索文字列', '置換文字列') WHERE id=8;
ログインコマンド
よく忘れます。後述のダンプコマンドと形は近いです。
【 構文 】
mysql -u {ユーザー名} -p {データベース名}
mysql -u {ユーザー名} -p {データベース名}
- ホスト先が localhost の場合は "-h" 省略できる
- ワンライナーでパスワードを入れる場合は-pと Password の間は空白なし
ダンプ
DBをDumpしたい場合
【 構文 】
mysqldump -u {ユーザー名} -p {データベース名} > {アウトプットファイル名}
mysqldump -u {ユーザー名} -p {データベース名} > {アウトプットファイル名}
- アウトプットファイル名の命名規則 例)20180405dbname-dump.sql
- "-h" を省略すると localhost が指定される
- "-p" はパスワードを指定してログイン
mysqldump -u homestead -p sample_db > 170807sample-dump.sql
【 ダンプデータの置き場所について 】
DB のダンプデータは本番環境にあっても意味のないファイルのため、/tmp 以下に作成したほうがベター。
DB のダンプデータは本番環境にあっても意味のないファイルのため、/tmp 以下に作成したほうがベター。
TABLEをDumpしたい場合
【 構文 】
mysqldump -u {ユーザー名} -p {DB名} {TABLE名} > {アウトプットファイル名}
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 {データベース名} < {ダンプファイル名}
mysql -u {ユーザー名} -p {データベース名} < {ダンプファイル名}
- テーブルのリストアの場合はデータベース名を指定する
- データベースのリストアの場合はデータベース名を指定する必要はなし
mysqldump -u homestead -p sample_db < C:\170807sample-dump.sql
その他
データベース一覧
【 構文 】
show databases;
show databases;
データベースへ接続
【 構文 】
use {データベース名};
use {データベース名};
テーブル一覧
【 構文 】
show tables;
show tables;
テーブル定義確認
【 構文 】
describe {テーブル名};
※descでも可
describe {テーブル名};
※descでも可
テーブル作成
【 構文 】
create table {テーブル名} (
{フィールド名} {データ型},
{フィールド名} {データ型},
{フィールド名} {データ型}
);
create table {テーブル名} (
{フィールド名} {データ型},
{フィールド名} {データ型},
{フィールド名} {データ型}
);
create table user( id int, username varchar(255), email varchar(255), password char(30) );
【 解説 】
データ型が int のときは長さを省略できます。その場合はint(11)になります。
データ型が int のときは長さを省略できます。その場合はint(11)になります。
MySQL の備忘録は以上になります。
SQL・データベース おススメ教材(by Udemy)
動画でプログラミング学習!ドットインストール、Schoo、Udemyのどれがいい?
Udemyを使ったLaravel学習方法
Udemyを使ったLaravel学習方法
3時間で学ぶ SQL ・データベース 超入門【丁寧な解説+演習問題で SQL データ抽出の基本が身につく】標準 SQL
ついに動画化!日本最大級スキルシェアサービス「ストアカ」の大人気講座!元塾講師プログラマーが教える、知識「ゼロ」からの SQL 基礎!データベースとは?からCASE式まで、 SQL データ抽出の基本を短時間で習得しよう!標準 SQL 使用。
4.4(1421)
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。