グローバルメニューの【重要】にも追加しました。
データベースMySQLでサポートされているSQLコマンドの一覧を掲載しています。 SQL一覧表は、各項目での並べ替えが可能です。 データ操作命令(DML)、データ定義命令(DDL)、トランザクション、演算子、関数に分類しています。 表の「table_name」はテーブル名、「item」は項目を意味します。 なお、他のデータベース(Oracle、DB2等)では、SQLの書式が異なることがありますので、ご注意ください。
MySQLは、世界で最も有名なオープンソース・データベースとして知られており、世界のデータベース市場では他のPostgreSQLなどのライバルを圧倒しています。 オープンソース・データベースであるため、ほとんどのレンタルサーバーで利用可能になっています。
SQL | 分類 | 意味 | 使用例 | 結果 |
---|---|---|---|---|
SELECT | DML | データ行を取得 | SELECT * FROM table_name | table_nameの全列、全行を取得 |
DISTINCT | DML | 重複する行を除く | SELECT DISTINCT item FROM table_name | table_nameのitem列だけを重複値を取り除いて取得 |
AS | DML | 別名の指定 | SELECT item1 AS item2 FROM table_name | item1列にitem2列という別名を付けて結果を取得 |
FROM | DML | 対象テーブル指定 | SELECT * FROM table_name | table_nameの全列、全行を取得 |
WHERE | DML | 抽出条件の指定 | SELECT * FROM table_name WHERE item = 100 | item列が100と等しい行を取得 |
GROUP BY | DML | グループ化 | SELECT COUNT(*) FROM table_name GROUP BY item | table_nameをitem列の値によってグループ化し、その行数を集計 |
HAVING | DML | 集計関数の結果を抽出条件に指定 | SELECT x,SUM(i) FROM table_name GROUP BY x HAVING SUM(i) > 100 | グループの合計値が100以上であるグループのみを取得 |
ORDER BY | DML | 取得順序・ソート | SELECT * FROM table_name ORDER BY item ASC | table_nameをitem列の昇順(DESCは降順)に並び変える |
LIMIT | DML | 結果の制限 | SELECT * FROM table_name LIMIT 5,3 | table_name全体の5行目から3行のみを取得 |
INSERT | DML | データ行の追加 | INSERT INTO table_name VALUES(1,2,’test’) | table_nameに列の左から1,2,’test’を保持する行を追加(VALUESに続く値と対応) |
UPDATE | DML | データ行の更新 | UPDATE table_name SET item1 = 1 WHERE item2 = 2 | table_nameにおいて、item2列が2のデータ行のitem1列を1に更新 |
DELETE | DML | データ行の削除 | DELETE FROM table_name WHERE item = 1 | table_nameにおいて、item列が1の行のみを削除 |
BEGIN | トランザクション | トランザクション開始 | BIGIN WORK | COMITTをして確定するまで、INSERT、DELETE、UPDATEが反映されない |
COMMIT | トランザクション | トランザクションをコミット | COMMIT | INSERT、DELETE、UPDATEを反映する |
ROLLBACK | トランザクション | トランザクションを戻す | ROLLBACK | INSERT、DELETE、UPDATEが破棄され、BIGINを実行する前の状態に戻る |
LOCK TABLES | トランザクション | テーブルのロック | LOCK TABLES table_name READ | テーブルをREADロック(READ/READ LOCAL/WRITE) |
UNLOCK TABLES | トランザクション | テーブルのロック解除 | UNLOCK TABLES | 全テーブルのロックを解除 |
CREATE TABLE | DDL | テーブルの作成 | CREATE TABLE table_name(item1 INTEGER, item2 VARCHAR(20)) | item1とitem2の列を持ち、それぞれの型が整数、文字列であるtable_nameを作成 |
NOT NULL | DDL | NOT NULL制約 | CREATE TABLE table_name(item1 INTEGER NOT NULL, item2 VARCHAR(20) NULL) | item1列をNOT NULLに指定、item2列をNULL指定 |
UNIQUE | DDL | UNIQUE制約 | CREATE TABLE table_name(item INTEGER UNIQUE) | item1列にUNIQUE制約を設定 |
PRIMARY KEY | DDL | PRIMARY KEY制約 | CREATE TABLE table_name(item INTEGER NOT NULL PRIMARY KEY) | item1列にNOT NULL制約と PRIMARY KEY制約を設定 |
DROP TABLE | DDL | テーブルの削除 | DOROP TABLE table_name | table_nameを削除 |
ALTER TABLE | DDL | テーブル属性変更 | ALTER TABLE table_name ADD COLUMN item INTEGER | item列を数値型でtable_nameに追加(DROPは削除) |
TRUNCATE TABLE | DDL | テーブル全行削除 | TRUNCATE TABLE table_name | table_name全行を高速で削除(DELETEより速い) |
CREATE INDEX | DDL | インデックス作成 | CREATE INDEX idx ON table_name | table_nameに対してインデックスidxを作成 |
DROP INDEX | DDL | インデックス削除 | DROP INDEX idx ON table_name | table_nameに対してインデックスidxを削除 |
GRANT | DDL | 権限の付与 | GRANT ALL PRIVILEGES ON *.* TO name@localhost FLUSH PRIVILEGES | すべての権限をlocalhostのユーザーnameにグローバル権限として付与 |
REVOKE | DDL | 権限の剥奪 | REVOKE ALL PRIVILEGES ON table_name FROM name FLUSHI PRIVILEGES | table_nameに対して、全ての権限をnameか剥奪 |
RENAME | DDL | オブジェクト名の変更 | RENAME table_nameA TO table_nameB | データベースtable_nameAをtable_nameBにリネーム |
AND | 演算子 | かつ | SELECT * FROM table_name WHERE item1 = 100 AND item2 = 200 | item1列が100と等しく、かつitem2列が200と等しい行を全て取得 |
BETWEEN | 演算子 | 範囲指定 | SELECT * FROM table_name WHERE 年齢 BETWEEN 30 AND 40 | 年齢列が20以上、30以下の行を全て取得 |
IN | 演算子 | 含む | SELECT * FROM table_name WHERE item IN (100,200) | item列が100か200の行を全て取得 |
LIKE | 演算子 | パターンマッチ | SELECT 氏名 FROM table_name WHERE 氏名 LIKE ‘%郎’ | 氏名の最後が「郎」である行を全て取得 |
NOT | 演算子 | 否定 | SELECT * FROM table_name WHERE NOT item = 1 | table_nameでitemが1ではない行を全て取得 |
OR | 演算子 | または | SELECT * FROM table_name WHERE item1 = 100 OR item2 = 200 | item1列が100、またはtem2列が200と等しい行を全て取得 |
IS NULL | 演算子 | NULL値の判定 | SELECT * FROM table_name WHERE item IS NULL | item列がNULLの行を全て取得 |
IS NOT NULL | 演算子 | NULL値の判定 | SELECT * FROM table_name WHERE item IS NOT NULL | item列がNULLではない行を全て取得 |
AVG | 関数(集計) | 平均 | SELECT AVG(DISTINCT item) FROM teble_name | item列の重複を除いて平均値を計算 |
COUNT | 関数(集計) | 行数を集計 | SELECT COUNT(DISTINCT item) FROM table_name | item列の重複を除いて行数を計算 |
MAX | 関数(集計) | 最大値 | SELECT MAX(item) FROM table_name | item列の最大値を計算 |
MIN | 関数(集計) | 最小値 | SELECT MIN(item) FROM table_name | item列の最小値を計算 |
STDDEV | 関数(集計) | 標準偏差 | SELECT STDDEV(item) FROM table_name | item列の標準偏差を計算 |
SUM | 関数(集計) | 合計値 | SELECT SUM(item) FROM table_name | item列の合計値を計算 |
ASCLL | 関数(文字) | 文字コード変換 | SELECT ASCALL(item) FROM teble_name | item列をASCALLにより文字コードに変換 |
CHAR | 関数(文字) | 文字変換 | SELECT CHAR(item) FROM teble_name | item列をCHARにより文字に変換 |
CONCAT | 関数(文字) | 文字列結合 | SELECT CONCAT(item1,item2,item3) FROM table_name | CONCATにより、列item1,item2,item3を文字列結合 |
INSERT | 関数(文字) | 文字列の挿入 | SELECT INSERT(item,5,1,’xyz’) FROM table_name | item列の5文字目から1文字をxyzに置換 |
INSTER | 関数(文字) | 文字列検索 | SELECT INSTER(item1,item2) FROM table_name | item1列の文字列中から文字列item2を検索 |
LENGTH | 関数(文字) | 文字列長を取得 | SELECT LENGTH(item) FROM table_name | item列の文字列長を計算 |
CHARACTER _LENGTH |
関数(文字) | 文字列長取得 | SELECT CHAR_LENGTH(item1) FROM table_name WHERE item2 = 100 | table_nameのitem2列が100と等しい行から、item1列の文字列の長さを取得 |
OCTET _LENGTH |
関数(文字) | 文字列長を取得 | SELECT OCTET_LENGTH(item) FROM table_name | item列のバイト数を計算 |
POSITION | 関数(文字) | 文字列検索 | SELECT POSITION(item1 IN item2) FROM table_name | item2列の文字列中からitem1の文字列を検索し、最初にitem1が現れる位置を取得 |
REPEAT | 関数(文字) | 繰り返し | SELECT REPEAT(item1,item2) FROM table_name | item1をitem2回繰り返した文字列を取得 |
REPLACE | 関数(文字) | 置換 | SELECT REPLACE(item1,item2,item3) FROM table_name | item1列の文字列からitem2列の文字列と等しい箇所を全て文字列item3に置換 |
REVERSE | 関数(文字) | 反転 | SELECT REVERSE(item) FROM table_name | item列の文字列を反転した文字列を取得(1バイト文字のみ対応) |
SUBSTRING | 関数(文字) | 部分抽出 | SELECT SUBSTRING(item1,item2,item3) FROM table_name | item1列の文字列をitem2番目から、item3番目までを抽出して取得 |
RIGHT | 関数(文字) | 右部分を取得 | SELECT RIGHT(item1,item2) FROM table_name | item1列の文字列をitem2列の値分だけ、右側から抽出した文字列を取得 |
LEFT | 関数(文字) | 左部分を取得 | SELECT LEFT(item1,item2) FROM table_name | item1列の文字列をitem2列の値分だけ、左側から抽出した文字列を取得 |
RTRIM | 関数(文字) | 右の空白削除 | SELECT RTRIM(item) FROM table_name | item列から右側の空白を取り除く |
LTRIM | 関数(文字) | 左の空白削除 | SELECT LTRIM(item) FROM table_name | item列から左側の空白を取り除く |
TRIM | 関数(文字) | 指定文字の削除 | SELECT TRIM(item1 FROM item2) FROM table_name | item2の両端からitem1を取り除いた結果を取得 |
INITCAP | 関数(文字) | 先頭を大文字変換 | SELECT INITCAP(item) FROM teble_name | item列の文字列を先頭だけ、大文字に変換 |
LOWER | 関数(文字) | 小文字変換 | SELECT LOWER(item) FROM table_name | item列の文字列を全て小文字に変換した文字列を取得 |
UPPER | 関数(文字) | 大文字変換 | SELECT UPPER(item) FROM table_name | item列の文字列を全て大文字に変換した文字列を取得 |
SYSDATE | 関数(日付) | 現在日付 | SELECT STSDATE FROM DUAL | 現在の日時を取得 |
CURRENT _DATE |
関数(日付) | 現在日付 | SELECT CURRENT_DATE | 現在の日時を取得 |
CURRENT _TIME |
関数(日付) | 現在時刻 | SELECT CURRENT_TIME | 現在の時刻を取得 |
CURRENT _TIMESTAMP |
関数(日付) | 現在日時 | SELECT CURRENT_TIMESTAMP | 現在の日時を取得 |
NOW | 関数(日付) | 現在日時 | INSERT INTO table_name VALUES(NOW()) | 現在の日時で行を追加 |
DATE _FORMAT |
関数(日付) | 日付の整形 | SELECT DATE_FORMAT(item,’%Y/%m/%d’) FROM table_name | item列(YYYY-MM-DD形式)をYYYY/MM/DD形式に整形 |
TIME _FORMAT |
関数(日付) | 時刻の整形 | SELECT TIME_FORMAT(item,’%H:/%i:/%s’) FROM table_name | item列(hhmmss形式)をhh:mm:ss形式に整形 |
DATE _ADD |
関数(日付) | 日付の加算 | DATE_ADD(item, INTERVAL 10 DAY) FROM table_name | 日付型のitem列の10日後を計算して取得 |
DATE _SUB |
関数(日付) | 日付の減算 | DATE_SUB(item, INTERVAL 10 DAY) FROM table_name | 日付型のitem列の10日前を計算して取得 |
YEAR | 関数(日付) | 年を取得 | SELECT YEAR(item) FROM table_name | item列(YYYY-MM-DD形式)から年(YYYY)のみを取得 |
MONTH | 関数(日付) | 月を取得 | SELECT MONTH(item) FROM table_name | item列(YYYY-MM-DD形式)から月(MM)のみを取得 |
DAYOFMONTH | 関数(日付) | 日付を取得 | SELECT DAYOFMONTH(item) FROM table_name | item列(YYYY-MM-DD形式)から日付(DD)のみを取得 |
HOUR | 関数(日付) | 時を取得 | SELECT HOUR(item) FROM table_name | item列(hh:mm:ss形式)から時(hh)のみを取得 |
MINUTE | 関数(日付) | 分を取得 | SELECT MINUTE(item) FROM table_name | item列(hh:mm:ss形式)から分(mm)のみを取得 |
SECOND | 関数(日付) | 秒を取得 | SELECT SECOND(item) FROM table_name | item列(hh:mm:ss形式)から秒(ss)のみを取得 |
DAYOFWEEK | 関数(日付) | 曜日を取得 | SELECT DAYOFWEEK(item) FROM table_name | item列(YYYY-MM-DD形式)から曜日のみを計算して取得 |
DAYNAME | 関数(日付) | 曜日名を取得 | SELECT DAYNAME(item) FROM table_name | item列(YYYY-MM-DD形式)から曜日名を計算して取得 |
MONTHNAME | 関数(日付) | 月名を取得 | SELECT MONTHNAME(item) FROM table_name | item列(YYYY-MM-DD)から月名のみを取得 |
DAYOFYEAR | 関数(日付) | 年間通算日を取得 | SELECT DAYOFYEAR(item) FROM table_name | YYYY/01/01からitem列(YYYY-MM-DD形式)までの経過日数を計算して取得 |
WEEK | 関数(日付) | 年間通算週を取得 | SELECT WEEK(item) FROM table_name | YYYY/01/01からitem列(YYYY-MM-DD形式)までの経過週数を計算して取得 |
NULLIF | 関数(変換) | NULL変換 | SELECT NULLIF(item1,item2) FROM table_name | item1列とitem2列が等しい場合、NULLに変換 |
ABS | 関数(変換) | 絶対値 | SELECT ABS(item) FROM table_name | item列の絶対値を計算 |
SIN | 関数(変換) | サイン | SELECT SIN(item) FROM table_name | item列のサインを計算(引数の単位はラジアン) |
COS | 関数(変換) | コサイン | SELECT COS(item) FROM table_name | item列のコサインを計算(引数の単位はラジアン) |
TAN | 関数(変換) | タンジェント | SELECT TAN(item) FROM table_name | item列のタンジェントを計算(引数の単位はラジアン) |
COT | 関数(変換) | コタンジェント | SELECT COT(item) FROM table_name | item列のコタンジェントを計算(単位はラジアン) |
ASIN | 関数(変換) | 逆サイン | SELECT ASIN(item) FROM table_name | item列の逆サインを計算(単位はラジアン) |
ACOS | 関数(変換) | 逆コサイン | SELECT ACOS(item) FROM table_name | item列の逆コサインを計算(単位はラジアン) |
ATAN | 関数(変換) | 逆タンジェント | SELECT ATAN(item) FROM table_name | item列の逆タンジェントを計算(単位はラジアン) |
ATAN2 | 関数(変換) | 逆タンジェント | SELECT ATAN2(item1,item2) FROM table_name | item1列とitem2列により逆タンジェントを計算(単位はラジアン) |
CEILING | 関数(変換) | 最小整数値 | SELECT CEILING(item) FROM table_name | item列において、最も小さい整数値を計算(小数点以下切り捨て) |
FLOOR | 関数(変換) | 最大整数値 | SELECT FLOOR(item) FROM table_name | item列において、最も大きい整数値を計算(小数点以下切り捨て) |
DEGREES | 関数(変換) | ラジアンを度に変換 | SELECT DEGREES(item) FROM table_name | item列(ラジアン)を度に変換 |
RADIANS | 関数(変換) | 度をラジアンに変換 | SELECT RADIANS(item) FROM table_name | item列(度)をラジアンに変換 |
EXP | 関数(変換) | 指数値 | SELECT EXP(item) FROM table_name | item列の指数値を計算 |
GREATEST | 関数(変換) | 最大値 | SELECT GREATEST(item1,item2,item3) FROM table_name | 列item1,item2,item3の中で最も大きい値を計算(引数の個数は可変長) |
LEAST | 関数(変換) | 最小値 | SELECT LEAST(item1,item2,item3) FROM table_name | 列item1,item2,item3の中で最も小さい値を計算(引数の個数は可変長) |
MOD | 関数(変換) | 余りを計算 | SELECT MOD(item1,item2) FROM table_name | item1列÷item2列の余りを計算 |
POW | 関数(変換) | べき乗 | SELECT POW(item1,item2) FROM table_name | item1列のitem2列乗を計算 |
SQRT | 関数(変換) | 平方根 | SELECT SQRT(item) FROM table_name | item1列の平方根を計算 |
ROUND | 関数(変換) | 四捨五入 | SELECT ROUND(item1,2) FROM table_name | item1列の値を小数点以下2桁が残るように四捨五入 |
SIGN | 関数(変換) | 符号 | SELECT SIGN(item) FROM table_name | item列の符号を取得(正:0/負:-1/0:0) |
RAND | 関数(変換) | 乱数 | SELECT RAND() | 乱数(ランダムな数値)を取得 |
PI | 関数(変換) | 円周率 | SELECT PI() | 円周率を取得 |