※Web開発

SQL コマンド 一覧まとめ

SQL コマンド 一覧まとめ - Qiita
データベーステーブルテーブルの削除データ型下記は一例。…

データベース

データベース説明
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

データ型

下記は一例。

数値型文字列型日付型・時刻型
INTCHARDATE
FLOATvarcharTIME
https://qiita.com/embed-contents/link-card#qiita-embed-content__e3185e04fcaaa86f84f1234532da2e7e

属性

属性説明
NOT NULLnull を禁止する
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自己結合
UNIONSELECTの結果を縦に結合する(重複排除有)
UNION ALLSELECTの結果を縦に結合する(重複排除無)
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 <ビュー名>
タイトルとURLをコピーしました