6.

MySQL & MariaDBの関数

編集

MariaDB / MySQL で使用できる関数の記事です。データ取得時の整形、文字列操作、日付計算、集計など、SQLの中で値を加工するための組み込み関数を扱います。

子ページから関数を選択してください。

本ページの子ページ

関数の分類

文字列関数

関数用途
LENGTH(str)バイト数を返す
CHAR_LENGTH(str)文字数を返す(マルチバイト安全)
CONCAT(s1, s2, ...)文字列連結
SUBSTRING(str, pos, len)部分文字列
REPLACE(str, from, to)置換
UPPER(str) / LOWER(str)大文字/小文字変換
TRIM(str) / LTRIM / RTRIM空白除去
LPAD(str, len, pad)左パディング
LOCATE(s, str)文字列検索

日付・時刻関数

関数用途
NOW() / CURRENT_TIMESTAMP現在日時
CURDATE() / CURTIME()現在日付/時刻
DATE(dt) / TIME(dt)日付部/時刻部抽出
DATE_FORMAT(dt, fmt)書式化(%Y-%m-%d等)
STR_TO_DATE(str, fmt)文字列→日付
DATE_ADD(dt, INTERVAL n unit)日付加算
DATEDIFF(d1, d2)日数差
YEAR() / MONTH() / DAY()年・月・日抽出

数値関数

関数用途
ROUND(n, d)四捨五入
CEIL(n) / FLOOR(n)切り上げ/切り捨て
ABS(n)絶対値
MOD(a, b)剰余
POWER(a, b)累乗
RAND()0〜1の乱数

集約関数(GROUP BYと併用)

関数用途
COUNT(*) / COUNT(col)件数
SUM(col)合計
AVG(col)平均
MIN(col) / MAX(col)最小/最大
GROUP_CONCAT(col)カンマ区切り連結

条件・NULL処理

関数用途
IF(cond, a, b)条件分岐
IFNULL(expr, default)NULLなら代替値
COALESCE(a, b, c, ...)最初のNULL以外を返す
CASE WHEN ... THEN ... END多分岐

使用例

-- 文字列連結+部分抽出
SELECT CONCAT(last_name, ' ', first_name) AS full_name FROM users;

-- 日付の書式変換
SELECT DATE_FORMAT(created_at, '%Y-%m-%d') FROM orders;

-- NULL対応
SELECT IFNULL(nickname, name) AS display FROM users;

-- グループ集計
SELECT user_id, COUNT(*) as cnt, SUM(price)
FROM orders GROUP BY user_id;

関連

編集
Post Share
子ページ
  1. 現在日時の取得
  2. replaceによる文字列置換
同階層のページ
  1. ダウンロード&インストール方法(Windows)
  2. インストール方法(Linux)
  3. コマンド一覧
  4. SQL
  5. データ型
  6. 関数
  7. 管理ツール
  8. 設定
  9. パフォーマンスチューニング関連
  10. エクスポートおよびインポート
  11. エラー&トラブル
  12. 文字コードの確認
  13. 実行中の SQL の状態確認およびプロセスキルの方法
  14. パスワードの無効化設定
  15. root ユーザーの初期パスワード確認方法
  16. rootユーザーのパスワード変更方法
  17. LIMIT, OFFSET の始まりと挙動
  18. mysqlのバージョン確認方法
  19. 実行計画の表示方法
  20. レプリケーションのステータス確認方法
  21. 中央値の導き方(バージョン8未満)
  22. 階層SQL(バージョン8未満)
  23. パーセンタイルの導き方
  24. 特定スキーマの全テーブルの全カラム情報を取得する方法
  25. MySQLで文字列の置換をする方法