Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

In kết quả SELECT có định dạng bảng tại dòng lệnh MySQL

Khi chạy MySQL từ dòng lệnh (terminal / command prompt), mặc định kết quả SELECT hiển thị dạng bảng ASCII có đường viền. Tuy nhiên, khi chạy qua script hoặc pipe, định dạng có thể thay đổi. Tham số -t (table) và -e (execute) giúp kiểm soát định dạng đầu ra.

Cú pháp

mysql -u root -t -e "SELECT * FROM your_table" -p
  • -u root: Đăng nhập user root.
  • -t / --table: Buộc hiển thị dạng bảng (ASCII table) — mặc định khi interactive.
  • -e "query" / --execute: Thực thi câu lệnh SQL ngay từ dòng lệnh, không vào shell interactive.
  • -p / --password: Yêu cầu nhập mật khẩu (an toàn hơn ghi mật khẩu trong lệnh).

Ví dụ thực hành

1. Mở Command Prompt (Windows) / Terminal (Linux/macOS).

2. Di chuyển đến thư mục bin của MySQL (nếu chưa có trong PATH):

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

3. Chạy lệnh in bảng:

mysql -u root -t -e "SELECT * FROM DemoTable1456" -p

Kết quả mẫu (dạng bảng ASCII):

+--------------+----------------+--------------+
| CustomerName | StartOfferDate | EndOfferDate |
+--------------+----------------+--------------+
| Chris        | 2019-09-01     | 2019-09-30   |
| David        | 2019-09-01     | 2019-10-30   |
| Bob          | 2018-10-01     | 2018-10-20   |
+--------------+----------------+--------------+

Các tùy chọn định dạng đầu ra khác

Tùy chọnMô tảVí dụ đầu ra
-t / --tableBảng ASCII (mặc định interactive)Có đường viền, căn chỉnh cột
--batch / -BTab-separated (TSV), không đường viềnCol1\tCol2\tCol3\n...
--html / -HĐầu ra HTML table<table>...</table>
--xml / -XĐầu ra XML<resultset>...</resultset>
--vertical / -EHiển thị dọc (mỗi cột một dòng)Row 1: col=val\n col2=val2
--silent / -sÍt output hơn (bỏ header, footer)Chỉ dữ liệu

Ví dụ xuất ra file

 users.tsv

-- Xuất HTML
mysql -u root -H -e "SELECT * FROM Users" -p > users.html

-- Xuất XML
mysql -u root -X -e "SELECT * FROM Users" -p > users.xml

-- Xuất vertical (dễ đọc cột rộng)
mysql -u root -E -e "SELECT * FROM Users WHERE Id = 1" -p

Lưu ý

  • Trên Linux/macOS, tránh ghi mật khẩu trong lịch sử shell: dùng -p không giá trị (sẽ prompt), hoặc file ~/.my.cnf với section [client].
  • Kết quả -e in ra stdout; lỗi in ra stderr — có thể redirect riêng.
  • Để tự động hóa, cân nhắc dùng mysqldump cho backup, hoặc connector thư viện (Python, Node.js, Java) thay vì parse output text.