IT技術関連SQL

SQL#7 データ検索と削除の拡張

SQL

はじめに

こんにちは、シルです。
SQLの学習にあたり、学んだことメモしておきます。
学習にお役立てください。

参考までに…
SQLコマンド集:基本から応用

前回までの内容です
SQL#1 環境準備と基本操作
SQL#2 テーブルとデータベースの管理
SQL#3 ユーザー管理と権限の設定
SQL#4 サーバーステータスとインデックス管理
SQL#5 データベースのサイズ管理と構造確認
SQL#6 基本的なデータ操作

学習の概要

本記事では、TRUNCATEによる一括削除や、AUTO_INCREMENTのリセット、部分一致検索や正規表現検索を学びます。
データベース内のデータを柔軟に操作するための検索方法や、パフォーマンスに優れた削除方法を実践します。
また、INSTR()やFIND_IN_SET()を活用した文字列検索の高度なテクニックも取り扱います。

含まれる操作

SQL操作は以下の通り

1. TRUNCATE – テーブルのデータを一括削除

2. ALTER TABLE AUTO_INCREMENT – AUTO_INCREMENT のリセット

3. LIKE – 部分一致検索

4. NOT LIKE – パターン除外検索

5. REGEXP – 正規表現によるあいまい検索

6. INSTR() – 部分文字列の位置を検索

7. CONCAT() と LIKE の組み合わせ – 動的パターン検索

8. FIND_IN_SET() – カンマ区切りの文字列検索

実践

1. TRUNCATE – テーブルのデータを一括削除

テーブル「Products」のすべてのデータを一括で削除します。

TRUNCATE TABLE Products;

2. ALTER TABLE AUTO_INCREMENT – AUTO_INCREMENT のリセット

テーブルのAUTO_INCREMENTのカウントをリセットします。

ALTER TABLE Products AUTO_INCREMENT = 1;

3. LIKE – 部分一致検索

商品名に「Phone」を含む商品を検索します。

SELECT * FROM Products
WHERE ProductName LIKE '%Phone%';

4. NOT LIKE – パターン除外検索

商品名に「Phone」を含まない商品を検索します。

SELECT * FROM Products
WHERE ProductName NOT LIKE '%Phone%';

5. REGEXP – 正規表現によるあいまい検索

商品名が「P」または「L」で始まる商品を検索します。

SELECT * FROM Products
WHERE ProductName REGEXP '^[PL]';

6. INSTR() – 部分文字列の位置を検索

商品説明内に「wireless」が含まれるか確認します。

SELECT * FROM Products
WHERE INSTR(ProductDescription, 'wireless') > 0;

7. CONCAT() と LIKE の組み合わせ – 動的パターン検索

商品名の一部を動的に組み合わせて検索します。

SELECT * FROM Products
WHERE ProductName LIKE CONCAT('%', 'Phone', '%');

8. FIND_IN_SET() – カンマ区切りの文字列検索

商品カテゴリーが「Electronics」に含まれる商品を検索します。

SELECT * FROM Products
WHERE FIND_IN_SET('Electronics', ProductCategory) > 0;

テストデータの準備

テーブル「Products」を作成し、サンプルデータを挿入します。
このテーブルを用いて、各SQL操作を実践できる環境を整えます。

CREATE TABLE Products (
    ProductID INT PRIMARY KEY AUTO_INCREMENT,
    ProductName VARCHAR(100),
    ProductDescription TEXT,
    ProductCategory VARCHAR(100),
    Price DECIMAL(10, 2)
);

-- サンプルデータの挿入
INSERT INTO Products (ProductName, ProductDescription, ProductCategory, Price)
VALUES
('Smartphone', 'Latest model smartphone with wireless charging', 'Electronics,Mobile', 699.99),
('Laptop', 'High-performance laptop with backlit keyboard', 'Electronics,Computers', 999.99),
('Headphones', 'Wireless noise-cancelling headphones', 'Electronics,Audio', 199.99),
('Smartwatch', 'Waterproof smartwatch with heart rate monitor', 'Electronics,Wearable', 299.99),
('Phone Case', 'Durable phone case with shock resistance', 'Accessories,Mobile', 29.99);

課題

1. TRUNCATE
 テーブル「Products」のすべてのデータを削除し、AUTO_INCREMENTをリセットしてください。

2. LIKE
 商品名に「Phone」を含む商品を検索してください。

3. REGEXP
 商品名が「S」で始まる商品を検索してください。

4. INSTR()
 商品説明に「wireless」を含む商品を検索してください。

5. FIND_IN_SET()
 商品カテゴリーが「Mobile」に含まれる商品を検索してください。

まとめ

この記事では、SQLの基本操作を拡張し、高度なデータ検索方法や、テーブル全体のデータ削除、AUTO_INCREMENTのリセットを学びました。
これらの操作は、大量データを扱う場面や柔軟な検索が求められるシーンで役立ちます。
次回は、ウィンドウ関数を使ったデータ分析について学んでいきましょう。

コメント

タイトルとURLをコピーしました