11
13

More than 1 year has passed since last update.

SQL コマンド 一覧まとめ

Posted at

データベース

データベース 説明
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>
ビュー実行
SELECT 
    *
FROM
    <ビュー名>;
ビュー削除
DROP VIEW <ビュー名>
11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13