Tìm hiểu Dot Commands trong SQLite
Bài này mình sẽ giới thiệu các bạn các lệnh đơn giản và hữu ích được sử dụng bởi các lập trình viên SQLite
. Các lệnh này được gọi là dot commands
trong SQLite
và một đều ngoại lệ với các lệnh này là chúng không nên kết thúc bởi dấu chấm phẩy (;).
1. Giới thiệu dot command trong SQLite
Trước tiên, hãy bắt đầu bằng cách gõ một lệnh sqlite3
đơn giản tại dấu nhắc lệnh, nó sẽ cung cấp cho bạn dấu nhắc lệnh SQLite
, nơi bạn sẽ đưa ra các lệnh SQLite
khác nhau.
$sqlite3 SQLite version 3.3.6 Enter ".help" for instructions sqlite>
Để liệt kê các dot command
có sẵn, bạn có thể nhập ".help
" bất cứ lúc nào.
Ví dụ:
Bài viết này được đăng tại [free tuts .net]
sqlite>.help
Lệnh trên sẽ hiển thị danh sách các dot command
quan trọng trong SQLite
, được liệt kê trong bảng sau:
Lệnh | Mô tả |
.backup ?DB? FILE | Sao lưu cơ sỡ dữ liệu (mặc định "main") tới FILE |
.bail ON|OFF | Dừng lại sau khi gặp một lỗi. Mặc định OFF |
.databases | Liệt kê các tên và các file của cơ sở dữ liệu đính kèm (attached databases). |
.dump ?TABLE? | Kết xuất cơ sở dữ liệu theo định dạng văn bản SQL. Nếu TABLE được chỉ định, chỉ kết xuất các bảng phù hợp với mẫu TABLE. |
.echo ON|OFF | Bật hoặc tắt lệnh echo |
.exit | Thoát dấu nhắc SQLite |
.explain ON|OFF | Bật chế độ đầu ra (output mode) phù hợp với EXPLAIN on hoặc off. Không có đối số, nó sẽ là EXPLAIN on |
.header(s) ON|OFF | Bật hoặc tắt hiển thị các tiêu đề (header) |
.help | Hiển thị tin nhắn này |
.import FILE TABLE | Nhập dữ liệu từ FILE vào TABLE |
.indices ?TABLE? | Hiển thị tên của tất cả các chỉ số. Nếu TABLE được chỉ định, chỉ hiển thị các chỉ mục cho các bảng khớp với mẫu TABLE |
.load FILE ?ENTRY? | Tải thư viện mở rộng (extension library) |
.log FILE|off | Bật hoặc tắt log. FILE có thể là stderr / stdout |
.mode MODE |
Thiết lập chế độ đầu ra (ouput mode), Mode có thể là một trong các tùy chỉnh sau: csv − Các giá trị được phân tách bằng dấu phẩy column − Các cột căn trái. html − HTML <table> code insert − Các câu lệnh SQL insert cho BẢNG line − Một giá trị trên mỗi dòng list − Các giá trị được phân định bởi chuỗi .separator tabs − Các giá trị được phân tách bằng tab tcl − Danh sách các phần tử TCL |
.nullvalue STRING | In STRING thay cho các giá trị NULL |
.output FILENAME | Gửi đầu ra (output) tới FILENAME |
.output stdout | Gửi đầu ra tới màn hình |
.print STRING... | In chữ |
.prompt MAIN CONTINUE | Thay thế lời nhắc tiêu chuẩn |
.quit | Thoát dấu nhắc SQLite |
.read FILENAME | Thực thi SQL trong FILENAME |
.schema ?TABLE? | Hiển thị các câu lệnh CREATE. Nếu TABLE được chỉ định, chỉ hiển thị các bảng khớp với mẫu TABLE. |
.separator STRING | Thay đổi dấu phân cách (separator) được sử dụng bởi chế độ đầu ra và .import |
.show | Hiển thị các giá trị hiện tại cho các cài đặt khác nhau |
.stats ON|OFF | Bật hoặc tắt thống kê (stats) |
.tables ?PATTERN? | Liệt kê tên của các bảng khớp với mẫu (pattern) |
.timeout MS | Cố thử mở các bảng bị khóa trong MS mili giây |
.width NUM NUM | Đặt độ rộng cột cho mode "column" |
.timer ON|OFF | Bật hoặc tắt bộ đếm thời gian CPU |
Hãy thử lệnh .show
để xem cài đặt mặc định cho dấu nhắc lệnh SQLite
của bạn.
sqlite>.show echo: off explain: auto headers: off mode: list nullvalue: "" output: stdout separator: ":" stats:off width: filename: memory: sqlite>
Lưu ý:
- Hãy chắc chắn rằng không có khoảng trắng ở giữa lệnh dấu nhắc lệnh
sqlite>
và dấu chấm (dot), nếu không nó sẽ không hoạt động.
2. Định dạng output trong SQLite
Bạn có thể sử dụng chuỗi lệnh sau để định dạng đầu ra của mình.
sqlite>.header on sqlite>.mode column sqlite>.timer on sqlite>
Cài đặt ở trên sẽ tạo đầu ra theo định dạng sau.
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Paul | 32 | California | 20000.0 |
2 | Allen | 25 | Texas | 15000.0 |
3 | Teddy | 23 | Norway | 20000.0 |
4 | Mark | 25 | Rich-Mond | 65000.0 |
5 | David | 27 | Texas | 85000.0 |
6 | Kim | 22 | South-Hall | 45000.0 |
7 | James | 24 | Houston | 10000.0 |
Thời gian CPU: user 0,000000 sys 0,000000 |
3. Table sqlite_master trong SQLite
master table
chứa thông tin chính về các bảng cơ sở dữ liệu của bạn và nó được gọi là sqlite_master
. Bạn có thể thấy lược đồ của nó như sau:
sqlite>.schema sqlite_master
Kết quả của câu lệnh trên:
CREATE TABLE sqlite_master ( type text, name text, tbl_name text, rootpage integer, sql text );