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”

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

$> mysqldump --tab=/tmp db1

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

  • Quy trình của máy chủ MySQL có quyền ghi vào thư mục đích chứa tệp CSV đích
  • Tệp CSV đích không được tồn tại

Truy vấn sau đây chọn các đơn đặt hàng đã hủy từ bảng 

$> mysqldump --tab=/tmp db1
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 

$> mysqldump --tab=/tmp db1
2 trong thư mục 
$> mysqldump --tab=/tmp db1
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 đề

$> mysqldump --tab=/tmp db1
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 đề

$> mysqldump --tab=/tmp db1
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ường

Xuất dữ liệu sang tệp CSV có tên tệp chứa dấu thời gian

Bạ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

  • Đầu tiên, chúng tôi đã tạo một truy vấn với dấu thời gian hiện tại như một phần của tên tệp
  • Thứ hai, chúng tôi đã chuẩn bị câu lệnh để thực thi bằng cách sử dụng câu lệnh
    --fields-enclosed-by='"'
    
    70 câu lệnh
    --fields-enclosed-by='"'
    
    71
  • Thứ ba, chúng tôi đã thực hiện câu lệnh bằng cách sử dụng lệnh
    --fields-enclosed-by='"'
    
    72

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ột

Sẽ 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ị NULL

Trong 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 Workbench

Trong 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

  • Đầu tiên, thực hiện một truy vấn lấy tập kết quả của nó
  • Thứ hai, từ bảng kết quả, nhấp vào “xuất bản ghi sang tệp bên ngoài”. Tập kết quả còn được gọi là tập bản ghi
  • Thứ ba, một hộp thoại mới hiển thị. Nó hỏi bạn tên tệp và định dạng tệp. Nhập tên tệp, chọn CSV làm định dạng tệp và nhấp vào nút Lưu
MySQL DÒNG CHẤM DỨT BẰNG trở lại vận chuyển
MySQL DÒNG CHẤM DỨT BẰNG trở lại vận chuyển

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