インポートしたデータを検証する
このステップでは、MySQL テーブルにインポートされたデータを検証する方法を学びます。データ検証は、データの正確性と整合性を保証するための重要なステップです。SQL クエリを使用した基本的な検証手法について説明します。
まず、employees
テーブルに潜在的な問題のあるデータを追加しましょう。ターミナルを開き、nano
を使用してファイルを作成します。
nano ~/project/employees_validation.csv
次に、以下のデータを employees_validation.csv
ファイルに貼り付けます。最後の行には無効なメールアドレス形式と部署情報の欠落があることに注意してください。
3,Invalid,Email,invalid_email,Sales
4,Missing,Department,[email protected],
Ctrl+X
を押し、次に Y
を押し、最後に Enter
を押してファイルを保存します。
では、このデータを employees
テーブルにインポートしましょう。MySQL サーバーに接続します。
mysql -u root -p
パスワードの入力を求められ、パスワードを設定していない場合は、Enter
を押してください。
MySQL シェルで以下の SQL ステートメントを実行します。
USE company;
LOAD DATA INFILE '/home/labex/project/employees_validation.csv'
INTO TABLE employees
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
データをインポートしたので、いくつかの検証チェックを行いましょう。
1. 無効なメールアドレス形式のチェック:
正規表現を使用して、無効なメールアドレス形式をチェックすることができます。以下の SQL クエリを実行します。
SELECT * FROM employees WHERE email NOT LIKE '%@%.%';
このクエリは、email
列に有効なメールアドレスに必須の @
と .
文字が含まれていない行を返します。結果に invalid_email
の行が表示されるはずです。
2. 部署情報の欠落のチェック:
department
列の空文字列の有無を確認することで、部署情報の欠落をチェックすることができます。以下の SQL クエリを実行します。
SELECT * FROM employees WHERE department = '';
このクエリは、department
列が空の行を返します。結果に部署情報が欠落している行が表示されるはずです。
3. 重複する ID のチェック:
この例では重複する ID を導入していませんが、一般的な検証チェックです。以下のクエリを使用して重複する ID を見つけることができます。
SELECT id, COUNT(*) FROM employees GROUP BY id HAVING COUNT(*) > 1;
このクエリは、employees
テーブルに複数回出現する ID を返します。
4. データ型の不一致のチェック:
MySQL は通常、インポートプロセス中にデータ型の不一致を処理しますが、チェックすることも良い考えです。たとえば、正の値のみを含むはずの数値列がある場合、負の値をチェックすることができます。
これらは、SQL クエリを使用してインポートされたデータを検証する方法のいくつかの例です。実行する必要のある具体的な検証チェックは、データの構造と内容によって異なります。
最後に、MySQL シェルを終了します。
exit