Bảng cheat chức năng sql
Mỗi cột của Show
Trong trường hợp các loại dữ liệu hỗn hợp trong một cột, loại dữ liệu đa số xác định loại dữ liệu của cột cho mục đích truy vấn. Các loại dữ liệu thiểu số được coi là giá trị null
ví dụTạo một bản sao Ghi chú. Mỗi ví dụ nằm trong tab riêng của nóDữ liệu mẫu
Chọn & ở đâuTrả về các hàng khớp với điều kiện đã chỉ định bằng cách sử dụng các mệnh đề
Nhóm theoTổng hợp các giá trị
TrụcChuyển đổi các giá trị riêng biệt trong cột thành cột mới
Đặt bởiTổng hợp các giá trị
tiêu đềChỉ định số lượng hàng tiêu đề trong phạm vi đầu vào, cho phép chuyển đổi đầu vào phạm vi hàng nhiều tiêu đề thành đầu vào tiêu đề một hàng Dự án SQLite cung cấp một chương trình dòng lệnh đơn giản có tên là sqlite3 (hoặc sqlite3. exe trên Windows) cho phép người dùng nhập và thực thi thủ công các câu lệnh SQL đối với cơ sở dữ liệu SQLite hoặc đối với một. Tài liệu này giới thiệu ngắn gọn về cách sử dụng chương trình sqlite3 Bắt đầu chương trình sqlite3 bằng cách gõ "sqlite3" tại dấu nhắc lệnh, tùy chọn theo sau là tên của tệp chứa cơ sở dữ liệu SQLite (hoặc ). Nếu tệp được đặt tên không tồn tại, một tệp cơ sở dữ liệu mới với tên đã cho sẽ được tạo tự động. Nếu không có tệp cơ sở dữ liệu nào được chỉ định trên dòng lệnh, cơ sở dữ liệu tạm thời sẽ được tạo và tự động bị xóa khi thoát khỏi chương trình "sqlite3" Khi khởi động, chương trình sqlite3 sẽ hiển thị một thông báo biểu ngữ ngắn gọn sau đó nhắc bạn nhập SQL. Nhập câu lệnh SQL (kết thúc bằng dấu chấm phẩy), nhấn "Enter" và SQL sẽ được thực thi Ví dụ: để tạo cơ sở dữ liệu SQLite mới có tên "ex1" với một bảng có tên "tbl1", bạn có thể thực hiện việc này $ sqlite3 ex1 SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. sqlite> create table tbl1(one text, two int); sqlite> insert into tbl1 values('hello!',10); sqlite> insert into tbl1 values('goodbye', 20); sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite> Chấm dứt chương trình sqlite3 bằng cách nhập ký tự End-Of-File của hệ thống (thường là Control-D). Sử dụng ký tự ngắt (thường là Control-C) để dừng câu lệnh SQL đang chạy dài Đảm bảo rằng bạn nhập dấu chấm phẩy ở cuối mỗi lệnh SQL. Chương trình sqlite3 tìm kiếm dấu chấm phẩy để biết khi nào lệnh SQL của bạn hoàn thành. Nếu bạn bỏ qua dấu chấm phẩy, sqlite3 sẽ cung cấp cho bạn lời nhắc tiếp tục và đợi bạn nhập thêm văn bản để hoàn thành lệnh SQL. Tính năng này cho phép bạn nhập các lệnh SQL trải rộng trên nhiều dòng. Ví dụ sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite> Người dùng Windows có thể nhấp đúp vào sqlite3. exe để khiến shell dòng lệnh bật lên một cửa sổ đầu cuối chạy SQLite. Tuy nhiên, vì nhấp đúp sẽ khởi động sqlite3. exe không có đối số dòng lệnh, sẽ không có tệp cơ sở dữ liệu nào được chỉ định, vì vậy SQLite sẽ sử dụng cơ sở dữ liệu tạm thời bị xóa khi phiên thoát. Để sử dụng tệp đĩa liên tục làm cơ sở dữ liệu, hãy nhập ". open" ngay sau khi cửa sổ đầu cuối khởi động SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite> Ví dụ trên khiến tệp cơ sở dữ liệu có tên "ex1. db" được mở và sử dụng. "ex1. db" được tạo nếu nó không tồn tại trước đó. Bạn có thể muốn sử dụng tên đường dẫn đầy đủ để đảm bảo rằng tệp nằm trong thư mục mà bạn cho rằng nó nằm trong đó. Sử dụng dấu gạch chéo lên làm ký tự phân cách thư mục. Nói cách khác, sử dụng "c. /công việc/ex1. db", không phải "c. \work\ex1. db" Ngoài ra, bạn có thể tạo cơ sở dữ liệu mới bằng cách sử dụng bộ lưu trữ tạm thời mặc định, sau đó lưu cơ sở dữ liệu đó vào một tệp đĩa bằng cách sử dụng ". lưu" lệnh SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite> Hãy cẩn thận khi sử dụng ". lưu" vì nó sẽ ghi đè lên bất kỳ tệp cơ sở dữ liệu nào có cùng tên mà không cần nhắc xác nhận. Như với ". open", bạn có thể muốn sử dụng tên đường dẫn đầy đủ với dấu phân cách thư mục dấu gạch chéo về phía trước để tránh sự mơ hồ Hầu hết thời gian, sqlite3 chỉ đọc các dòng đầu vào và chuyển chúng vào thư viện SQLite để thực thi. Nhưng nhập các dòng bắt đầu bằng dấu chấm (". ") bị chặn và giải thích bởi chính chương trình sqlite3. Các "lệnh dấu chấm" này thường được sử dụng để thay đổi định dạng đầu ra của truy vấn hoặc để thực thi một số câu lệnh truy vấn được đóng gói sẵn. Ban đầu chỉ có một vài lệnh dấu chấm, nhưng qua nhiều năm, nhiều tính năng mới đã được tích lũy để ngày nay có hơn 60 lệnh. Để có danh sách các lệnh dấu chấm có sẵn, bạn có thể nhập ". giúp đỡ" không có đối số. Hoặc nhập ". help TOPIC" để biết thông tin chi tiết về TOPIC. Danh sách các lệnh chấm có sẵn sau sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite> 4. 1. cấu trúc dòngĐầu vào của CLI được phân tích cú pháp thành một chuỗi bao gồm
Các câu lệnh SQL có dạng tự do và có thể trải rộng trên nhiều dòng, với khoảng trắng hoặc nhận xét SQL được nhúng ở mọi nơi. Chúng được kết thúc bằng dấu ';' . Khi không ở cuối dòng đầu vào, dấu ';' . Khoảng trắng ở cuối bị bỏ qua cho mục đích chấm dứt Lệnh chấm có cấu trúc hạn chế hơn
CLI cũng chấp nhận nhận xét toàn bộ dòng bắt đầu bằng ký tự '#' và kéo dài đến cuối dòng. Không thể có khoảng trắng trước '#' 4. 2. Đối số lệnh chấmCác đối số được chuyển đến các lệnh dấu chấm được phân tích cú pháp từ đuôi lệnh, theo các quy tắc này
4. 3. Thực thi lệnh chấmCác lệnh dấu chấm được giải thích bởi sqlite3. exe chương trình dòng lệnh, không phải bởi chính SQLite. Vì vậy, không có lệnh dấu chấm nào hoạt động như một đối số cho các giao diện SQLite, chẳng hạn như sqlite3_prepare() hoặc sqlite3_exec() Chương trình sqlite3 có thể hiển thị kết quả của truy vấn ở 14 định dạng đầu ra khác nhau
Bạn có thể dùng ". mode" dấu chấm để chuyển đổi giữa các định dạng đầu ra này. Chế độ đầu ra mặc định là "danh sách". Trong chế độ danh sách, mỗi hàng của kết quả truy vấn được ghi trên một dòng đầu ra và mỗi cột trong hàng đó được phân tách bằng một chuỗi dấu phân cách cụ thể. Dấu phân cách mặc định là một ký hiệu ống (". "). Chế độ danh sách đặc biệt hữu ích khi bạn định gửi đầu ra của truy vấn tới một chương trình khác (chẳng hạn như AWK) để xử lý bổ sung sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite> Kiểu ". mode" không có đối số để hiển thị chế độ hiện tại sqlite> .mode current output mode: list sqlite> Sử dụng ". dấu phân cách" để thay đổi dấu phân cách. Ví dụ: để thay đổi dấu phân cách thành dấu phẩy và dấu cách, bạn có thể thực hiện việc này sqlite> .separator ", " sqlite> select * from tbl1; hello!, 10 goodbye, 20 sqlite> Tiếp theo ". mode" có thể đặt lại ". dấu phân cách" trở lại một số giá trị mặc định (tùy thuộc vào đối số của nó). Vì vậy, bạn có thể sẽ cần phải lặp lại ". dấu phân cách" bất cứ khi nào bạn thay đổi chế độ nếu bạn muốn tiếp tục sử dụng dấu phân cách không chuẩn Trong chế độ "trích dẫn", đầu ra được định dạng dưới dạng ký tự SQL. Các chuỗi được đặt trong dấu ngoặc đơn và dấu ngoặc đơn bên trong được thoát bằng cách nhân đôi. Các đốm màu được hiển thị trong ký hiệu chữ blob hệ thập lục phân (Ví dụ. x'abcd'). Các số được hiển thị dưới dạng văn bản ASCII và các giá trị NULL được hiển thị là "NULL". Tất cả các cột được phân tách với nhau bằng dấu phẩy (hoặc bất kỳ ký tự thay thế nào được chọn bằng cách sử dụng ". dấu phân cách") ________số 8_______ Ở chế độ "dòng", mỗi cột trong một hàng của cơ sở dữ liệu được hiển thị trên một dòng của chính nó. Mỗi dòng bao gồm tên cột, dấu bằng và dữ liệu cột. Các bản ghi liên tiếp cách nhau bởi một dòng trống. Dưới đây là một ví dụ về đầu ra chế độ dòng sqlite> .mode line sqlite> select * from tbl1; one = hello! two = 10 one = goodbye two = 20 sqlite> Ở chế độ cột, mỗi bản ghi được hiển thị trên một dòng riêng biệt với dữ liệu được căn chỉnh trong các cột. Ví dụ sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>0 Ở chế độ "cột" (và cả ở chế độ "hộp", "bảng" và "đánh dấu") chiều rộng của các cột sẽ tự động điều chỉnh. Nhưng bạn có thể ghi đè lên điều này, cung cấp chiều rộng cụ thể cho mỗi cột bằng cách sử dụng lệnh ". chiều rộng" lệnh. Những lập luận để ". width" là các số nguyên là số lượng ký tự dành cho mỗi cột. Số âm có nghĩa là căn phải. Như vậy sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>1 Chiều rộng bằng 0 có nghĩa là chiều rộng cột được chọn tự động. Độ rộng cột không xác định trở thành số không. Do đó, lệnh ". width" không có đối số sẽ đặt lại tất cả độ rộng cột về 0 và do đó khiến tất cả độ rộng cột được xác định tự động Chế độ "cột" là định dạng đầu ra dạng bảng. Các định dạng đầu ra dạng bảng khác là "box", "markdown" và "table" sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>2 Các chế độ cột chấp nhận một số tùy chọn bổ sung để kiểm soát định dạng. Tùy chọn "--wrap N" (trong đó N là số nguyên) làm cho các cột ngắt dòng văn bản dài hơn N ký tự. Gói bị vô hiệu hóa nếu N bằng không sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>3 Việc ngắt dòng xảy ra sau chính xác N ký tự, ký tự này có thể ở giữa một từ. Để bao quanh ranh giới từ, hãy thêm tùy chọn "--wordwrap on" (hoặc chỉ viết tắt là "-ww") sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>4 Tùy chọn "--quote" làm cho kết quả trong mỗi cột được trích dẫn giống như một ký tự SQL, như trong chế độ "trích dẫn". Xem trợ giúp trực tuyến để biết các tùy chọn bổ sung Lệnh ". hộp chế độ --wrap 60 --quote" rất hữu ích cho các truy vấn cơ sở dữ liệu có mục đích chung đến mức nó được đặt bí danh riêng. Thay vì gõ toàn bộ lệnh gồm 27 ký tự đó, bạn chỉ cần nói ". chế độ qbox" Một chế độ đầu ra hữu ích khác là "chèn". Trong chế độ chèn, đầu ra được định dạng giống như các câu lệnh SQL INSERT. Sử dụng chế độ chèn để tạo văn bản mà sau này có thể được sử dụng để nhập dữ liệu vào cơ sở dữ liệu khác Khi chỉ định chế độ chèn, bạn phải đưa ra một đối số phụ là tên của bảng sẽ được chèn vào. Ví dụ sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>5 Các chế độ đầu ra khác bao gồm "csv", "json" và "tcl". Hãy tự mình thử để xem những gì họ làm Chương trình sqlite3 cung cấp một số lệnh tiện ích hữu ích để xem lược đồ của cơ sở dữ liệu. Không có gì mà các lệnh này làm mà không thể thực hiện được bằng một số phương tiện khác. Các lệnh này được cung cấp hoàn toàn dưới dạng phím tắt Ví dụ, để xem danh sách các bảng trong cơ sở dữ liệu, bạn có thể nhập ". những cái bàn" sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>6 Các ". bảng" tương tự như cài đặt chế độ danh sách, sau đó thực hiện truy vấn sau sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>7 Nhưng ". bảng" lệnh làm nhiều hơn. Nó truy vấn bảng sqlite_schema cho tất cả các cơ sở dữ liệu đính kèm, không chỉ cơ sở dữ liệu chính. Và nó sắp xếp đầu ra của nó thành các cột gọn gàng Các ". indexes" hoạt động theo cách tương tự để liệt kê tất cả các chỉ mục. Nếu ". indexes" được đưa ra một đối số là tên của một bảng, sau đó nó chỉ hiển thị các chỉ mục trên bảng đó Các ". lược đồ" hiển thị lược đồ hoàn chỉnh cho cơ sở dữ liệu hoặc cho một bảng nếu một đối số tên bảng tùy chọn được cung cấp sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>8 Các ". lược đồ" gần giống như cài đặt chế độ danh sách, sau đó nhập truy vấn sau sqlite> CREATE TABLE tbl2 ( ...> f1 varchar(30) primary key, ...> f2 text, ...> f3 real ...> ); sqlite>9 Như với ". bảng", ". lược đồ" hiển thị lược đồ cho tất cả các cơ sở dữ liệu được đính kèm. Nếu bạn chỉ muốn xem lược đồ cho một cơ sở dữ liệu (có thể là "chính") thì bạn có thể thêm một đối số vào ". schema" để hạn chế đầu ra của nó Các ". lược đồ" có thể được tăng cường bằng tùy chọn "--indent", trong trường hợp đó, nó cố gắng định dạng lại các câu lệnh CREATE khác nhau của lược đồ để con người dễ đọc hơn Các ". cơ sở dữ liệu" hiển thị danh sách tất cả các cơ sở dữ liệu đang mở trong kết nối hiện tại. Luôn có ít nhất 2. Cái đầu tiên là "chính", cơ sở dữ liệu ban đầu đã mở. Thứ hai là "temp", cơ sở dữ liệu được sử dụng cho các bảng tạm thời. Có thể có các cơ sở dữ liệu bổ sung được liệt kê cho các cơ sở dữ liệu được đính kèm bằng cách sử dụng câu lệnh ATTACH. Cột đầu ra đầu tiên là tên cơ sở dữ liệu được đính kèm và cột kết quả thứ hai là tên tệp của tệp bên ngoài. Có thể có cột kết quả thứ ba sẽ là "'r/o'" hoặc "'r/w'" tùy thuộc vào việc tệp cơ sở dữ liệu là chỉ đọc hay đọc-ghi. Và có thể có cột kết quả thứ tư hiển thị kết quả của sqlite3_txn_state() cho tệp cơ sở dữ liệu đó Các ". fullschema" lệnh dấu chấm hoạt động giống như lệnh ". lược đồ" ở chỗ nó hiển thị toàn bộ lược đồ cơ sở dữ liệu. Nhưng ". fullschema" cũng bao gồm các kết xuất của bảng thống kê "sqlite_stat1", "sqlite_stat3" và "sqlite_stat4" nếu chúng tồn tại. Các ". fullschema" thường cung cấp tất cả thông tin cần thiết để tạo lại chính xác một kế hoạch truy vấn cho một truy vấn cụ thể. Khi báo cáo các sự cố đáng ngờ với công cụ lập kế hoạch truy vấn SQLite cho nhóm phát triển SQLite, các nhà phát triển được yêu cầu cung cấp ". fullschema" như một phần của báo cáo sự cố. Lưu ý rằng bảng sqlite_stat3 và sqlite_stat4 chứa các mẫu mục nhập chỉ mục và do đó có thể chứa dữ liệu nhạy cảm, vì vậy đừng gửi ". fullschema" của cơ sở dữ liệu độc quyền trên kênh công cộng Các ". open" sẽ mở một kết nối cơ sở dữ liệu mới, sau lần đầu tiên đóng lệnh cơ sở dữ liệu đã mở trước đó. Ở dạng đơn giản nhất, ". open" chỉ đơn thuần gọi sqlite3_open() trên tệp có tên là đối số của nó. Sử dụng tên ". ký ức. " để mở cơ sở dữ liệu trong bộ nhớ mới biến mất khi CLI thoát hoặc khi ". open" được chạy lại Nếu tùy chọn --new được bao gồm trong ". open", thì cơ sở dữ liệu được đặt lại trước khi được mở. Mọi dữ liệu trước đó đều bị hủy. Đây là thao tác ghi đè phá hoại dữ liệu trước đó và không yêu cầu xác nhận, vì vậy hãy sử dụng tùy chọn này một cách cẩn thận Tùy chọn --readonly mở cơ sở dữ liệu ở chế độ chỉ đọc. Viết sẽ bị cấm Tùy chọn --deserialize khiến toàn bộ nội dung của tệp trên đĩa được đọc vào bộ nhớ và sau đó được mở dưới dạng cơ sở dữ liệu trong bộ nhớ bằng giao diện sqlite3_deserialize(). Tất nhiên, điều này sẽ cần rất nhiều bộ nhớ nếu bạn có một cơ sở dữ liệu lớn. Ngoài ra, bất kỳ thay đổi nào bạn thực hiện đối với cơ sở dữ liệu sẽ không được lưu lại vào đĩa trừ khi bạn lưu chúng một cách rõ ràng bằng lệnh ". lưu" hoặc ". lệnh sao lưu" Tùy chọn --append khiến cơ sở dữ liệu SQLite được thêm vào một tệp hiện có thay vì hoạt động như một tệp độc lập. Xem phần mở rộng appendvfs để biết thêm thông tin Tùy chọn --zip khiến tệp đầu vào được chỉ định được hiểu là tệp lưu trữ ZIP thay vì tệp cơ sở dữ liệu SQLite Tùy chọn --hexdb khiến nội dung cơ sở dữ liệu được đọc từ các dòng đầu vào tiếp theo ở định dạng hex, thay vì từ một tệp riêng biệt trên đĩa. Có thể sử dụng công cụ dòng lệnh "dbtotxt" để tạo văn bản phù hợp cho cơ sở dữ liệu. Tùy chọn --hexdb được các nhà phát triển SQLite sử dụng cho mục đích thử nghiệm. Chúng tôi không biết bất kỳ trường hợp sử dụng nào cho tùy chọn này ngoài thử nghiệm và phát triển SQLite nội bộ 8. 1. Ghi kết quả vào tệpTheo mặc định, sqlite3 gửi kết quả truy vấn đến đầu ra tiêu chuẩn. Bạn có thể thay đổi điều này bằng cách sử dụng ". đầu ra" và ". một lần" lệnh. Chỉ cần đặt tên của tệp đầu ra làm đối số cho. đầu ra và tất cả các kết quả truy vấn tiếp theo sẽ được ghi vào tệp đó. Hoặc sử dụng. lệnh một lần thay vì. đầu ra và đầu ra sẽ chỉ được chuyển hướng cho một lệnh tiếp theo trước khi trở lại bảng điều khiển. Sử dụng. đầu ra không có đối số để bắt đầu ghi lại vào đầu ra tiêu chuẩn. Ví dụ SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>0 Nếu ký tự đầu tiên của ". đầu ra" hoặc ". once" tên tệp là ký hiệu ống dẫn (". ") thì các ký tự còn lại được coi là một lệnh và đầu ra được gửi tới lệnh đó. Điều này giúp dễ dàng đưa kết quả của một truy vấn vào một số quy trình khác. Ví dụ: lệnh "open -f" trên máy Mac sẽ mở trình soạn thảo văn bản để hiển thị nội dung mà nó đọc từ đầu vào tiêu chuẩn. Vì vậy, để xem kết quả của một truy vấn trong trình soạn thảo văn bản, người ta có thể nhập SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>1 Nếu ". đầu ra" hoặc ". một lần" có đối số là "-e" thì đầu ra được thu thập vào một tệp tạm thời và trình soạn thảo văn bản hệ thống được gọi trên tệp văn bản đó. Do đó, lệnh ". một lần -e" đạt được kết quả tương tự như ". một lần '. open -f'" nhưng với lợi ích là có thể di động trên tất cả các hệ thống Nếu ". đầu ra" hoặc ". once" có đối số "-x", khiến chúng tích lũy đầu ra dưới dạng Giá trị được phân tách bằng dấu phẩy (CSV) trong tệp tạm thời, sau đó gọi tiện ích hệ thống mặc định để xem tệp CSV (thường là chương trình bảng tính) trên kết quả. Đây là một cách nhanh chóng để gửi kết quả của một truy vấn đến một bảng tính để xem dễ dàng SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>2 Các ". excel" là bí danh của ". một lần -x". Nó làm chính xác điều tương tự 8. 2. Đọc SQL từ một tệpTrong chế độ tương tác, sqlite3 đọc văn bản đầu vào (câu lệnh SQL hoặc ) từ bàn phím. Tất nhiên, bạn cũng có thể chuyển hướng đầu vào từ một tệp khi khởi chạy sqlite3, nhưng sau đó bạn không có khả năng tương tác với chương trình. Đôi khi sẽ rất hữu ích khi chạy tập lệnh SQL có trong tệp nhập các lệnh khác từ dòng lệnh. Đối với điều này, ". read" dot-lệnh được cung cấp Các ". read" nhận một đối số duy nhất (thường là) tên của tệp để đọc văn bản đầu vào SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>3 Các ". read" tạm thời ngừng đọc từ bàn phím và thay vào đó lấy đầu vào của nó từ tệp có tên. Khi đến cuối tệp, đầu vào sẽ trở lại bàn phím. Tệp tập lệnh có thể chứa các lệnh dấu chấm, giống như đầu vào tương tác thông thường Nếu lập luận để ". đọc" bắt đầu bằng ". ", thì thay vì mở đối số dưới dạng tệp, nó sẽ chạy đối số (không có ký tự " ở đầu. ") làm lệnh, sau đó sử dụng đầu ra của lệnh đó làm đầu vào. Do đó, nếu bạn có một tập lệnh tạo SQL, bạn có thể thực thi trực tiếp SQL đó bằng một lệnh tương tự như sau SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>4 8. 3. Các hàm I/O tệpTrình bao dòng lệnh thêm hai hàm SQL do ứng dụng xác định để tạo điều kiện thuận lợi cho việc đọc nội dung từ một tệp vào một cột trong bảng và ghi nội dung của một cột vào một tệp tương ứng Hàm readfile(X) SQL đọc toàn bộ nội dung của tệp có tên X và trả về nội dung đó dưới dạng BLOB. Điều này có thể được sử dụng để tải nội dung vào một bảng. Ví dụ SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>5 Hàm SQL writefile(X,Y) ghi blob Y vào tệp có tên X và trả về số byte đã ghi. Sử dụng chức năng này để trích xuất nội dung của một cột trong bảng thành một tệp. Ví dụ SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>6 Lưu ý rằng các hàm readfile(X) và writefile(X,Y) là các hàm mở rộng và không được tích hợp vào thư viện SQLite cốt lõi. Các thói quen này có sẵn dưới dạng tiện ích mở rộng có thể tải trong ext/misc/fileio. tệp nguồn c trong 8. 4. Hàm SQL chỉnh sửa ()CLI có một hàm SQL tích hợp khác có tên edit(). Edit() nhận một hoặc hai đối số. Đối số đầu tiên là một giá trị - thường là một chuỗi nhiều dòng lớn sẽ được chỉnh sửa. Đối số thứ hai là lệnh gọi trình soạn thảo văn bản. (Nó có thể bao gồm các tùy chọn để ảnh hưởng đến hành vi của biên tập viên. ) Nếu đối số thứ hai bị bỏ qua, biến môi trường VISUAL sẽ được sử dụng. Hàm edit() ghi đối số đầu tiên của nó vào một tệp tạm thời, gọi trình chỉnh sửa trên tệp tạm thời, đọc lại tệp trở lại bộ nhớ sau khi trình chỉnh sửa hoàn tất, sau đó trả về văn bản đã chỉnh sửa Hàm edit() có thể được sử dụng để thay đổi giá trị văn bản lớn. Ví dụ SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>7 Trong ví dụ này, nội dung của tài liệu. trường nội dung cho mục nhập tài liệu. tên là "báo cáo-15" sẽ được gửi đến biên tập viên. Sau khi trình chỉnh sửa trở lại, kết quả sẽ được ghi lại vào tài liệu. lĩnh vực cơ thể Thao tác mặc định của edit() là gọi trình soạn thảo văn bản. Nhưng bằng cách sử dụng một chương trình chỉnh sửa thay thế trong đối số thứ hai, bạn cũng có thể sử dụng nó để chỉnh sửa hình ảnh hoặc các tài nguyên phi văn bản khác. Ví dụ: nếu bạn muốn sửa đổi hình ảnh JPEG tình cờ được lưu trữ trong một trường của bảng, bạn có thể chạy SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>8 Chương trình chỉnh sửa cũng có thể được sử dụng làm trình xem, chỉ cần bỏ qua giá trị trả về. Ví dụ: để chỉ nhìn vào hình ảnh trên, bạn có thể chạy SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open ex1.db sqlite>9 8. 5. Nhập tệp dưới dạng CSV hoặc các định dạng khácSử dụng ". import" để nhập CSV (giá trị được phân tách bằng dấu phẩy) hoặc dữ liệu được phân tách tương tự vào bảng SQLite. Các ". lệnh nhập khẩu" nhận hai đối số là nguồn dữ liệu sẽ được đọc và tên của bảng SQLite mà dữ liệu sẽ được chèn vào. Đối số nguồn là tên của tệp sẽ được đọc hoặc nếu nó bắt đầu bằng dấu ". " ký tự, nó chỉ định một lệnh sẽ được chạy để tạo dữ liệu đầu vào Lưu ý rằng điều quan trọng là phải đặt "chế độ" trước khi chạy ". lệnh nhập". Điều này là thận trọng để ngăn trình bao dòng lệnh cố diễn giải văn bản tệp đầu vào dưới dạng một số định dạng khác với cách tệp được cấu trúc. Nếu các tùy chọn --csv hoặc --ascii được sử dụng, chúng sẽ kiểm soát các dấu phân cách đầu vào nhập. Mặt khác, các dấu phân cách là những dấu hiệu có hiệu lực đối với chế độ đầu ra hiện tại Để nhập vào một bảng không có trong lược đồ "chính", tùy chọn --schema có thể được sử dụng để chỉ định rằng bảng nằm trong một số lược đồ khác. Điều này có thể hữu ích cho cơ sở dữ liệu ATTACH'ed hoặc để nhập vào bảng TEMP Khi. quá trình nhập được chạy, việc xử lý hàng đầu tiên của nó phụ thuộc vào việc bảng mục tiêu đã tồn tại chưa. Nếu nó không tồn tại, bảng sẽ được tạo tự động và nội dung của hàng đầu tiên được sử dụng để đặt tên cho tất cả các cột trong bảng. Trong trường hợp này, nội dung dữ liệu bảng được lấy từ hàng đầu vào thứ hai và tiếp theo. Nếu bảng mục tiêu đã tồn tại, mọi hàng của đầu vào, kể cả hàng đầu tiên, được coi là nội dung dữ liệu thực tế. Nếu tệp đầu vào chứa một hàng nhãn cột ban đầu, bạn có thể tạo. lệnh nhập bỏ qua hàng đầu tiên đó bằng tùy chọn "--skip 1" Dưới đây là ví dụ về cách sử dụng, tải bảng tạm thời có sẵn từ tệp CSV có tên cột ở hàng đầu tiên SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>0 Trong khi đọc dữ liệu đầu vào ở chế độ khác với 'ascii', ". nhập" diễn giải đầu vào dưới dạng bản ghi bao gồm các trường theo thông số kỹ thuật RFC 4180 với ngoại lệ này. Bản ghi đầu vào và dấu tách trường được đặt theo chế độ hoặc bằng cách sử dụng. lệnh tách. Các trường luôn có thể loại bỏ trích dẫn để đảo ngược trích dẫn được thực hiện theo RFC 4180, ngoại trừ ở chế độ ascii Để nhập dữ liệu có dấu phân cách tùy ý và không có trích dẫn, trước tiên hãy đặt chế độ ascii (". mode ascii"), sau đó đặt dấu phân cách trường và bản ghi bằng cách sử dụng ". lệnh phân cách". Điều này sẽ ngăn chặn trích dẫn. Trên ". nhập", dữ liệu sẽ được chia thành các trường và bản ghi theo các dấu phân cách được chỉ định 8. 6. Xuất sang CSVĐể xuất bảng SQLite (hoặc một phần của bảng) dưới dạng CSV, chỉ cần đặt "chế độ" thành "csv" rồi chạy truy vấn để trích xuất các hàng mong muốn của bảng. Đầu ra sẽ được định dạng dưới dạng CSV theo RFC 4180 SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>1 Trong ví dụ trên, ". headers on" khiến các nhãn cột được in dưới dạng hàng đầu tiên của đầu ra. Điều này có nghĩa là hàng đầu tiên của tệp CSV kết quả sẽ chứa các nhãn cột. Nếu nhãn cột không được mong muốn, hãy đặt ". tiêu đề tắt" thay vào đó. (Các ". cài đặt tiêu đề tắt" là cài đặt mặc định và có thể được bỏ qua nếu tiêu đề chưa được bật trước đó. ) Dòng ". một khi FILENAME" khiến tất cả đầu ra truy vấn chuyển vào tệp được đặt tên thay vì được in trên bảng điều khiển. Trong ví dụ trên, dòng đó khiến nội dung CSV được ghi vào một tệp có tên "C. /công việc/dữ liệu ra. csv" Dòng cuối cùng của ví dụ (". hệ thống c. /công việc/dữ liệu. csv") có tác dụng tương tự như nhấp đúp vào tệp c. /công việc/dữ liệu ra. tệp csv trong cửa sổ. Thao tác này thường sẽ hiển thị chương trình bảng tính để hiển thị tệp CSV Lệnh đó chỉ hoạt động như được viết trên Windows. Dòng tương đương trên máy Mac sẽ là SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>2 Trên Linux và các hệ thống unix khác, bạn sẽ cần nhập một cái gì đó như SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>3 8. 6. 1. Xuất sang ExcelĐể đơn giản hóa việc xuất sang bảng tính, CLI cung cấp ". excel" nắm bắt đầu ra của một truy vấn đơn lẻ và gửi đầu ra đó tới chương trình bảng tính mặc định trên máy tính chủ. Sử dụng nó như thế này SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>4 Lệnh trên ghi đầu ra của truy vấn dưới dạng CSV vào tệp tạm thời, gọi trình xử lý mặc định cho tệp CSV (thường là chương trình bảng tính ưa thích như Excel hoặc LibreOffice), sau đó xóa tệp tạm thời. Đây thực chất là một phương pháp rút gọn để thực hiện trình tự ". csv", ". một lần" và ". system" các lệnh được mô tả ở trên Các ". excel" thực sự là một bí danh cho ". một lần -x". Tùy chọn -x để. một lần khiến nó ghi kết quả dưới dạng CSV vào một tệp tạm thời có tên là ". csv", sau đó gọi trình xử lý mặc định của hệ thống cho các tệp CSV Cũng có một ". once -e" hoạt động tương tự, ngoại trừ việc nó đặt tên tệp tạm thời bằng ". txt" để trình soạn thảo văn bản mặc định cho hệ thống sẽ được gọi, thay vì bảng tính mặc định 8. 6. 2. Xuất sang TSV (các giá trị được phân tách bằng tab)Xuất sang TSV thuần túy, không có bất kỳ trích dẫn trường nào, có thể được thực hiện bằng cách nhập ". tab chế độ" trước khi chạy truy vấn. Tuy nhiên, đầu ra sẽ không được đọc chính xác trong chế độ tab bởi ". nhập" nếu nó chứa các ký tự trích dẫn kép. Để lấy TSV được trích dẫn theo RFC 4180 để có thể nhập nó ở chế độ tab với ". nhập", trước tiên hãy nhập ". chế độ csv", sau đó nhập '. dấu tách "\t"' trước khi chạy truy vấn Ngoài việc đọc và ghi các tệp cơ sở dữ liệu SQLite, chương trình sqlite3 cũng sẽ đọc và ghi các tệp lưu trữ ZIP. Chỉ cần chỉ định tên tệp lưu trữ ZIP thay cho tên tệp cơ sở dữ liệu SQLite trên dòng lệnh ban đầu hoặc trong phần ". open" và sqlite3 sẽ tự động phát hiện tệp đó là tệp lưu trữ ZIP thay vì cơ sở dữ liệu SQLite và sẽ mở tệp như vậy. Điều này hoạt động bất kể hậu tố tập tin. Vì vậy, bạn có thể mở các tệp JAR, DOCX và ODP cũng như bất kỳ định dạng tệp nào khác thực sự là tệp lưu trữ ZIP và SQLite sẽ đọc nó cho bạn Kho lưu trữ ZIP dường như là một cơ sở dữ liệu chứa một bảng duy nhất với lược đồ sau SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>5 Vì vậy, ví dụ: nếu bạn muốn xem hiệu quả nén (được biểu thị bằng kích thước của nội dung được nén so với kích thước tệp không nén ban đầu) cho tất cả các tệp trong kho lưu trữ ZIP, được sắp xếp từ nén nhiều nhất đến nén ít nhất, bạn có thể chạy SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>6 Hoặc sử dụng , bạn có thể trích xuất các thành phần của kho lưu trữ ZIP SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>7 9. 1. Cách truy cập kho lưu trữ ZIP được triển khaiShell dòng lệnh sử dụng bảng ảo Zipfile để truy cập kho lưu trữ ZIP. Bạn có thể thấy điều này bằng cách chạy lệnh ". schema" khi tệp nén ZIP được mở SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>8 Khi mở một tệp, nếu máy khách dòng lệnh phát hiện ra rằng tệp là kho lưu trữ ZIP thay vì cơ sở dữ liệu SQLite, thì nó thực sự mở một cơ sở dữ liệu trong bộ nhớ và sau đó trong cơ sở dữ liệu trong bộ nhớ đó, nó sẽ tạo một phiên bản của bảng ảo Zipfile. Quá trình xử lý đặc biệt để mở các kho lưu trữ ZIP là một thủ thuật của trình bao dòng lệnh, không phải thư viện SQLite cốt lõi. Vì vậy, nếu bạn muốn mở kho lưu trữ ZIP dưới dạng cơ sở dữ liệu trong ứng dụng của mình, bạn sẽ cần kích hoạt mô-đun bảng ảo Zipfile, sau đó chạy câu lệnh CREATE VIRTUAL TABLE thích hợp Sử dụng ". dump" để chuyển đổi toàn bộ nội dung của cơ sở dữ liệu thành một tệp văn bản UTF-8. Tệp này có thể được chuyển đổi trở lại thành cơ sở dữ liệu bằng cách chuyển nó trở lại thành sqlite3 Một cách hay để tạo một bản sao lưu trữ của cơ sở dữ liệu là SQLite version 3.36.0 2021-06-18 18:36:39 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .. many SQL commands omitted ... sqlite> .save ex1.db sqlite>9 Điều này tạo ra một tệp có tên ex1. bãi rác. gz chứa mọi thứ bạn cần để xây dựng lại cơ sở dữ liệu sau này hoặc trên một máy khác. Để xây dựng lại cơ sở dữ liệu, chỉ cần gõ sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>0 Định dạng văn bản là SQL thuần túy nên bạn cũng có thể sử dụng. lệnh kết xuất để xuất cơ sở dữ liệu SQLite sang các công cụ cơ sở dữ liệu SQL phổ biến khác. Như thế này sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>1 Giống như ". đổ" lệnh, ". phục hồi" cố gắng chuyển đổi toàn bộ nội dung của tệp cơ sở dữ liệu thành văn bản. Điểm khác biệt là thay vì đọc dữ liệu bằng giao diện cơ sở dữ liệu SQL thông thường, ". phục hồi" cố gắng tập hợp lại cơ sở dữ liệu dựa trên dữ liệu được trích xuất trực tiếp từ càng nhiều trang cơ sở dữ liệu càng tốt. Nếu cơ sở dữ liệu bị hỏng, ". recovery" thường có thể khôi phục dữ liệu từ tất cả các phần chưa bị hỏng của cơ sở dữ liệu, trong khi ". dump" dừng lại khi bắt gặp dấu hiệu tham nhũng đầu tiên Nếu ". recovery" khôi phục một hoặc nhiều hàng mà nó không thể gán cho bất kỳ bảng cơ sở dữ liệu nào, tập lệnh đầu ra sẽ tạo bảng "lost_and_found" để lưu trữ các hàng mồ côi. Lược đồ của bảng Lost_and_found như sau sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>2 Bảng "lost_and_found" chứa một hàng cho mỗi hàng mồ côi được khôi phục từ cơ sở dữ liệu. Ngoài ra, có một hàng cho mỗi mục nhập chỉ mục được khôi phục không thể được quy cho bất kỳ chỉ mục SQL nào. Điều này là do, trong cơ sở dữ liệu SQLite, cùng một định dạng được sử dụng để lưu trữ các mục nhập chỉ mục SQL và các mục nhập bảng KHÔNG CÓ ROWID ColumnContentsrootpgnoMặc dù không thể gán hàng cho một bảng cơ sở dữ liệu cụ thể, nhưng nó có thể là một phần của cấu trúc cây trong tệp cơ sở dữ liệu. Trong trường hợp này, số trang gốc của cấu trúc cây đó được lưu trữ trong cột này. Hoặc, nếu trang mà hàng được tìm thấy không phải là một phần của cấu trúc cây, thì cột này sẽ lưu một bản sao của giá trị trong cột "pgno" - số trang của trang mà hàng được tìm thấy trên đó. Trong nhiều trường hợp, mặc dù không phải tất cả, tất cả các hàng trong bảng Lost_and_found có cùng giá trị trong cột này đều thuộc về cùng một bảng. pgnoSố trang của trang mà hàng này được tìm thấy. nfieldSố trường trong hàng này. idNếu hàng đến từ bảng KHÔNG CÓ ROWID, cột này chứa NULL. Mặt khác, nó chứa giá trị rowid số nguyên 64 bit cho hàng. c0, c1, c2. Các giá trị cho mỗi cột của hàng được lưu trữ trong các cột này. Các ". recovery" tạo bảng Lost_and_found với số lượng cột theo yêu cầu của hàng mồ côi dài nhấtNếu lược đồ cơ sở dữ liệu đã khôi phục đã chứa một bảng có tên "lost_and_found", thì ". recovery" sử dụng tên "lost_and_found0". Nếu tên "lost_and_found0" cũng đã được sử dụng, "lost_and_found1", v.v. Tên mặc định "lost_and_found" có thể bị ghi đè bằng cách gọi ". phục hồi" bằng công tắc --lost-and-found. Ví dụ: để có tập lệnh đầu ra, hãy gọi bảng "orphaned_rows" sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>3 Bạn có thể thêm các hàm SQL, , bảng ảo và VFS tùy chỉnh mới do ứng dụng xác định vào trình bao dòng lệnh trong thời gian chạy bằng cách sử dụng lệnh ". tải" lệnh. Đầu tiên, xây dựng tiện ích mở rộng dưới dạng DLL hoặc thư viện dùng chung (như được mô tả trong tài liệu Tiện ích mở rộng có thể tải trong thời gian chạy), sau đó nhập sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>4 Lưu ý rằng SQLite tự động thêm hậu tố mở rộng thích hợp (". dll" trên cửa sổ, ". dylib" trên máy Mac, ". so" trên hầu hết các unix khác) vào tên tệp mở rộng. Nói chung, nên chỉ định tên đường dẫn đầy đủ của tiện ích mở rộng SQLite tính toán điểm vào cho tiện ích mở rộng dựa trên tên tệp tiện ích mở rộng. Để ghi đè lựa chọn này, chỉ cần thêm tên của tiện ích làm đối số thứ hai vào ". tải" lệnh Mã nguồn cho một số tiện ích mở rộng hữu ích có thể được tìm thấy trong thư mục con ext/misc của cây nguồn SQLite. Bạn có thể sử dụng nguyên trạng các tiện ích mở rộng này hoặc làm cơ sở để tạo các tiện ích mở rộng tùy chỉnh của riêng mình nhằm giải quyết các nhu cầu cụ thể của riêng bạn Các ". sha3sum" dot-command tính toán hàm băm SHA3 của nội dung cơ sở dữ liệu. Để rõ ràng, hàm băm được tính toán trên nội dung cơ sở dữ liệu, không phải biểu diễn của nó trên đĩa. Điều này có nghĩa là, ví dụ: VACUUM hoặc chuyển đổi bảo toàn dữ liệu tương tự không làm thay đổi hàm băm Các ". lệnh sha3sum" hỗ trợ các tùy chọn "--sha3-224", "--sha3-256", "--sha3-384" và "--sha3-512" để xác định loại SHA3 sẽ sử dụng cho hàm băm. Mặc định là SHA3-256 Lược đồ cơ sở dữ liệu (trong bảng sqlite_schema) thường không được bao gồm trong hàm băm, nhưng có thể được thêm vào bằng tùy chọn "--schema" Các ". sha3sum" nhận một đối số tùy chọn duy nhất là một mẫu. Nếu có tùy chọn này, chỉ những bảng có tên khớp với mẫu mới được băm Các ". lệnh sha3sum" được triển khai với sự trợ giúp của chức năng mở rộng "sha3_query()" đi kèm với shell dòng lệnh Các ". lệnh selftest" cố gắng xác minh rằng cơ sở dữ liệu còn nguyên vẹn và không bị hỏng. Các. lệnh selftest tìm kiếm một bảng trong lược đồ có tên "selftest" và được định nghĩa như sau sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>5 Các. lệnh selftest đọc các hàng của bảng selftest trong selftest. tno order. For each 'memo' row, it writes the text in 'cmd' to the output. For each 'run' row, it runs the 'cmd' text as SQL and compares the result to the value in 'ans', and shows an error message if the results differ If there is no selftest table, the ". selftest" command runs The ". selftest --init" command creates the selftest table if it does not already exists, then appends entries that check the SHA3 hash of the content of all tables. Subsequent runs of ". selftest" will verify that the database has not been changed in any way. To generate tests to verify that a subset of the tables is unchanged, simply run ". selftest --init" then DELETE the selftest rows that refer to tables that are not constant The ". archive" dot-command and the "-A" command-line option provide built-in support for the SQLite Archive format. The interface is similar to that of the "tar" command on unix systems. Each invocation of the ". ar" command must specify a single command option. The following commands are available for ". archive" OptionLong OptionPurpose-c--createCreate a new archive containing specified files. -x--extractExtract specified files from archive. -i--insertAdd files to existing archive. -r--removeRemove files from the archive. -t--listList the files in the archive. -u--updateAdd files to existing archive if they have changedAs well as the command option, each invocation of ". ar" may specify one or more modifier options. Some modifier options require an argument, some do not. The following modifier options are available OptionLong OptionPurpose-v--verboseList each file as it is processed. -f FILE--file FILEIf specified, use file FILE as the archive. Otherwise, assume that the current "main" database is the archive to be operated on. -a FILE--append FILELike --file, use file FILE as the archive, but open the file using the apndvfs VFS so that the archive will be appended to the end of FILE if FILE already exists. -C DIR--directory DIRIf specified, interpret all relative paths as relative to DIR, instead of the current working directory. -g--globUse to match arguments against names in the archive. -n--dryrunShow the SQL that would be run to carry out the archive operation, but do not actually change anything. ----All subsequent command line words are command arguments, not optionsFor command-line usage, add the short style command-line options immediately following the "-A", without an intervening space. All subsequent arguments are considered to be part of the . archive command. For example, the following commands are equivalent sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>6 Long and short style options may be mixed. For example, the following are equivalent sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>7 Alternatively, the first argument following to ". ar" may be the concatenation of the short form of all required options (without the "-" characters). In this case arguments for options requiring them are read from the command line next, and any remaining words are considered command arguments. For example sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>8 15. 1. SQLite Archive Create CommandTạo một kho lưu trữ mới, ghi đè lên bất kỳ kho lưu trữ hiện có nào (trong db "chính" hiện tại hoặc trong tệp được chỉ định bởi tùy chọn --file). Each argument following the options is a file to add to the archive. Directories are imported recursively. See above for examples 15. 2. SQLite Archive Extract CommandExtract files from the archive (either to the current working directory or to the directory specified by a --directory option). Files or directories whose names match the arguments, as affected by the --glob option, are extracted. Or, if no arguments follow the options, all files and directories are extracted. Any specified directories are extracted recursively. It is an error if any specified names or match patterns cannot be found in the archive sqlite> .help .archive .. Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .binary on|off Turn binary output on or off. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check GLOB Fail if output since .testcase does not match .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|.. Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD .. Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?TABLE? Show names of indexes .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|off Turn logging on or off. FILE can be stderr/stdout .mode MODE ?TABLE? Set output mode .nonce STRING Disable safe mode for one command if the nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD .. Manage SQL parameter bindings .print STRING.. Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILE Read input from FILE .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save FILE Write in-memory database into FILE .scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .selftest ?OPTIONS? Run tests defined in the SELFTEST table .separator COL ?ROW? Change the column and row separators .session ?NAME? CMD .. Create or control sessions .sha3sum .. Compute a SHA3 hash of database content .shell CMD ARGS.. Run CMD ARGS.. in a system shell .show Show the current values for various settings .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS.. Run CMD ARGS.. in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin redirecting output to 'testcase-out.txt' .testctrl CMD .. Run various sqlite3_test_control() operations .timeout MS Try opening locked tables for MS milliseconds .timer on|off Turn SQL timer on or off .trace ?OPTIONS? Output each SQL statement as it is run .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .width NUM1 NUM2 .. Set minimum column widths for columnar output sqlite>9 15. 3. SQLite Archive List CommandList the contents of the archive. If no arguments are specified, then all files are listed. Otherwise, only those which match the arguments, as affected by the --glob option, are listed. Currently, the --verbose option does not change the behaviour of this command. That may change in the future sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>0 15. 4. Các lệnh chèn và cập nhật lưu trữ SQLiteCác lệnh --update và --insert hoạt động giống như lệnh --create, ngoại trừ việc chúng không xóa kho lưu trữ hiện tại trước khi bắt đầu. Các phiên bản mới của tệp âm thầm thay thế các tệp hiện có có cùng tên, nhưng nếu không thì nội dung ban đầu của kho lưu trữ (nếu có) vẫn còn nguyên vẹn Đối với lệnh --insert, tất cả các tệp được liệt kê sẽ được chèn vào kho lưu trữ. Đối với lệnh --update, các tệp chỉ được chèn nếu chúng không tồn tại trước đó trong kho lưu trữ hoặc nếu "mtime" hoặc "mode" của chúng khác với những gì hiện có trong kho lưu trữ nút tương thích. Trước SQLite phiên bản 3. 28. 0 (2019-04-16) chỉ tùy chọn --update được hỗ trợ nhưng tùy chọn đó hoạt động giống như --insert ở chỗ nó luôn chèn lại mọi tệp bất kể nó có thay đổi hay không 15. 5. Lưu trữ SQLite Xóa lệnhLệnh --remove xóa các tệp và thư mục khớp với các đối số được cung cấp (nếu có) do bị ảnh hưởng bởi tùy chọn --glob. Đã xảy ra lỗi khi cung cấp các đối số không khớp với nội dung nào trong kho lưu trữ 15. 6. Thao tác trên kho lưu trữ ZIPNếu FILE là một kho lưu trữ ZIP chứ không phải là một kho lưu trữ SQLite, thì ". archive" và tùy chọn dòng lệnh "-A" vẫn hoạt động. Điều này được thực hiện bằng cách sử dụng phần mở rộng zipfile. Do đó, các lệnh sau gần như tương đương, chỉ khác nhau về định dạng đầu ra Lệnh truyền thống Tương đương sqlite3. exe Lưu trữ Commandunzip. kho lưu trữ zipsqlite3 -Axf. kho lưu trữ zipunzip -l. kho lưu trữ zipsqlite3 -Atvf. zipzip -r kho lưu trữ2. zip dirsqlite3 -Acf archive2. thư mục zip15. 7. SQL được sử dụng để triển khai các hoạt động lưu trữ SQLiteCác lệnh Lưu trữ Lưu trữ SQLite khác nhau được triển khai bằng cách sử dụng các câu lệnh SQL. Các nhà phát triển ứng dụng có thể dễ dàng thêm hỗ trợ đọc và ghi Lưu trữ Lưu trữ SQLite vào các dự án của riêng họ bằng cách chạy SQL thích hợp Để xem những câu lệnh SQL nào được sử dụng để triển khai thao tác Lưu trữ SQLite, hãy thêm tùy chọn --dryrun hoặc -n. Điều này làm cho SQL được hiển thị nhưng ngăn cản việc thực thi SQL Các câu lệnh SQL được sử dụng để triển khai các hoạt động Lưu trữ SQLite sử dụng các phần mở rộng có thể tải khác nhau. Tất cả các tiện ích mở rộng này đều có sẵn trong cây nguồn SQLite trong thư mục con ext/misc/. Các tiện ích mở rộng cần thiết để hỗ trợ Lưu trữ SQLite đầy đủ bao gồm
SQLite cho phép xuất hiện trong câu lệnh SQL ở bất kỳ đâu mà giá trị bằng chữ được cho phép. Các giá trị cho các tham số này được đặt bằng cách sử dụng sqlite3_bind_. () dòng API Các tham số có thể được đặt tên hoặc đặt tên. Tham số không tên là một dấu chấm hỏi đơn ("?"). Các tham số được đặt tên là một "?" . "?15" của "?123") hoặc một trong các ký tự "$", ". ", hoặc "@" theo sau là tên chữ và số (ví dụ:. "$var1", ". xyz", "@bingo") Trình bao dòng lệnh này không gắn kết các tham số chưa đặt tên, nghĩa là chúng sẽ có giá trị là SQL NULL, nhưng các tham số được đặt tên có thể được gán giá trị. Nếu tồn tại một bảng TEMP có tên "sqlite_parameters" với lược đồ như thế này sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>1 Và nếu có một mục trong bảng đó trong đó cột khóa khớp chính xác với tên của tham số (bao gồm cả ký tự đầu "?", "$", ". ", hoặc "@") thì tham số được gán giá trị của cột giá trị. Nếu không có mục nào tồn tại, tham số mặc định là NULL Các ". tham số" tồn tại để đơn giản hóa việc quản lý bảng này. Các ". tham số init" (thường được viết tắt là ". param init") tạo nhiệt độ. bảng sqlite_parameters nếu nó chưa tồn tại. Các ". danh sách param" hiển thị tất cả các mục trong tạm thời. bảng sqlite_parameter. Các ". xóa thông số" lệnh giảm nhiệt độ. bảng sqlite_parameter. Các ". đặt tham số KEY VALUE" và ". param unset KEY" lệnh tạo hoặc xóa các mục từ tạm thời. bảng sqlite_parameter VALUE được chuyển đến ". param set KEY VALUE" có thể là một ký tự SQL hoặc bất kỳ biểu thức hoặc truy vấn SQL nào khác có thể được đánh giá để mang lại một giá trị. Điều này cho phép các giá trị của các loại khác nhau được đặt. Nếu đánh giá đó không thành công, thì VALUE đã cung cấp sẽ được trích dẫn và chèn dưới dạng văn bản. Bởi vì đánh giá ban đầu như vậy có thể thất bại hoặc không tùy thuộc vào nội dung GIÁ TRỊ, cách đáng tin cậy để nhận giá trị văn bản là đặt nó trong dấu ngoặc đơn được bảo vệ khỏi phân tích cú pháp đuôi lệnh được mô tả ở trên. Ví dụ: (trừ khi người ta dự định giá trị -1365) sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>2 Lưu ý rằng dấu ngoặc kép dùng để bảo vệ dấu ngoặc đơn và đảm bảo rằng văn bản được trích dẫn được phân tích thành một đối số nhiệt độ. bảng sqlite_parameters chỉ cung cấp các giá trị cho các tham số trong shell dòng lệnh. nhiệt độ. bảng sqlite_parameter không ảnh hưởng đến các truy vấn được chạy trực tiếp bằng API ngôn ngữ C SQLite. Các ứng dụng riêng lẻ dự kiến sẽ triển khai ràng buộc tham số của riêng chúng. Bạn có thể tìm kiếm "sqlite_parameters" trong mã nguồn shell dòng lệnh để xem cách shell dòng lệnh thực hiện liên kết tham số và sử dụng mã đó làm gợi ý về cách tự triển khai Ghi chú. Lệnh này là thử nghiệm. Nó có thể bị xóa hoặc sửa đổi giao diện theo những cách không tương thích vào một thời điểm nào đó trong tương lai Đối với hầu hết các cơ sở dữ liệu SQL không tầm thường, chìa khóa để thực hiện là tạo các chỉ mục SQL phù hợp. Trong ngữ cảnh này, "các chỉ mục SQL phù hợp" có nghĩa là các chỉ mục khiến các truy vấn mà ứng dụng cần tối ưu hóa chạy nhanh. Các ". Expert" có thể hỗ trợ điều này bằng cách đề xuất các chỉ mục có thể hỗ trợ các truy vấn cụ thể, nếu chúng có trong cơ sở dữ liệu Các ". Expert" được đưa ra đầu tiên, tiếp theo là truy vấn SQL trên một dòng riêng biệt. Ví dụ, xem xét phiên sau sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>3 Ở trên, người dùng tạo lược đồ cơ sở dữ liệu (một bảng duy nhất - "x1") và sau đó sử dụng ". Expert" để phân tích một truy vấn, trong trường hợp này là "CHỌN * TỪ x1 WHERE a=? . Công cụ trình bao khuyến nghị người dùng nên tạo một chỉ mục mới (chỉ mục "x1_idx_000123a7") và đưa ra kế hoạch mà truy vấn sẽ sử dụng ở định dạng KẾ HOẠCH CÂU HỎI GIẢI THÍCH. Sau đó, người dùng tạo một chỉ mục với lược đồ tương đương và chạy lại phân tích trên cùng một truy vấn. Lần này, công cụ trình bao không đề xuất bất kỳ chỉ mục mới nào và đưa ra kế hoạch mà SQLite sẽ sử dụng cho truy vấn với các chỉ mục hiện có Các ". Expert" chấp nhận các tùy chọn sau OptionPurpose‑‑verboseNếu có, xuất báo cáo chi tiết hơn cho từng truy vấn được phân tích. ‑‑sample PERCENTThông số này mặc định là 0, gây ra lỗi ". Expert" để đề xuất các chỉ mục chỉ dựa trên truy vấn và lược đồ cơ sở dữ liệu. Điều này tương tự như cách trình lập kế hoạch truy vấn SQLite chọn chỉ mục cho các truy vấn nếu người dùng chưa chạy lệnh ANALYZE trên cơ sở dữ liệu để tạo thống kê phân phối dữ liệuNếu tùy chọn này được thông qua một đối số khác không, thì ". Expert" tạo thống kê phân phối dữ liệu tương tự cho tất cả các chỉ mục được xem xét dựa trên phần trăm PERCENT của các hàng hiện được lưu trữ trong mỗi bảng cơ sở dữ liệu. Đối với cơ sở dữ liệu có phân phối dữ liệu bất thường, điều này có thể dẫn đến đề xuất chỉ mục tốt hơn, đặc biệt nếu ứng dụng dự định chạy ANALYZE Đối với cơ sở dữ liệu nhỏ và CPU hiện đại, thường không có lý do gì để không vượt qua "--sample 100". Tuy nhiên, việc thu thập số liệu thống kê phân phối dữ liệu có thể tốn kém đối với các bảng cơ sở dữ liệu lớn. Nếu thao tác quá chậm, hãy thử chuyển một giá trị nhỏ hơn cho tùy chọn --sample Chức năng được mô tả trong phần này có thể được tích hợp vào các ứng dụng hoặc công cụ khác bằng cách sử dụng mã mở rộng chuyên gia SQLite Lược đồ cơ sở dữ liệu kết hợp các chức năng tùy chỉnh SQL có sẵn thông qua cơ chế tải mở rộng có thể cần cung cấp đặc biệt để hoạt động với. tính năng chuyên gia. Vì tính năng này sử dụng các kết nối bổ sung để triển khai chức năng của nó nên các chức năng tùy chỉnh đó phải được cung cấp cho các kết nối bổ sung đó. Điều này có thể được thực hiện bằng các tùy chọn tải/sử dụng tiện ích mở rộng được mô tả tại Tự động tải tiện ích mở rộng được liên kết tĩnh và Bắt đầu với phiên bản 3. 37. 0 (27-11-2021), CLI có khả năng giữ nhiều kết nối cơ sở dữ liệu mở cùng một lúc. Chỉ có một kết nối cơ sở dữ liệu đang hoạt động tại một thời điểm. Các kết nối không hoạt động vẫn mở nhưng không hoạt động Sử dụng ". kết nối" dot-lệnh (thường được viết tắt là ". conn") để xem danh sách các kết nối cơ sở dữ liệu và chỉ báo kết nối nào hiện đang hoạt động. Mỗi kết nối cơ sở dữ liệu được xác định bởi một số nguyên từ 0 đến 9. (Có thể có tối đa 10 kết nối mở đồng thời. ) Thay đổi kết nối cơ sở dữ liệu khác, tạo nó nếu nó chưa tồn tại, bằng cách gõ ". conn" theo sau là số của nó. Đóng kết nối cơ sở dữ liệu bằng cách gõ ". conn close N" trong đó N là số kết nối Mặc dù các kết nối cơ sở dữ liệu SQLite bên dưới hoàn toàn độc lập với nhau, nhưng nhiều cài đặt CLI, chẳng hạn như định dạng đầu ra, được chia sẻ trên tất cả các kết nối cơ sở dữ liệu. Do đó, thay đổi kết nối trong một sẽ thay đổi kết nối trong tất cả. Mặt khác, một số chẳng hạn như chỉ ảnh hưởng đến kết nối hiện tại CLI được xây dựng với một số tiện ích mở rộng SQLite không có trong thư viện SQLite. Một vài tính năng bổ sung không được mô tả trong các phần trước, cụ thể là
Có nhiều lệnh dấu chấm khác có sẵn trong trình bao dòng lệnh. xem ". help" để biết danh sách đầy đủ cho bất kỳ phiên bản và bản dựng cụ thể nào của SQLite Một cách để sử dụng sqlite3 trong tập lệnh shell là sử dụng "echo" hoặc "cat" để tạo chuỗi lệnh trong tệp, sau đó gọi sqlite3 trong khi chuyển hướng đầu vào từ tệp lệnh đã tạo. Điều này hoạt động tốt và phù hợp trong nhiều trường hợp. Nhưng để thuận tiện hơn, sqlite3 cho phép nhập một lệnh SQL duy nhất trên dòng lệnh dưới dạng đối số thứ hai sau tên cơ sở dữ liệu. Khi chương trình sqlite3 được khởi chạy với hai đối số, đối số thứ hai được chuyển đến thư viện SQLite để xử lý, kết quả truy vấn được in trên đầu ra tiêu chuẩn ở chế độ danh sách và thoát khỏi chương trình. Cơ chế này được thiết kế để làm cho sqlite3 dễ sử dụng kết hợp với các chương trình như "awk". Ví dụ sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>4 Các lệnh SQLite thường được kết thúc bằng dấu chấm phẩy. Trong CLI, bạn cũng có thể sử dụng từ "GO" (phân biệt chữ hoa chữ thường) hoặc ký tự gạch chéo "/" trên một dòng để kết thúc lệnh. These are used by SQL Server and Oracle, respectively, and are supported by the SQLite CLI for compatibility. Chúng sẽ không hoạt động trong sqlite3_exec(), vì CLI dịch các đầu vào này thành dấu chấm phẩy trước khi chuyển chúng xuống lõi SQLite There are many command-line options available to the CLI. Sử dụng tùy chọn dòng lệnh --help để xem danh sách sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>5 CLI linh hoạt về định dạng tùy chọn dòng lệnh. Cho phép một hoặc hai ký tự "-" ở đầu. Do đó "-box" và "--box" có nghĩa giống nhau. Các tùy chọn dòng lệnh được xử lý từ trái sang phải. Do đó, tùy chọn "--box" sẽ ghi đè tùy chọn "--quote" trước đó Hầu hết các tùy chọn dòng lệnh đều tự giải thích, nhưng một số thảo luận bổ sung xứng đáng bên dưới 23. 1. Tùy chọn dòng lệnh --safeTùy chọn dòng lệnh --safe cố gắng tắt tất cả các tính năng của CLI có thể gây ra bất kỳ thay đổi nào đối với máy tính chủ ngoài các thay đổi đối với tệp cơ sở dữ liệu cụ thể có tên trên dòng lệnh. Ý tưởng là nếu bạn nhận được một tập lệnh SQL lớn từ một nguồn không xác định hoặc không đáng tin cậy, bạn có thể chạy tập lệnh đó để xem nó làm gì mà không gặp rủi ro bị khai thác bằng cách sử dụng tùy chọn --safe. Tùy chọn --safe vô hiệu hóa (trong số những thứ khác)
Về cơ bản, bất kỳ tính năng nào của CLI đọc hoặc ghi từ một tệp trên đĩa ngoài tệp cơ sở dữ liệu chính đều bị tắt 23. 1. 1. Bỏ qua các hạn chế --safe cho các lệnh cụ thểNếu tùy chọn "--nonce NONCE" cũng được bao gồm trên dòng lệnh, đối với một số chuỗi NONCE lớn và tùy ý, thì ". lệnh nonce NONCE" (với cùng một chuỗi nonce lớn) sẽ cho phép câu lệnh SQL tiếp theo hoặc lệnh dấu chấm bỏ qua các giới hạn --safe Giả sử bạn muốn chạy một tập lệnh đáng ngờ và tập lệnh đó yêu cầu một hoặc hai tính năng --safe thường tắt. Ví dụ: giả sử nó cần ĐÍNH KÈM thêm một cơ sở dữ liệu. Hoặc giả sử tập lệnh cần tải một tiện ích mở rộng cụ thể. Điều này có thể được thực hiện bằng cách đặt trước câu lệnh ATTACH (đã được kiểm tra cẩn thận) hoặc ". load" với một "thích hợp. nonce" và cung cấp cùng một giá trị nonce bằng cách sử dụng tùy chọn dòng lệnh "--nonce". Các lệnh cụ thể đó sau đó sẽ được phép thực thi bình thường, nhưng tất cả các lệnh không an toàn khác sẽ vẫn bị hạn chế Việc sử dụng ". nonce" nguy hiểm theo nghĩa là một lỗi có thể cho phép một tập lệnh thù địch làm hỏng hệ thống của bạn. Vì vậy, sử dụng ". nonce" một cách cẩn thận, tiết kiệm và là phương sách cuối cùng khi không có cách nào khác để chạy tập lệnh trong chế độ --safe Để biên dịch trình bao dòng lệnh trên các hệ thống unix và trên Windows bằng MinGW, lệnh cấu hình-tạo thông thường sẽ hoạt động Việc tạo cấu hình hoạt động cho dù bạn đang xây dựng từ các nguồn chính tắc từ cây nguồn hay từ một gói hợp nhất. Có ít phụ thuộc. Khi xây dựng từ các nguồn chính tắc, cần có một tclsh đang hoạt động. Nếu sử dụng gói hợp nhất, tất cả công việc tiền xử lý thường được thực hiện bởi tclsh sẽ được thực hiện và chỉ cần các công cụ xây dựng thông thường Cần có thư viện nén zlib hoạt động để hoạt động Trên Windows với MSVC, hãy sử dụng nmake với Makefile. msc Để hoạt động chính xác của , hãy tạo một bản sao của mã nguồn zlib vào thư mục con compat/zlib của cây nguồn và biên dịch theo cách này sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>6 24. 1. Tự xây dựngMã nguồn của giao diện dòng lệnh sqlite3 nằm trong một tệp duy nhất có tên "shell. c". cái vỏ. tệp nguồn c được tạo từ các nguồn khác, nhưng hầu hết mã cho shell. c có thể được tìm thấy trong src/shell. c. TRONG. (Tái tạo vỏ. c bằng cách gõ "make shell. c" từ cây nguồn chính tắc. ) Biên dịch vỏ. c (cùng với mã nguồn thư viện sqlite3) để tạo tệp thực thi. Ví dụ sqlite> .mode list sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite>7 Các tùy chọn thời gian biên dịch bổ sung sau đây được khuyến nghị để cung cấp trình bao dòng lệnh đầy đủ tính năng |