MySQLコマンド・関数一覧

Pocket

グローバルメニューの【重要】にも追加しました。
データベース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() 円周率を取得

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください