0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQLの基本操作と応用機能を解説:リレーショナルデータベースの効率的な管理方法

Last updated at Posted at 2024-10-14

はじめに

SQL(Structured Query Language)は、リレーショナルデータベースに対してデータの操作や管理を行うための言語です。

CRUDは、データベースにおける基本的な操作の頭文字を取ったもので、データの作成(Create)、読み取り(Read)、更新(Update)、削除(Delete)の4つの操作を指します。

これらの操作を理解することで、データベースの管理や利用がより効果的に行えるようになります。

知識整理

以下の内容を前提に、サンプルのusersテーブルを使用します。

このテーブルは、ユーザー情報を管理するためのもので、以下のカラムを持つと仮定します。
・id (INT, PRIMARY KEY, AUTO_INCREMENT)
・username (VARCHAR)
・email (VARCHAR)
・password (VARCHAR)

SQLの特徴

SQLはリレーショナルデータベースを操作するための標準言語であり、データを表形式(テーブル)で保存し、JOIN機能を使って複数のテーブルのデータを結合・抽出できます。

また、トランザクション管理を行うことで、データの一貫性と正確さを確保し、操作をまとめて実行しつつ、問題が発生した際には元に戻すことが可能です。

SQLは国際標準化機構(ISO)により標準化されていますが、RDBMSごとに拡張機能や違いがあります。

SQLコマンド集

1. Create(作成)

新しいレコードをテーブルに追加するには、INSERT文を使用します。

-- 新しいユーザーを追加
INSERT INTO users (username, email, password) 
VALUES ('alice', 'alice@example.com', 'securepassword123');

2. Read(読み取り)

テーブルからデータを取得するには、SELECT文を使用します。

-- 全てのユーザーを取得
SELECT * FROM users;

-- 特定のユーザーを取得(例えば、usernameが'alice'のユーザー)
SELECT * FROM users WHERE username = 'alice';

-- 特定のカラムのみ取得(例えば、usernameとemail)
SELECT username, email FROM users;

3. Update(更新)

既存のレコードを更新するには、UPDATE文を使用します。

-- usernameが'alice'のメールアドレスを更新
UPDATE users 
SET email = 'alice_new@example.com' 
WHERE username = 'alice';

4. Delete(削除)

レコードを削除するには、DELETE文を使用します。

-- usernameが'alice'というユーザーを削除
DELETE FROM users 
WHERE username = 'alice';

5. トランザクションの使用

複数の操作をまとめて行う場合、トランザクションを使用して、操作を一括管理できます。

-- トランザクションの開始
START TRANSACTION;

-- ユーザーの追加
INSERT INTO users (username, email, password) 
VALUES ('bob', 'bob@example.com', 'bobpassword123');

-- ユーザーのメールアドレスを更新
UPDATE users 
SET email = 'bob_new@example.com' 
WHERE username = 'bob';

-- 変更を確定
COMMIT;

-- エラーがあった場合、ロールバック
ROLLBACK;

6. 条件付き操作

条件に基づいてデータを操作する場合、WHERE句を使用します。

-- 特定のメールアドレスを持つユーザーを取得
SELECT * FROM users 
WHERE email = 'john@example.com';

-- usernameに特定の文字列を含むユーザーを取得
SELECT * FROM users 
WHERE username LIKE '%doe%';

7. ソートと制限

結果セットをソートしたり、取得するレコード数を制限することも可能です。

-- ユーザーをidでソートし、上位5件を取得
SELECT * FROM users 
ORDER BY id ASC 
LIMIT 5;

8. グルーピングと集計

データをグループ化し、集計関数を使うこともできます。

-- ユーザーの数をカウント
SELECT COUNT(*) AS user_count FROM users;

-- ユーザーのメールアドレスにドメインごとのカウント
SELECT SUBSTRING_INDEX(email, '@', -1) AS domain, COUNT(*) AS user_count 
FROM users 
GROUP BY domain;

9. テーブルの作成と削除

テーブルを作成したり削除する方法もあります。

-- usersテーブルの作成
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    password VARCHAR(100) NOT NULL
);

-- usersテーブルの削除
DROP TABLE users;

まとめ

これらの基本的なCRUD操作を理解することで、SQLを使ってデータベースの管理や操作ができるようになります。

実際にデータベースを使用して、これらのコマンドを試してみることをお勧めします。SQLは強力なツールであり、データの操作において非常に役立ちます。

さらに具体的な質問や、他のSQLのトピックについて知りたいことがあれば教えてください!

参考文献

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?