https://qiita.com/leomaro7/items/4e90f802d0ae7edf6b23
データベース
| データベース | 説明 |
|---|
| 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 | テーブル内のデータを全削除または条件に一致したデータを削除。オートインクリメントは削除されない。 |
https://qiita.com/embed-contents/link-card#qiita-embed-content__cf974579b2e67df53ac5d1ac8c999137
データ型
下記は一例。
| 数値型 | 文字列型 | 日付型・時刻型 |
|---|
| INT | CHAR | DATE |
| FLOAT | varchar | TIME |
https://qiita.com/embed-contents/link-card#qiita-embed-content__e3185e04fcaaa86f84f1234532da2e7e
属性
| 属性 | 説明 |
|---|
| NOT NULL | null を禁止する |
| AUTO_INCREMENT | 自動採番にする |
| DEFAULT | デフォルトの値として指定したいもの |
プライマリキーと外部キーとユニークキー
| キー | 説明 |
|---|
| PRIMARY KEY | プライマリキー |
| FOREIGN KEY (カラム名) REFERENCES <テーブル名>(<カラム名>) | 外部キー |
| UNIQUE KEY | ユニークキー |
https://qiita.com/embed-contents/link-card#qiita-embed-content__f23ea6dc6793613c2d78c34e6fb90669
外部キー
| オプション | 説明 |
|---|
| 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文>
ビュー実行
SELECT
*
FROM
<ビュー名>;
ビュー削除
DROP VIEW <ビュー名>