データベース
| データベース |
説明 |
| SHOW DATABASES |
データベースの一覧を確認する |
| CREATE DATABASE <データベース名> |
データベースを作成する |
| USE <データベース名> |
データベース名を指定する |
| DROP <データベース名> |
データベースを削除する |
テーブル
| テーブル |
説明 |
| SHOW TABLES |
テーブルを表示する |
| SHOW COLUMNS FROM <テーブル名> |
テーブル構造を確認する |
| CREATE TABLE |
テーブルを作成する |
| DROP TABLE <テーブル名> |
テーブルを削除する |
| INSERT INTO <テーブル名>(<カラム名>)VALUE(値) |
レコードを追加する |
| ALTER TABLE <テーブル名> ADD COLUMN <カラム名> |
カラムを追加する |
| DESC <テーブル名> |
テーブルの構造を確認 |
| UDATE <テーブル名> SET <カラム名> = 1 WHERE <カラム名> = 2 |
レコードを更新する |
| DELETE FROM <テーブル名> WHERE <カラム名> = 1 |
レコードを削除する |
| COMMIT |
現在のトランザクションをコミットして確定する |
| ROLEBACK |
現在のトランザクションをロールバックして取り消す |
| CREATE INDEX index_name on <テーブル名>(カラム名>) |
インデックスを作成する |
| SELECT <カラム名> FROM <テーブル名> |
データを抽出する |
| SHOW KEYS FROM <テーブル名> |
プライマリキーを確認する |
| WHERE |
特定の条件に絞り込んで抽出する |
| AS |
列に対して別名を設定する |
| DISTINCT |
重複を排除する |
| ORDER BY <カラム名> |
昇順にする |
| ORDER BY <カラム名> DESC |
降順にする |
| LIMIT <レコード数> |
取得するデータの数を指定する |
| LIKE |
"%" 0文字以上の任意の文字列、 "_" 任意の1文字 で検索する |
| NOT LIKE |
上記LIKEの逆を意味する |
| GROUP BY |
条件を指定してグループ化する |
| HAVING |
グループ化されたレコードから条件を指定して絞り込む |
テーブルの削除
| コマンド |
説明 |
| DROP |
テーブル内のオブジェクトを完全に削除する |
| TRUNCATE |
テーブル内のレコードを完全に削除する。オートインクリメントの削除。 |
| DELETE |
テーブル内のデータを全削除または条件に一致したデータを削除。オートインクリメントは削除されない。 |
データ型
下記は一例。
| 数値型 |
文字列型 |
日付型・時刻型 |
| INT |
CHAR |
DATE |
| FLOAT |
varchar |
TIME |
属性
| 属性 |
説明 |
| NOT NULL |
null を禁止する |
| AUTO_INCREMENT |
自動採番にする |
| DEFAULT |
デフォルトの値として指定したいもの |
プライマリキーと外部キーとユニークキー
| キー |
説明 |
| PRIMARY KEY |
プライマリキー |
| FOREIGN KEY (カラム名) REFERENCES <テーブル名>(<カラム名>) |
外部キー |
| UNIQUE KEY |
ユニークキー |
外部キー
| オプション |
説明 |
| ON DELETE CASCADE |
親テーブル/親レコードを削除するときに子テーブルの参照しているデータも削除される |
| ON DELETE RESTRICT |
親テーブル/親レコードを削除するときにエラーとなって、削除できないようにする |
| ON DELETE SET NULL |
親テーブル/親レコードを削除するときに子テーブルの参照しているデータがNULLとなる。 |
| ON UPDATE CASCADE |
親テーブル/親レコードを削除するときに子テーブルの参照しているデータも更新される。 |
| ON UPDATE RESTRICT |
親テーブル/親レコードを削除するときにエラーとなって、更新できないようにする |
| ON UPDATE SET NULL |
親テーブル/親レコードを更新するときに子テーブルの参照しているデータがNULLとなる。 |
文字コード
『デフォルトの文字コード』を『UTF-8』にして処理する
ENGINE=INNODB DEFAULT CHARSET=UTF8MB4;
演算子
比較演算
| 比較演算子 |
説明 |
| < |
小なり |
| > |
大なり |
| <= |
以下 |
| >= |
以上 |
| = |
等しい |
| <> もしくは != |
等しくない |
論理演算子
| 論理演算子 |
説明 |
| AND |
と |
| OR もしくは IN(<値A>,<値B>) |
もしくは |
| BETWEEN <範囲A> AND <範囲B> |
AからBの範囲 |
四則演算子
| 四則演算子 |
説明 |
| + |
加算 |
| - |
減算 |
| * |
乗算 |
| / |
除算 |
| DIV |
除算(整数値の返却) |
| & |
剰余 |
| MOD |
剰余 |
関数
関数(数値)
| 関数(数値) |
説明 |
| ABS() |
絶対値を算出する |
| ROUND() |
四捨五入をする |
| CELING() |
数値よりも大きい整数のうち最小のもの |
| FLOOR() |
指定した数値以下の最大の整数を取得する |
| TRUNCATE() |
小数点以下を指定すて表示する |
| COUNT() |
データ数を数える |
| SUM() |
データの合計を算出する |
| AVG() |
データの平均を算出する |
| MAX() |
データの最大を算出する |
| MIN() |
データの最小を算出する |
関数(文字列)
| 関数(文字列) |
説明 |
| CONCAT() |
文字列を連結する |
| LOWER() |
小文字にする |
| UPPER() |
大文字にする |
| REPLACE() |
特定の文字を変換する |
| INSERT() |
文字列を指定し特定の文字に変換する |
| LPAD() |
文字列が○文字になるように左側を埋める |
| RPAD() |
文字列が○文字になるように右側を埋める |
| REPEAT() |
指定した分だけ文字を返す |
関数(保持列)
| 関数(保持列) |
説明 |
| LENGTH() |
バイト数を数える |
| CHAR_LENGTH() |
文字数を数える |
関数(日付)
| 関数(日付) |
説明 |
| CURRENT_DATE() |
現在の日付を表示する |
| CURRENT_TIME() |
現在の時刻を表示する |
| CURRENT_TIMESTAMP() |
現在の日付と時刻を表示する |
| DATEDIFF() |
日付の差分を算出する |
| TIMEDIFF() |
時刻の差分を算出する |
| TIMESTAMPDIFF() |
日時の差分を算出する |
| DAYNAME() |
曜日を抽出する |
| MONTH() |
月をを抽出する |
| YEAR() |
年を抽出する |
| DAY() |
日を抽出する |
| DAYOFMONTH() |
経過月を出力する |
| DAYOFYEAR() |
経過年を出力する |
| DAYOFWEEK() |
経過週を出力する |
| DATE_FORMAT() |
指定のフォーマットで整形し文字列を取得する |
| CONVERT_TZ() |
タイムゾーンを変更する |
関数(その他)
| 関数(その他) |
説明 |
| DATABASE() |
現在利用しているデータベースを表示する |
| CURRENT_USER() |
現在利用しているユーザー名を表示する |
| VERSION() |
SQLバージョンを表示する |
| CHARSET() |
文字セットを確認する |
| DEFAULT() |
デフォルト値を確認する |
| CAST() |
別のデータ型に変換する |
| CONVERT() |
別のデータ型に変換する |
JOIN
| JOIN |
説明 |
| INNER JOIN |
内部結合 |
| LEFT JOIN |
左外部結合 |
| RIGHT JOIN |
右外部結合 |
| FULL JOIN |
完全外部結合 |
| CROSS JOIN |
クロス結合 |
| SELF JOIN |
自己結合 |
| UNION |
SELECTの結果を縦に結合する(重複排除有) |
| UNION ALL |
SELECTの結果を縦に結合する(重複排除無) |
SELECT
*
FROM
<テーブル名1>
INNER JOIN
<テーブル名2> ON <テーブル名1>.<カラム> = <テーブル名2>.<カラム>
SELECT
*
FROM
<テーブル名>
UNION
SELECT
*
FROM
<テーブル名>
ビュー
複数のテーブルを使った複雑なSQLでも、ビューを一度作っておけば何度でも同じSQLが使える。
| コマンド |
説明 |
| CREATE VIEW |
ビューを作成する |
| DROP VIEW |
ビューを削除する |
ビュー作成
CREATE VIEW <ビュー名> AS <実行したいSQL文>