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ọn | Mô tả | Ví dụ đầu ra |
|---|---|---|
-t / --table | Bảng ASCII (mặc định interactive) | Có đường viền, căn chỉnh cột |
--batch / -B | Tab-separated (TSV), không đường viền | Col1\tCol2\tCol3\n... |
--html / -H | Đầu ra HTML table | <table>...</table> |
--xml / -X | Đầu ra XML | <resultset>...</resultset> |
--vertical / -E | Hiể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
-pkhông giá trị (sẽ prompt), hoặc file~/.my.cnfvới section[client]. - Kết quả
-ein rastdout; lỗi in rastderr— có thể redirect riêng. - Để tự động hóa, cân nhắc dùng
mysqldumpcho backup, hoặc connector thư viện (Python, Node.js, Java) thay vì parse output text.