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 [kiso.vn]

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ệnhMô tả
.backup ?DB? FILESao lưu cơ sỡ dữ liệu (mặc định “main”) tới FILE
.bail ON|OFFDừng lại sau khi gặp một lỗi. Mặc định OFF
.databasesLiệ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|OFFBật hoặc tắt lệnh echo
.exitThoát dấu nhắc SQLite
.explain ON|OFFBậ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|OFFBật hoặc tắt hiển thị các tiêu đề (header)
.helpHiển thị tin nhắn này
.import FILE TABLENhậ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|offBậ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 STRINGIn STRING thay cho các giá trị NULL
.output FILENAMEGửi đầu ra (output) tới FILENAME
.output stdoutGửi đầu ra tới màn hình
.print STRING…In chữ
.prompt MAIN CONTINUEThay thế lời nhắc tiêu chuẩn
.quitThoát dấu nhắc SQLite
.read FILENAMEThự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 STRINGThay đổi dấu phân cách (separator) được sử dụng bởi chế độ đầu ra và .import
.showHiển thị các giá trị hiện tại cho các cài đặt khác nhau
.stats ON|OFFBậ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 MSCố 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|OFFBậ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.

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0
2Allen25Texas15000.0
3Teddy23Norway20000.0
4Mark25Rich-Mond65000.0
5David27Texas85000.0
6Kim22South-Hall45000.0
7James24Houston10000.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
);

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *