SELECT ... INTO OUTFILE
を使用して、クエリ結果を.CSVファイルに保存できます。 ステートメント。
ファイルの名前/場所、およびフィールドターミネータ、ラインターミネータなどの他のオプションを指定します。
これが基本的な例です。
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
これにより、 Customers からすべての列が選択されます テーブルを作成し、それらを customers.csv という.CSVファイルに配置します / tmp 内 ディレクトリ。
オプションの追加機能
FIELDS TERMINATED
を使用して、フィールドと行の終了方法を指定できます およびLINES TERMINATED
条項。
ENCLOSED BY
を使用して、各値を囲む文字を指定することもできます。 条項。
また、FIELDS ESCAPED BY
を使用できます 特殊文字の書き方を制御する句。
もう一度クエリを実行します。今回は、これらの追加の句のいくつかを使用します。
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
ヘッダーの追加
前の例では、クエリの結果を含む.CSVファイルが生成されますが、列名は生成されません。これは、.CSVファイルの最初の行にヘッダーがないことを意味します。
列名を含めるには(.CSVファイルの最初の行にヘッダーが含まれるようにするため)、別のSELECT
に列名をハードコーディングできます。 ステートメント。UNION ALL
によってクエリの残りの部分の前に追加されます オペレーター。
別の(少し複雑な)クエリの例を次に示します。この例では、列ヘッダーを.CSVファイルに追加します。
/* Add column headers */ SELECT 'OrderId','CustomerID','EmployeeID','OrderDate','RequiredDate','ShippedDate','ShipVia','Freight','ShipName','ShipAddress','ShipCity','ShipRegion','ShipPostalCode','ShipCountry','OrderID','ProductId','UnitPrice','Quantity','Discount' UNION ALL /* Now the actual query */ SELECT o.OrderId, o.CustomerID, o.EmployeeID, o.OrderDate, o.RequiredDate, o.ShippedDate, o.ShipVia, o.Freight, o.ShipName, o.ShipAddress, o.ShipCity, o.ShipRegion, o.ShipPostalCode, o.ShipCountry, od.OrderID, od.ProductId, od.UnitPrice, od.Quantity, od.Discount FROM `Orders` o LEFT JOIN `Order Details` od ON od.OrderID = o.OrderID /* Save the query results to a file */ INTO OUTFILE '/tmp/orders.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
MySQLWorkbenchGUIの使用
MySQL Workbench GUIを使用して、クエリの結果をエクスポートすることもできます。