Lệnh trong SQLite



Chương này sẽ trình bày các lệnh SQLite hữu ích cho Lập trình viên SQLite. Các lệnh này được gọi là các Dot command trong SQLite. Và bạn nên ghi nhớ là, với các lệnh này, chúng không nên kết thúc với một dấu chấm phảy (;).

Đầu tiên, để bắt đầu, bạn soạn một lệnh sqlite3 đơn giản tại dòng nhắc lệnh. Lệnh này sẽ cung cấp cho bạn một dòng nhắc lệnh SQLite, từ nơi này bạn có thể thông báo 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 trong SQLite, bạn chỉ cần nhập ".help" tại bất cứ lúc nào. Ví dụ:

sqlite>.help

Lệnh trên sẽ hiển thị một danh sách các lệnh Dot Command quan trọng trong SQLite, bao gồm:

LệnhMiêu tả
.backup ?DB? FILESao lưu cơ sở dữ liệu (mặc định là "main") tới FILE
.bail ON|OFFDừng lại sau khi gặp một lỗi. Mặc định là OFF
.databasesLiệt kê tên và các file của Attached Databases
.dump ?TABLE?Chuyển Database thành một định dạng SQL text. Nếu TABLE được xác định thì chỉ chuyển các bảng mà so khớp với LIKE pattern TABLE.
.echo ON|OFFBật/tắt lệnh echo
.exitThoát khỏi SQLite prompt
.explain ON|OFFBật chế độ output mode phù hợp với EXPLAIN on hoặc off. Nếu không có tham số nào, nó sẽ là EXPLAIN on
.header(s) ON|OFFBật/tắt sự hiển thị của các header
.helpHiển thị thông báo 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ả chỉ mục. Nếu TABLE được xác định, chỉ hiển thị các chỉ mục cho các bảng mà so khớp với LIKE pattern TABLE
.load FILE ?ENTRY?Tải một Extension library
.log FILE|offBật/tắt chế độ log vào file. FILE có thể là stderr/stdout
.mode MODEThiết lập output mode, với MODE là một trong các tùy chọn:
  • csv: Các giá trị phân biệt nhau bởi dấu phảy

  • column: Các cột căn chỉnh trái

  • html: HTML code

  • insert: Lệnh SQL insert cho TABLE

  • line: Một giá trị mỗi dòng

  • list: Một giá trị mỗi dòng

  • tabs: Các giá trị phân biệt nhau bởi tab

  • tcl: Các phần tử liệt kê TCL

  • .nullvalue STRINGIn STRING thay cho các giá trị NULL
    .output FILENAMEGửi output tới FILENAME
    .output stdoutGửi output tới màn hình
    .print STRING...In hằng chuỗi
    .prompt MAIN CONTINUEThay thế dòng nhắc lệnh chuẩn
    .quitThay thế dòng nhắc lệnh chuẩn
    .read FILENAMEThực thi SQL trong FILENAME
    .schema ?TABLE?Hiển thị các lệnh CREATE. Nếu TABLE được xác định, chỉ hiển thị các bảng mà so khớp với LIKE pattern TABLE
    .separator STRINGThay đổi separator được sử dụng bởi output mode và .import
    .showHiển thị các giá trị hiện tại cho các thiết lập đa dạng
    .stats ON|OFFBật/tắt stats
    .tables ?PATTERN?Liệt kê tên của các bảng mà so khớp với một LIKE pattern
    .timeout MSThử mở các bảng đã khóa cho MS milliseconds
    .width NUM NUMThiết lập độ rộng cột cho "column" mode
    .timer ON|OFF Bật/tắt CPU timer measurement

    Chẳng hạn, bạn thử lệnh .show để xem thiết lập mặc định cho dòng nhắc lệnh SQLite của bạn.

    sqlite>.show
         echo: off
      explain: off
      headers: off
         mode: column
    nullvalue: ""
       output: stdout
    separator: "|"
        width:
    sqlite>
    
    Nhớ rằng không có khoảng trống giữa dòng nhắc sqlite> prompt và Dot Command, nếu không thì lệnh bạn nhập sẽ không làm việc.

    Định dạng output trong SQLite

    Bạn có thể sử dụng dãy lệnh Dot Command sau để định dạng output của bạn theo cách đã được trình bày ở trên, ví dụ:

    sqlite>.header on
    sqlite>.mode column
    sqlite>.timer on
    sqlite>
    

    Thiết lập trên sẽ tạo output trong đị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
    CPU Time: user 0.000000 sys 0.000000
    

    Giới thiệu sqlite_master Table

    Master Table giữ thông tin quan trọng về các bảng trong Database của bạn và nó được gọi là sqlite_master. Bạn thông báo lệnh sau để thấy Schema của nó:

    sqlite>.schema sqlite_master
    

    Lệnh này sẽ cho kết quả:

    CREATE TABLE sqlite_master (
      type text,
      name text,
      tbl_name text,
      rootpage integer,
      sql text
    );
    

    Các bài học SQLite phổ biến khác tại VietJack: