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ụ:

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
);

-------------------#####-------------------

Loạt bài SQLite được biên dịch từ TutorialsPoint.

Khóa học nên xem

Nguồn: freetuts.net