ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
SQLとは、データベースに対して命令をするための言語です。テーブル定義、データの登録・更新・取得、トランザクション制御まで、リレーショナルデータベース (RDB) を扱うほぼすべての操作を SQL で行います。
データベース製品ごとに細かい方言 (T-SQL/PL/SQL/PL/pgSQL 等) はありますが、基本構文は ANSI SQL として標準化されています。
子ページから SQL の種類を選択してください。
本ページの子ページ
- DDL — テーブル等のオブジェクト定義 (CREATE / ALTER / DROP)
- DML — データ操作 (SELECT / INSERT / UPDATE / DELETE)
- トランザクション制御 — COMMIT / ROLLBACK / SAVEPOINT
- 関数 — 集約関数・文字列関数・日付関数など
- データディクショナリ — メタ情報を引くシステム表
- 動的パフォーマンスビュー — Oracle の
V$系ビュー等
SQLの分類
| 分類 | 用途 | 代表的な構文 |
|---|---|---|
| DDL (Data Definition Language) | オブジェクト定義 | CREATE TABLE、ALTER TABLE、DROP TABLE |
| DML (Data Manipulation Language) | データ操作 | SELECT、INSERT、UPDATE、DELETE |
| DCL (Data Control Language) | 権限制御 | GRANT、REVOKE |
| TCL (Transaction Control Language) | トランザクション | COMMIT、ROLLBACK、SAVEPOINT |
最も基本的なSELECT文
|
SELECT id, name, created_at |
SELECTの典型的な構成要素
| 句 | 役割 |
|---|---|
SELECT | 取得する列を指定 |
FROM | 取得元のテーブル/結合元 |
JOIN (INNER/LEFT/RIGHT/FULL) | テーブル結合 |
WHERE | 行のフィルタ |
GROUP BY | 集約のキー |
HAVING | 集約後のフィルタ |
ORDER BY | 並び替え |
LIMIT / OFFSET | 取得件数の制限・ページング |
JOINの種類
| JOIN | 結果 |
|---|---|
| INNER JOIN | 両方に一致する行のみ |
| LEFT (OUTER) JOIN | 左側全件+右側は一致した行 (なければ NULL) |
| RIGHT (OUTER) JOIN | 右側全件+左側は一致した行 |
| FULL (OUTER) JOIN | どちらか片方にあれば全部 (MySQLは未対応、UNIONで代用) |
| CROSS JOIN | 直積 |
| SELF JOIN | 同じテーブルを別名で結合 |
主なRDBMSとSQL方言
| RDBMS | 手続き型SQL | 備考 |
|---|---|---|
| MySQL / MariaDB | ストアドプロシージャ (SQL/PSM相当) | Web系で広く採用 |
| PostgreSQL | PL/pgSQL | 標準SQLへの準拠度が高い |
| Oracle | PL/SQL | 大規模基幹系で採用 |
| SQLite | 限定的 (トリガのみ) | 埋め込みDB |
| SQL Server | T-SQL | Microsoft製、企業AD環境で多い |
| DB2 | SQL PL | IBM製 |
パフォーマンス上のポイント
- EXPLAIN/実行計画で「フルスキャンしていないか」を確認する
- WHERE 句で使う列、結合キーにはインデックスを張る
- SELECT * は避け、必要な列だけを取る
- N+1 問題: アプリ側で N 回 SELECT するなら、JOIN/IN で 1回にまとめる
- COUNT(*) や OFFSET 大量は重い。キーセットページング (
WHERE id > ?) を検討
セキュリティ上の注意
- SQLインジェクション: 文字列連結ではなくプレースホルダ/プリペアドステートメントを使う
- アプリ用ユーザーには最小権限のみ付与 (DDL不要なら SELECT/INSERT/UPDATE/DELETE のみ等)
- 本番に対するUPDATE/DELETE は必ず WHERE 付きで。
BEGIN; ... ROLLBACK;で先に件数確認
関連
- 親カテゴリ: データベース
- RDBMS: MySQL/MariaDB / PostgreSQL / SQLite
- 子ページ: DDL / DML / トランザクション制御 / 関数
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?