はじめに
こんにちは、シルです。
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のリセットを学びました。
これらの操作は、大量データを扱う場面や柔軟な検索が求められるシーンで役立ちます。
次回は、ウィンドウ関数を使ったデータ分析について学んでいきましょう。


コメント