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
データ型
下記は一例。
数値型 | 文字列型 | 日付型・時刻型 |
---|
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 <ビュー名>
コメント