SQLの基礎:概要と主要なクエリの使い方

DB

SQL(Structured Query Language)は、リレーショナルデータベースからデータを操作するための言語です。基本的なSQLの操作には、データの作成、読み取り、更新、削除(CRUD)が含まれます。

リレーショナルデータベース

リレーショナルデータベースは、エクセルの表のような構造を持ち、関連する複数の表(テーブル)から構成されています。各テーブルには、名前が付いた列(カラム)とデータが入った行(レコード)があります。

基本的なSQLクエリ

  • SELECT: データを取得する SELECT name, age FROM consumer;
  • WHERE: 条件に基づいてデータをフィルタリングする. SELECT * FROM consumer WHERE age > 20;
  • ORDER BY: データを並び替える SELECT * FROM consumer ORDER BY age DESC;
  • INSERT: 新しいデータを追加する INSERT INTO consumer (name, age) VALUES ('John', 30);
  • UPDATE: 既存のデータを更新する UPDATE consumer SET age = 31 WHERE name = 'John';
  • DELETE: 既存のデータを削除する DELETE FROM consumer WHERE age < 18;

高度なクエリ操作

  • JOIN: 複数のテーブルを結合してデータを取得する SELECT consumer.name, orders.amount FROM consumer JOIN orders ON consumer.id = orders.consumer_id;
  • GROUP BY: 特定のカラムに基づいてデータをグループ化する SELECT age, COUNT(*) FROM consumer GROUP BY age;
  • HAVING: グループ化したデータに対して条件を適用する SELECT age, COUNT(*) FROM consumer GROUP BY age HAVING COUNT(*) > 1;

データベースの設計と管理

  • 正規化: データの一貫性を保つためにデータベースを構造化するプロセス
  • テーブル作成: 新しいテーブルを定義する CREATE TABLE consumer ( id INT PRIMARY KEY, name VARCHAR(100), age INT );
  • テーブルの変更: 既存のテーブルに列を追加したり、削除したりする ALTER TABLE consumer ADD COLUMN email VARCHAR(100); ALTER TABLE consumer DROP COLUMN email;
  • 制約の追加: データの整合性を確保するための制約を設定する ALTER TABLE consumer ADD CONSTRAINT chk_age CHECK (age >= 18);

SQLの実行順序

SQLクエリの実行順序は、以下のように進行します:

  1. FROM: テーブルを選択
  2. WHERE: 行をフィルタリング
  3. GROUP BY: 行をグループ化
  4. HAVING: グループをフィルタリング
  5. SELECT: 列を選択
  6. ORDER BY: 結果を並べ替え
  7. LIMIT: 結果の行数を制限

まとめ

SQLは、リレーショナルデータベースを操作するための強力なツールです。基本的なクエリから始めて、高度なクエリやデータベースの設計と管理まで幅広く学ぶことで、データベースの効率的な利用が可能になります。