CSV(Comma-Separated Values)ファイルは、データ交換のための広く利用されるフォーマットの一つです。多くの場合、大量のデータを一度にデータベースに挿入する必要があります。この記事では、CSVファイルからSQLデータベースへデータを一括で挿入する手法について解説します。
CSVとは?
CSV(Comma-Separated Values)は、フィールドがカンマで区切られ、レコード(行)が改行で区切られるテキストデータファイルの形式です。Excelでも簡単に扱うことができます。
SQLとは?
SQL(Structured Query Language)は、リレーショナルデータベース管理システム(RDBMS)でデータを操作するためのプログラミング言語です。SELECT、INSERT、UPDATE、DELETEなどのクエリを使用してデータベース内のデータにアクセスします。
CSVからSQLへの一括データ挿入の手法
一般的に、CSVからSQLへのデータ挿入にはいくつかの方法があります。以下、その主な手法と使用場面を詳しく解説します。
手法1: LOAD DATA INFILE(MySQL)
MySQLデータベースにおいては、`LOAD DATA INFILE`コマンドを使用してCSVファイルからデータを一括挿入できます。
LOAD DATA INFILE '/path/to/csv/file.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
オプション | 説明 |
---|---|
LOAD DATA INFILE | 一括挿入を開始するコマンド |
FIELDS TERMINATED BY | フィールドの区切り文字 |
LINES TERMINATED BY | レコード(行)の区切り文字 |
手法2: BULK INSERT(SQL Server)
SQL Serverでは、`BULK INSERT`コマンドを使用してCSVからデータを一括挿入できます。
BULK INSERT table_name
FROM '/path/to/csv/file.csv'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
オプション | 説明 |
---|---|
BULK INSERT | 一括挿入を開始するコマンド |
FIELDTERMINATOR | フィールドの区切り文字 |
ROWTERMINATOR | レコード(行)の区切り文字 |
まとめ
CSVファイルからSQLデータベースへのデータ一括挿入は、データ交換やマイグレーション作業において非常に便利です。MySQLの`LOAD DATA INFILE`やSQL Serverの`BULK INSERT`など、データベースによっては専用のコマンドが用意されている場合もあります。これらのコマンドを理解して使いこなすことで、大量のデータを効率よくデータベースに挿入することができます。
コメント