MySQL DÒNG CHẤM DỨT BẰNG trở lại vận chuyển
Phần này mô tả cách sử dụng mysqldump để tạo tệp kết xuất văn bản được phân tách. Để biết thông tin về cách tải lại các tệp kết xuất như vậy, hãy xem Phần 7. 4. 4, “Tải lại các bản sao lưu định dạng văn bản được phân tách” Show
Nếu bạn gọi tùy chọn mysqldump, nó sẽ sử dụng --fields-enclosed-by='"'4 làm thư mục đầu ra và kết xuất các bảng riêng lẻ trong thư mục đó bằng cách sử dụng hai tệp cho mỗi bảng. Tên bảng là tên cơ sở cho các tệp này. Đối với bảng có tên là --fields-enclosed-by='"'5, các tệp có tên là --fields-enclosed-by='"'6 và --fields-enclosed-by='"'7. Tệp --fields-enclosed-by='"'8 chứa câu lệnh --fields-enclosed-by='"'0 cho bảng. Tệp --fields-enclosed-by='"'1 chứa dữ liệu bảng, một dòng trên mỗi hàng của bảng Lệnh sau kết xuất nội dung của cơ sở dữ liệu --fields-enclosed-by='"'2 vào các tệp trong cơ sở dữ liệu --fields-enclosed-by='"'3 $> Các tệp --fields-enclosed-by='"'1 chứa dữ liệu bảng được ghi bởi máy chủ, vì vậy chúng được sở hữu bởi tài khoản hệ thống được sử dụng để chạy máy chủ. Máy chủ sử dụng --fields-enclosed-by='"'5 để ghi tệp, vì vậy bạn phải có đặc quyền để thực hiện thao tác này và sẽ xảy ra lỗi nếu tệp --fields-enclosed-by='"'1 đã cho đã tồn tại Máy chủ gửi các định nghĩa --fields-enclosed-by='"'8 cho các bảng đã kết xuất tới mysqldump, nơi ghi chúng vào các tệp --fields-enclosed-by='"'8. Do đó, những tệp này thuộc sở hữu của người dùng thực thi mysqldump Tốt nhất là chỉ được sử dụng để kết xuất máy chủ cục bộ. Nếu bạn sử dụng nó với một máy chủ từ xa, thư mục phải tồn tại trên cả máy chủ cục bộ và máy chủ từ xa, và các tệp --fields-enclosed-by='"'1 được máy chủ ghi trong thư mục từ xa (trên máy chủ lưu trữ), trong khi các tệp --fields-enclosed-by='"'8 được ghi bởi mysqldump trong Đối với mysqldump --tab, theo mặc định, máy chủ ghi dữ liệu bảng vào các tệp --fields-enclosed-by='"'1 một dòng trên mỗi hàng với các tab nằm giữa các giá trị cột, không có dấu ngoặc kép xung quanh các giá trị cột và dòng mới làm dấu kết thúc dòng. (Đây là những giá trị mặc định giống như đối với --fields-enclosed-by='"'5. ) Để cho phép các tệp dữ liệu được ghi bằng định dạng khác, mysqldump hỗ trợ các tùy chọn này Tùy thuộc vào giá trị bạn chỉ định cho bất kỳ tùy chọn nào trong số này, dòng lệnh có thể cần trích dẫn hoặc thoát giá trị thích hợp cho trình thông dịch lệnh của bạn. Ngoài ra, chỉ định giá trị bằng cách sử dụng ký hiệu hex. Giả sử rằng bạn muốn mysqldump trích dẫn các giá trị cột trong dấu ngoặc kép. Để làm như vậy, hãy chỉ định trích dẫn kép làm giá trị cho tùy chọn. Nhưng nhân vật này thường đặc biệt đối với phiên dịch viên chỉ huy và phải được đối xử đặc biệt. Ví dụ: trên Unix, bạn có thể trích dẫn kép như thế này --fields-enclosed-by='"' Trên bất kỳ nền tảng nào, bạn có thể chỉ định giá trị ở dạng hex --fields-enclosed-by='"'3 Người ta thường sử dụng nhiều tùy chọn định dạng dữ liệu cùng nhau. Ví dụ: để kết xuất bảng ở định dạng giá trị được phân tách bằng dấu phẩy với các dòng được kết thúc bằng cặp xuống dòng/dòng mới ( --fields-enclosed-by='"'37), hãy sử dụng lệnh này (nhập lệnh trên một dòng) --fields-enclosed-by='"'5 Nếu bạn sử dụng bất kỳ tùy chọn định dạng dữ liệu nào để kết xuất dữ liệu bảng, bạn phải chỉ định định dạng tương tự khi bạn tải lại tệp dữ liệu sau này, để đảm bảo diễn giải đúng nội dung tệp Tóm lược. trong hướng dẫn này, bạn sẽ học các kỹ thuật khác nhau về cách xuất bảng MySQL sang tệp CSV CSV là viết tắt của các giá trị được phân tách bằng dấu phẩy. Bạn thường sử dụng định dạng tệp CSV để trao đổi dữ liệu giữa các ứng dụng như Microsoft Excel, Open Office, Google Docs, v.v. Sẽ rất hữu ích khi có dữ liệu từ cơ sở dữ liệu MySQL ở định dạng tệp CSV vì bạn có thể phân tích và định dạng dữ liệu theo cách bạn muốn MySQL cung cấp một cách dễ dàng để xuất kết quả của truy vấn thành tệp CSV nằm trong máy chủ cơ sở dữ liệu Trước khi xuất dữ liệu, bạn phải đảm bảo rằng
Truy vấn sau đây chọn các đơn đặt hàng đã hủy từ bảng $> 1--fields-enclosed-by='"'6 Để xuất tập kết quả này thành tệp CSV, bạn thêm một số mệnh đề vào truy vấn trên như sau --fields-enclosed-by='"'7 Câu lệnh đã tạo một tệp CSV có tên $> 2 trong thư mục $> 3 chứa tập hợp kết quảTệp CSV chứa các dòng hàng trong tập hợp kết quả. Mỗi dòng được kết thúc bằng một chuỗi ký tự xuống dòng và ký tự xuống dòng được chỉ định bởi mệnh đề $> 4. Mỗi dòng chứa các giá trị của từng cột của hàng trong tập kết quảMỗi giá trị được đặt trong dấu ngoặc kép được biểu thị bởi mệnh đề $> 5. Điều này ngăn giá trị có thể chứa dấu phẩy (,) sẽ được hiểu là dấu tách trường. Khi đặt các giá trị bằng dấu ngoặc kép, dấu phẩy bên trong giá trị không được nhận dạng là dấu tách trườngXuất dữ liệu sang tệp CSV có tên tệp chứa dấu thời gianBạn thường cần xuất dữ liệu thành tệp CSV có tên chứa dấu thời gian mà tại đó tệp được tạo. Để làm như vậy, bạn cần sử dụng câu lệnh chuẩn bị sẵn của MySQL Các lệnh sau xuất toàn bộ bảng đơn đặt hàng thành tệp CSV với dấu thời gian là một phần của tên tệp --fields-enclosed-by='"'8 Hãy xem xét các lệnh trên chi tiết hơn
Bạn có thể gói lệnh theo sự kiện và lên lịch chạy sự kiện định kỳ nếu cần Xuất dữ liệu với tiêu đề cộtSẽ thuận tiện nếu tệp CSV chứa dòng đầu tiên làm tiêu đề cột để tệp dễ hiểu hơn Để thêm tiêu đề cột, bạn cần sử dụng câu lệnh UNION như sau --fields-enclosed-by='"'2 Như truy vấn đã hiển thị, bạn cần bao gồm tiêu đề cột của mỗi cột Xử lý giá trị NULLTrong trường hợp các giá trị trong tập hợp kết quả chứa giá trị NULL, thì tệp đích sẽ chứa --fields-enclosed-by='"'73 thay vì --fields-enclosed-by='"'74. Để khắc phục sự cố này, bạn cần thay thế giá trị --fields-enclosed-by='"'74 bằng giá trị khác e. g. , không áp dụng ( --fields-enclosed-by='"'76 ) bằng cách sử dụng hàm IFNULL như truy vấn sau --fields-enclosed-by='"'7 Chúng tôi đã thay thế giá trị --fields-enclosed-by='"'74 trong cột --fields-enclosed-by='"'78 bằng chuỗi --fields-enclosed-by='"'76. Tệp CSV hiển thị giá trị --fields-enclosed-by='"'76 thay vì --fields-enclosed-by='"'74 Xuất dữ liệu sang tệp CSV bằng MySQL WorkbenchTrong trường hợp bạn không có quyền truy cập vào máy chủ cơ sở dữ liệu để lấy tệp CSV đã xuất, bạn có thể sử dụng MySQL Workbench để xuất tập kết quả của truy vấn sang tệp CSV trong máy tính cục bộ của mình như sau
Tệp CSV được xuất bởi MySQL Workbench hỗ trợ tiêu đề cột, giá trị --fields-enclosed-by='"'74 và các tính năng tuyệt vời khác Các trường bị chấm dứt bởi MySQL là gì?'FIELDS TERMINATED BY' nên được sử dụng khi tệp văn bản mà chúng ta muốn nhập vào bảng MySQL có các giá trị được phân tách bằng dấu phẩy (,) hoặc có thể . ), dấu chấm phẩy (;) v.v.
Làm cách nào để bật dữ liệu tải trong MySQL?Đối với máy khách mysql, khả năng tải dữ liệu cục bộ được xác định theo mặc định được biên dịch vào thư viện máy khách MySQL. Để tắt hoặc bật nó một cách rõ ràng, hãy sử dụng tùy chọn --local-infile=0 hoặc --local-infile[=1] .
Làm cách nào để nhập tệp CSV trong MySQL?Sau đây là các bước mà bạn muốn nhập dữ liệu vào bảng. Mở bảng mà dữ liệu được tải vào. Xem lại dữ liệu, nhấp vào nút Áp dụng. MySQL workbench sẽ hiển thị hộp thoại “Apply SQL Script to Database”, nhấn nút Apply để chèn dữ liệu vào bảng
Làm cách nào để nhập dữ liệu hàng loạt trong MySQL?Cú pháp chèn dữ liệu hàng loạt vào MySQL . Nhập mệnh đề INSERT INTO và tên bảng mà bạn muốn chèn dữ liệu vào Sử dụng mệnh đề GIÁ TRỊ và sau đó ghi dữ liệu của hàng đầu tiên vào trong ngoặc, đóng ngoặc và sau dấu phẩy |