MENU

【2025年】データベース入門|SQL基本からNoSQLまで

database basics 2025 optimized

「データベース、SQLがよく分からない」と悩んでいませんか?

現役WEBエンジニアとして、データベースを日々使っています。

この記事では、データベースの基本を解説します。

目次

データベースの種類

RDBとNoSQL

種類 特徴 代表例
RDB テーブル形式、SQL MySQL, PostgreSQL
NoSQL 柔軟な構造 MongoDB, Redis

選び方

RDB向き:

  • トランザクション重視
  • 複雑なクエリ
  • データの整合性が重要

NoSQL向き:

  • 大量データ
  • 柔軟なスキーマ
  • 高速な読み書き

SQL基本

データ取得(SELECT)

-- 全件取得
SELECT * FROM users;

-- 特定カラム
SELECT name, email FROM users;

-- 条件付き
SELECT * FROM users WHERE age >= 20;

-- 並び替え
SELECT * FROM users ORDER BY created_at DESC;

-- 件数制限
SELECT * FROM users LIMIT 10;

データ挿入(INSERT)

-- 1件挿入
INSERT INTO users (name, email) VALUES ('田中', 'tanaka@example.com');

-- 複数挿入
INSERT INTO users (name, email) VALUES
  ('田中', 'tanaka@example.com'),
  ('鈴木', 'suzuki@example.com');

データ更新(UPDATE)

-- 条件付き更新
UPDATE users SET name = '山田' WHERE id = 1;

-- 複数カラム更新
UPDATE users SET name = '山田', email = 'yamada@example.com' WHERE id = 1;

データ削除(DELETE)

-- 条件付き削除
DELETE FROM users WHERE id = 1;

-- 全削除(注意)
DELETE FROM users;

テーブル結合

INNER JOIN

-- 両方に存在するデータのみ
SELECT users.name, posts.title
FROM users
INNER JOIN posts ON users.id = posts.user_id;

LEFT JOIN

-- 左テーブルは全て、右は一致のみ
SELECT users.name, posts.title
FROM users
LEFT JOIN posts ON users.id = posts.user_id;

集計関数

-- 件数
SELECT COUNT(*) FROM users;

-- 合計
SELECT SUM(price) FROM orders;

-- 平均
SELECT AVG(age) FROM users;

-- グループ化
SELECT status, COUNT(*) FROM orders GROUP BY status;

インデックス

インデックスとは

  • 検索を高速化
  • 追加するとINSERTは遅くなる
  • 適切に設計が必要
-- インデックス作成
CREATE INDEX idx_users_email ON users(email);

-- 複合インデックス
CREATE INDEX idx_orders_user_status ON orders(user_id, status);

NoSQL(MongoDB)

基本操作

// 挿入
db.users.insertOne({ name: "田中", age: 30 });

// 取得
db.users.find({ age: { $gte: 20 } });

// 更新
db.users.updateOne(
  { name: "田中" },
  { $set: { age: 31 } }
);

// 削除
db.users.deleteOne({ name: "田中" });

まとめ

データベース入門のポイント:

  1. SQL基本を覚える
  2. JOINとインデックスを理解
  3. RDB vs NoSQLの使い分け
  4. 実際に使って学ぶ

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次