ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
文字列関数
-- 連結
SELECT CONCAT('Hello, ', name, '!') FROM users;
SELECT CONCAT_WS('-', '2024', '01', '15'); -- '2024-01-15' (区切り付き)
-- 部分文字列 (1 始まり)
SELECT SUBSTRING('hello world', 7, 5); -- 'world'
SELECT SUBSTRING_INDEX('a,b,c,d', ',', 2); -- 'a,b'
-- 置換
SELECT REPLACE('foo bar foo', 'foo', 'baz'); -- 'baz bar baz'
-- 長さ (バイト)
SELECT LENGTH('あいう'); -- 9 (UTF-8 で 3 バイト × 3)
SELECT CHAR_LENGTH('あいう'); -- 3 (文字数)
-- 大小変換
SELECT LOWER('Hello'), UPPER('Hello');
-- 空白除去
SELECT TRIM(' hello '), LTRIM(' hello'), RTRIM('hello ');
SELECT TRIM(BOTH '0' FROM '00abc00'); -- 'abc'
-- パディング
SELECT LPAD('5', 3, '0'); -- '005'
SELECT RPAD('5', 3, '0'); -- '500'
-- 位置検索
SELECT INSTR('hello world', 'world'); -- 7
SELECT LOCATE('o', 'hello', 5); -- 5 (5 文字目から検索)
数値関数
-- 四捨五入
SELECT ROUND(3.7); -- 4
SELECT ROUND(3.14159, 2); -- 3.14
-- 切り捨て・切り上げ
SELECT FLOOR(3.7); -- 3
SELECT CEILING(3.2); -- 4
SELECT TRUNCATE(3.789, 1); -- 3.7 (切り捨て桁指定)
-- 絶対値・剰余
SELECT ABS(-5); -- 5
SELECT MOD(10, 3); -- 1
SELECT 10 % 3; -- 1 (同じ)
-- 累乗・平方根
SELECT POW(2, 10); -- 1024
SELECT SQRT(16); -- 4
-- 乱数
SELECT RAND(); -- 0〜1
SELECT FLOOR(RAND() * 100); -- 0〜99
日付・時刻関数
-- 現在時刻
SELECT NOW(); -- '2026-06-10 12:34:56'
SELECT CURDATE(); -- '2026-06-10'
SELECT CURTIME(); -- '12:34:56'
SELECT UNIX_TIMESTAMP(); -- 1749553496
-- フォーマット
SELECT DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i'); -- '2026/06/10 12:34'
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日');
-- パース
SELECT STR_TO_DATE('2026/06/10', '%Y/%m/%d');
-- 加減算
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY); -- 7 日後
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); -- 1 ヶ月前
SELECT NOW() + INTERVAL 1 HOUR; -- 1 時間後
-- 差分
SELECT DATEDIFF('2026-06-10', '2026-01-01'); -- 160 (日数)
SELECT TIMESTAMPDIFF(MONTH, '2025-01-01', '2026-06-10'); -- 17 (月数)
SELECT TIMESTAMPDIFF(YEAR, '1990-04-15', CURDATE()); -- 年齢計算
-- 抜き出し
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
SELECT DAYOFWEEK(NOW()); -- 1=日, 2=月, ..., 7=土
SELECT DAYNAME(NOW()); -- 'Wednesday'
-- 月末
SELECT LAST_DAY(NOW());
DATE_FORMAT のフォーマット
| 記号 | 意味 | 例 |
|---|---|---|
| %Y | 年 4 桁 | 2026 |
| %y | 年 2 桁 | 26 |
| %m | 月 (01-12) | 06 |
| %c | 月 (1-12) | 6 |
| %d | 日 (01-31) | 10 |
| %e | 日 (1-31) | 10 |
| %H | 時 (00-23) | 14 |
| %h / %I | 時 (01-12) | 02 |
| %i | 分 (00-59) | 30 |
| %s | 秒 (00-59) | 45 |
| %W | 曜日名 | Wednesday |
| %a | 曜日略 | Wed |
集計関数
SELECT
COUNT(*), -- 全件
COUNT(email), -- email が NULL 以外の件数
COUNT(DISTINCT user_id),
SUM(amount),
AVG(amount),
MAX(created_at),
MIN(price),
GROUP_CONCAT(name SEPARATOR ', ') -- 文字列連結 (デフォルト 1024 文字)
FROM orders
WHERE status = 'paid';
-- GROUP BY と合わせて
SELECT user_id, COUNT(*) AS cnt, SUM(amount) AS total
FROM orders
GROUP BY user_id
HAVING total > 10000;
条件関数
-- IF (式, 真の値, 偽の値)
SELECT IF(score >= 60, '合格', '不合格') FROM students;
-- CASE WHEN
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM students;
-- NULL ハンドリング
SELECT COALESCE(nickname, name, 'no name') FROM users;
-- 最初の非 NULL を返す
SELECT IFNULL(phone, 'none') FROM users;
-- 1 つだけ。NULL なら 'none'
SELECT NULLIF(a, b); -- a = b なら NULL、違えば a
ウィンドウ関数 (MySQL 8.0+)
-- ユーザー別売上ランキング
SELECT
user_id,
order_no,
amount,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY amount DESC) AS rn,
RANK() OVER (PARTITION BY user_id ORDER BY amount DESC) AS rk,
DENSE_RANK() OVER (PARTITION BY user_id ORDER BY amount DESC) AS drk
FROM orders;
-- 前後の行
SELECT
date,
sales,
LAG(sales, 1) OVER (ORDER BY date) AS prev_sales,
LEAD(sales, 1) OVER (ORDER BY date) AS next_sales,
sales - LAG(sales, 1) OVER (ORDER BY date) AS diff
FROM daily_sales;
-- 移動平均
SELECT date, sales,
AVG(sales) OVER (
ORDER BY date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS ma_7days
FROM daily_sales;
JSON 関数 (5.7+)
-- 値取り出し
SELECT JSON_EXTRACT(meta, '$.theme') FROM user_settings;
SELECT meta->>'$.theme' FROM user_settings; -- 同じ (8.0+)
-- 更新
UPDATE user_settings
SET meta = JSON_SET(meta, '$.theme', 'dark')
WHERE user_id = 1;
-- キー存在
SELECT * FROM user_settings WHERE JSON_CONTAINS_PATH(meta, 'one', '$.theme');
-- 配列に追加
UPDATE user_tags SET tags = JSON_ARRAY_APPEND(tags, '$', 'new');
FAQ
Q: LENGTH と CHAR_LENGTH の違い
A: LENGTH はバイト数、CHAR_LENGTH は文字数。UTF-8 で日本語は 3 バイト、絵文字は 4 バイト。
Q: NOW() と CURRENT_TIMESTAMP の違い
A: 同じ。エイリアス関係。
Q: GROUP_CONCAT が途中で切れる
A: group_concat_max_len が 1024 バイト。SET SESSION group_concat_max_len = 1000000 で拡張。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
同階層のページ
- ダウンロード&インストール方法(Windows)
- インストール方法(Linux)
- コマンド一覧
- SQL
- データ型
- 関数
- 管理ツール
- 設定
- パフォーマンスチューニング関連
- エクスポートおよびインポート
- エラー&トラブル
- 文字コードの確認
- 実行中の SQL の状態確認およびプロセスキルの方法
- パスワードの無効化設定
- root ユーザーの初期パスワード確認方法
- rootユーザーのパスワード変更方法
- LIMIT, OFFSET の始まりと挙動
- mysqlのバージョン確認方法
- MySQLで実行計画を表示する方法
- レプリケーションのステータス確認方法
- 中央値の導き方(バージョン8未満)
- 階層SQL(バージョン8未満)
- パーセンタイルの導き方
- 特定スキーマの全テーブルの全カラム情報を取得する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?