Tôi có một trang tính excel lớn mà tôi muốn thêm vào cơ sở dữ liệu của mình.
Tôi có thể tạo tập lệnh chèn SQL từ trang tính excel này không?
Tôi có một trang tính excel lớn mà tôi muốn thêm vào cơ sở dữ liệu của mình.
Tôi có thể tạo tập lệnh chèn SQL từ trang tính excel này không?
Câu trả lời:
Tôi nghĩ rằng nhập bằng một trong các phương pháp được đề cập là lý tưởng nếu nó thực sự là một tệp lớn, nhưng bạn có thể sử dụng Excel để tạo các câu lệnh chèn:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
Trong MS SQL, bạn có thể sử dụng:
SET NOCOUNT ON
Bỏ qua việc hiển thị tất cả các nhận xét '1 hàng bị ảnh hưởng'. Và nếu bạn đang làm nhiều hàng và lỗi, hãy đặt GO giữa các câu lệnh thỉnh thoảng
=CONCATENATE()
nhưng sử dụng &
dấu hiệu dẫn đến khả năng đọc tốt hơn nhiều!
&
khi tôi gặp phải giới hạn tham số CONCATENATE()
một thời gian trước đây, đó không phải là vấn đề phổ biến hiện nay khi giới hạn là 255 tham số, nhưng tôi không bao giờ nghĩ đến việc hoàn nguyên.
Có một công cụ tiện dụng giúp tiết kiệm rất nhiều thời gian tại
http://tools.perceptus.ca/text-wiz.php?ops=7
Bạn chỉ cần nhập tên bảng, tên trường và tab dữ liệu và nhấn Go!
Bạn có thể tạo một bảng thích hợp thông qua giao diện phòng thu quản lý và chèn dữ liệu vào bảng như hình bên dưới. Có thể mất một khoảng thời gian tùy thuộc vào lượng dữ liệu, nhưng nó rất tiện dụng.
Bạn có thể sử dụng câu lệnh excel sau:
="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2, "'", "\'")&"','"&SUBSTITUTE(B2, "'", "\'")&"','"&SUBSTITUTE(C2, "'", "\'")&"', "&D2&");"
Câu trả lời này tốt hơn câu trả lời của Hart CO vì nó tính đến tên cột và loại bỏ lỗi biên dịch do dấu ngoặc kép trong cột. Cột cuối cùng là một ví dụ về cột giá trị số, không có dấu ngoặc kép.
Tùy thuộc vào cơ sở dữ liệu, bạn có thể xuất sang CSV và sau đó sử dụng phương pháp nhập.
MySQL - http://dev.mysql.com/doc/refman/5.1/en/load-data.html
PostgreSQL - http://www.postgresql.org/docs/8.2/static/sql-copy.html
Đây là một công cụ khác hoạt động rất tốt ...
http://www.convertcsv.com/csv-to-sql.htm
Nó có thể nhận các giá trị được phân tách bằng tab và tạo một tập lệnh INSERT. Chỉ cần sao chép và dán và trong các tùy chọn ở bước 2, hãy chọn hộp "Hàng đầu tiên là tên cột"
Sau đó cuộn xuống dưới bước 3, nhập tên bảng của bạn vào hộp "Schema.Table hoặc View Name:"
Hãy chú ý đến hộp kiểm xóa và tạo bảng cũng như đảm bảo rằng bạn đã kiểm tra tập lệnh đã tạo trước khi chạy nó.
Đây là cách nhanh nhất và đáng tin cậy nhất mà tôi đã tìm thấy.
Sử dụng ConvertFrom-ExcelToSQLInsert
từ ImportExcel trong Thư viện PowerShell
NAME
ConvertFrom-ExcelToSQLInsert
SYNTAX
ConvertFrom-ExcelToSQLInsert [-TableName] <Object> [-Path] <Object>
[[-WorkSheetname] <Object>] [[-HeaderRow] <int>]
[[-Header] <string[]>] [-NoHeader] [-DataOnly] [<CommonParameters>]
PARAMETERS
-DataOnly
-Header <string[]>
-HeaderRow <int>
-NoHeader
-Path <Object>
-TableName <Object>
-WorkSheetname <Object>
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
ALIASES
None
REMARKS
None
Đây là một liên kết đến một trình tự động trực tuyến để chuyển đổi tệp CSV sang câu lệnh Chèn vào SQL:
Truy vấn này tôi đã tạo để chèn dữ liệu tệp Excel vào cơ sở dữ liệu Trong id này và giá cũng là giá trị số và trường ngày. Truy vấn này tóm tắt tất cả các loại mà tôi yêu cầu. Nó cũng có thể hữu ích cho bạn
="insert into product (product_id,name,date,price) values("&A1&",'" &B1& "','" &C1& "'," &D1& ");"
Id Name Date price
7 Product 7 2017-01-05 15:28:37 200
8 Product 8 2017-01-05 15:28:37 40
9 Product 9 2017-01-05 15:32:31 500
10 Product 10 2017-01-05 15:32:31 30
11 Product 11 2017-01-05 15:32:31 99
12 Product 12 2017-01-05 15:32:31 25
Bạn có thể sử dụng Phương pháp C # dưới đây để tạo tập lệnh chèn bằng trang tính Excel chỉ cần bạn nhập Gói OfficeOpenXml từ Trình quản lý gói NuGet trước khi thực thi phương pháp.
public string GenerateSQLInsertScripts() {
var outputQuery = new StringBuilder();
var tableName = "Your Table Name";
if (file != null)
{
var filePath = @"D:\FileName.xsls";
using (OfficeOpenXml.ExcelPackage xlPackage = new OfficeOpenXml.ExcelPackage(new FileInfo(filePath)))
{
var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select the first sheet here
var totalRows = myWorksheet.Dimension.End.Row;
var totalColumns = myWorksheet.Dimension.End.Column;
var columns = new StringBuilder(); //this is your columns
var columnRows = myWorksheet.Cells[1, 1, 1, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());
columns.Append("INSERT INTO["+ tableName +"] (");
foreach (var colrow in columnRows)
{
columns.Append("[");
columns.Append(colrow);
columns.Append("]");
columns.Append(",");
}
columns.Length--;
columns.Append(") VALUES (");
for (int rowNum = 2; rowNum <= totalRows; rowNum++) //selet starting row here
{
var dataRows = myWorksheet.Cells[rowNum, 1, rowNum, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());
var finalQuery = new StringBuilder();
finalQuery.Append(columns);
foreach (var dataRow in dataRows)
{
finalQuery.Append("'");
finalQuery.Append(dataRow);
finalQuery.Append("'");
finalQuery.Append(",");
}
finalQuery.Length--;
finalQuery.Append(");");
outputQuery.Append(finalQuery);
}
}
}
return outputQuery.ToString();}
Tôi đã phải tạo các tập lệnh SQL thường xuyên và thêm chúng vào kiểm soát nguồn và gửi chúng tới DBA. Tôi đã sử dụng Ứng dụng ExcelIntoSQL này từ cửa hàng windows https://www.microsoft.com/store/apps/9NH0W51XXQRM Nó tạo tập lệnh hoàn chỉnh với "CREATE TABLE" và INSERTS.
Tôi có một cách đáng tin cậy để tạo các đoạn chèn SQL và bạn có thể sửa đổi từng phần các tham số trong quá trình xử lý. Nó giúp tôi rất nhiều trong công việc, ví dụ: sao chép hàng trăm dữ liệu vào cơ sở dữ liệu có cấu trúc và số trường không tương thích. IntellIJ DataGrip , công cụ mạnh mẽ mà tôi sử dụng. DG có thể nhận dữ liệu từ văn phòng WPS hoặc MS Excel theo cột hoặc dòng. sau khi sao chép, DG có thể xuất dữ liệu dưới dạng chèn SQL .
insert
&update
ngay tại đây ☺