當前位置:首頁 » 編程軟體 » sqlite腳本

sqlite腳本

發布時間: 2023-03-19 20:27:40

❶ shell腳本中如何連接sqlite,原先的腳本是將數據傳送到syslog伺服器里,現在想改成記錄到sqlite資料庫中,

不需要像其他的資料庫那麼復雜,在linux系統中,sqlite編譯好就是一個可執行程序了,你建一個資料庫,直接就可以操作,比如:在/usr/config下建一個資料庫test.db,然後,直接這樣:
sqlite3 /usr/config/test.db "select * from test;" 跟上SQL語句就行了!

❷ sqlite的幾個常用方法

SQLite庫包含一個名字叫做sqlite3的命令行,它可以讓用戶手工輸入並執行面向SQLite資料庫的SQL命令。本文檔提供一個樣使用sqlite3的簡要說明。

開始

啟動sqlite3程序,僅僅需要敲入帶有SQLite資料庫名字的"sqlite3"命令即可。如果文件不存粗笑在,則創建一個新的(資料庫)文件。然後 sqlite3程序將提示你輸入SQL。敲入SQL語句(以分號「;」結束),敲回車鍵之後,SQL語句就會執行。

例如,創建一個包含一個表"tb11"名字為"ex1"的SQLite資料庫,你可以這樣做:

$sqlite3 ex1
SQLite version 3.3.17
Enter ".help" for instructions
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!', 10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>

你可以通過敲你所用系統的文件結束符(通常是Ctrl + D)或者中斷字元(通常是Ctrl + C)。來終止sqlite3程序。確定你在每個SQL語句結冊笑束敲入分號!sqlite3程序通過查找分號來決定一個SQL語句的結束。如果你省略分號,sqlite3將給你一個連續的命令提示符並等你給當前的SQL命令添加更多的文字。這個特點讓你輸入多行的多個SQL語句,例如:

sqlite> create table tbl2(
...> f1 varchar(30) primary key,
...> f2 text,
...> f3 real
...> );
sqlite>

題外話:查詢岩姿含SQLITE_MASTER表

SQLite資料庫的框架被保存在一個名叫"sqlite_master"的特殊的表中。你可以像查詢其它表一樣通過執行「SELECT」查詢這個特殊的表。例如:

$ sqlite3 ex1
SQlite vresion 3.3.10
Enter ".help" for instructions
sqlite> select * from sqlite_master;
type = table
name = tbl1
tbl_name = tbl1
rootpage = 3
sql = create table tbl1(one varchar(10), two smallint)
sqlite>

但你不能在sqlite_master表中執行諸如DROP TABLE, UPDATE, INSERT 或者DELETE命令。sqlite_master表在你創建、刪除和索引資料庫時自動更新這個表。你不能手工更改sqlite_master表。

TEMPORARY表的結構沒有存儲在"sqlite_master"表中,由於TEMPORARY表對應用是不可見的,而不是應用程序創建這個表。 TEMPORARY表結構被存儲在另外一個名叫"sqlite_temp_master"的特定的表中。"sqlite_temp_master"表是臨時表自身。

sqlite3的特殊命令

大多數候,sqlite3讀入輸入行,並把它們傳遞到SQLite庫中去運行。但是如果輸入行以一個點(「.」)開始,那麼這行將被sqlite3程序自己截取並解釋。這些「點命令」通常被用來改變查詢輸出的格式,或者執行鞭個預封包(預定義prepackaged)的查詢語句。

你可以在任何時候輸入「.help」,列出可用的點命令。例如

sqlite> .help
.l ON|OFF Stop after hitting an error. Default OFF
.databases List names and files of attached databases
.mp ?TABLE? ... Dump the database in an SQL text format
.echo ON|OFF Turn command echo on or off
.exit Exit this program
.explain ON|OFF Turn output mode suitable for EXPLAIN on or off.
.header(s) ON|OFF Turn display of headers on or off
.help Show this message
.import FILE TABLE Import data from FILE into TABLE
.indices TABLE Show names of all indices on TABLE
.load FILE ?ENTRY? Load an extension library
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML <table> code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values
tcl TCL list elements
.nullvalue STRING Print STRING in place of NULL values
.output FILENAME Send output to FILENAME
.output stdout Send output to the screen
.prompt MAIN CONTINUE Replace the standard prompts
.quit Exit this program
.read FILENAME Execute SQL in FILENAME
.schema ?TABLE? Show the CREATE statements
.separator STRING Change separator used by output mode and .import
.show Show the current values for various settings
.tables ?PATTERN? List names of tables matching a LIKE pattern
.timeout MS Try opening locked tables for MS milliseconds
.width NUM NUM ... Set column widths for "column" mode
sqlite>

改變輸出格式

sqlite3程序可以以八種不同的格式顯示一個查詢的結果:"csv", "列", "html", "插入", "行", "製表"和"tcl"。你可以用".mode"點命令在這些輸出格式之間切換。

默認的輸出格式是「列表」。在列表模式下,每條查詢結果記錄被寫在一行中並且每列之間以一個字元串分割符隔開。默認的分隔符是一個管道符號(「|」)。列表符號在當你輸出查詢結果到另外一個符加處理的程序(如AWK)中去是尤為有用。

sqlite> .mode list
sqlite> select * from tbl1;
hello|10
goodbye|20
sqlite>

你可以用「.separator」點命令來改變分界符。例如,為了把分割符改為一個逗號和一個空格,你可以這樣做:

sqlite> .separator ", "
sqlite> select * from tbl1;
hello, 10
goodbye, 20
sqlite>

在「line"模式下,每一個位於條記錄中的列在它自己那行顯示。每行由列名、一個等號和列數據組成。下一條記錄以一個空行隔開。這是一個行模式輸出的例子:

sqlite> .mode line
sqlite> select * from tbl1;
one = hello
two = 10

one = goodbye
two = 20
sqlite>

在列模式下,每條記錄在一個單獨的行中以數據列對齊的方式顯示。列如:

sqlite> .mode column
sqlite> select * from tbl1;
one two
---------- ----------
hello 10
goodbye 20
sqlite>

在默認的情況下,每列至少10個字元寬。太寬的數據將被截取。你可以用「.width」命令來調整列寬。如下所示:

sqlite> .width 12 6
sqlite> select * from tbl1;
one two
------------ ------
hello 10
goodbye 20
sqlite>

上面例子中".width"命令設置第一列寬為12第二列寬為6。其它的列寬不變。你可以指定與你查詢結果需要的列數一樣多的「.width」參數。

如果你指定一列寬為0,那麼這個列寬將自動以下面三個數字中的最大值做為列寬:10、表頭寬度和最寬的數據列的寬度。這可以讓列自動調整寬度。每列的默認設置為自動調整的0值。

出現在輸出開頭兩行的列標示可以用".header"點命令關閉。在上面的例子中,列標示是打開的。可以用下面的方法關閉列標示:

sqlite> .header off
sqlite> select * from tbl1;
hello 10
goodbye 20
sqlite>

另外一個有用的輸出模式是"insert"。在插入模式下,被子格式化為看起來像SQL INSERT語句的樣式。你可以用插入模式來產生文件(便於)以後用於不同資料庫的輸入。

當指定插入模式時,你必須給定一個特定參數就是要插入的表名。例如:

sqlite> .mode insert new_table
sqlite> select * from tbl1;
INSERT INTO 'new_table' VALUES('hello',10);
INSERT INTO 'new_table' VALUES('goodbye',20);
sqlite>

最新的輸出格式是「html」。在這種模式下,sqlite3把查詢的結果寫做XHTML表。開始的<TABLE>和結束的</TABLE>(標記)沒有寫出,但有<TR>、<TH>和<TD>等分界符。html輸出對 CGI來說是相當有用地。

把結果寫到文件中

默認情況下,sqlte3把結送到標准輸出。你可以用「.output」命令改變它。只須把輸出文件名做為.output命令的輸出參數然後所有後續查詢結果將被寫到那個文件中。用「.output stdout」再一次改為標准輸出。例如:

sqlite> .mode list
sqlite> .separator |
sqlite> .output test_file_1.txt
sqlite> select * from tbl1;
sqlite> .exit
$ cat test_file_1.txt
hello|10
goodbye|20
$

查詢資料庫結構

sqlite3程序提供幾個有用的用於查詢資料庫結構的快捷命令。這些不是不可以用別的方式來實現。這些命令僅僅是一個快捷方式而已。

例如,為了查看資料庫的表列表,你可以敲入「.tables」。

sqlite> .tables
tbl1
tbl2
sqlite>

「.tables」命令相似於設置列表模式然後執行接下來的查詢:

SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1事實上,你可以查看sqlite3的源代碼(可以在源文件樹的src/shell.c中),你可找到上面的具體的查詢。「.indices」命令作用類似的方式是列出特定表的所有的索引。「.indics」命令須一個參數即所要索引表的表名。最後,但不是至少,是「.schema」命令。不帶任何參數,「.schema」命令顯示原始的用於創建當前資料庫的CREATE TABLE和CREATE INDEX語句。如果你給".schema"命令一個表名,它顯示原始的創建該表和它所有索引的CREATE語句。我們可以:sqlite> .schemacreate table tbl1(one varchar(10), two smallint)CREATE TABLE tbl2 ( f1 varchar(30) primary key, f2 text, f3 real)sqlite> .schema tbl2CREATE TABLE tbl2 ( f1 varchar(30) primary key, f2 text, f3 real)sqlite> ".schema"命令可以用設置列表然後執行以下查詢來實現:

SELECT sql FROM
(SELECT * FROM sqlite_master UNION ALL
SELECT * FROM sqlite_temp_master)
WHERE type!='meta'
ORDER BY tbl_name, type DESC, name

.databases 列出資料庫文件名
.tables ?PATTERN? 列出?PATTERN?匹配的表名
.import FILE TABLE 將文件中的數據導入的文件中
.mp ?TABLE? 生成形成資料庫表的SQL腳本
.output FILENAME 將輸出導入到指定的文件中
.output stdout 將輸出列印到屏幕
.mode MODE ?TABLE? 設置數據輸出模式(csv,html,tcl…
.nullvalue STRING 用指定的串代替輸出的NULL串
.read FILENAME 執行指定文件中的SQL語句
.schema ?TABLE? 列印創建資料庫表的SQL語句
.separator STRING 用指定的字元串代替欄位分隔符
.show 列印所有SQLite環境變數的設置
.quit 退出命令行介面

❸ 如何將 sqlite 資料庫 表 的 數據 導出 成txt文件

數據導入的來源可以是其他應用程序的輸出,也可以是指定的文本文件,這里採用指定的文本文件。

1. 首先,確定導入的數據源,這里是待導入的,按固定格式的文本文件。
2. 然後,依照導入的文件格式,確定想導入的目標數據表,這個數據表如果沒有,可以依照待導入的文本文件格式,創建一個相對應的數據表。
3. 最後,執行.import命令,將文本文件中數據導入數據表中。

1. 數據源

在/home/ywx/yu/sqlite/下,創建一個名為data.txt的文本文件,並輸入以下數據,數據之間採用逗號隔開

id,name,age,address,hobby

1,tom,24,beijing,football
2,liu,27,heibei,fotball
3,jim,26,shandong,football
4,han,28,beijing,football
5,meng,25,beijing,tennis

2. 目標數據表

這里創建一張目標數據表,通過分析文本格式,這里需要3個欄位,分別是id,name,age。但在數據類型選擇時存在一個問題,id和age在文本文件
中是按字元型存儲的,而其實際在數據表中,最好要表示成整型,因此這里要涉及到一個字元型數據類型向整型數據類型轉換的問題。
在創建表時,將id和age的類型定義為整型,進行強制轉換,如果在數據導入時,發現轉換失敗,可以將id和age類型改為文本型。

[email protected]:~/yu/sqlite$ sqlite3 test.db

SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
sqlite>

3. 導入命令

sqlite> .separator ","

sqlite> .import data.txt data_txt_table
sqlite> select * from data_txt_table;
id,name,age,address,hobby
1,tom,24,beijing,football
2,liu,27,heibei,fotball
3,jim,26,shandong,football
4,han,28,beijing,football
5,meng,25,beijing,tennis
sqlite>

這里需要注意一點,在數據導入之前,先要根據數據的具體分的格式,設置數據導入的間隔符,例如在文本數據中採用的是『,』來間隔數據,因此應先調用.seperator 設置『,』 為間隔符。

2. 查看命令

.schema 命令來查看指定的數據表的結構

sqlite> .schema data_txt_table

CREATE TABLE data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
sqlite>

2. .tables 命令用來查看當前資料庫的所有數據表

sqlite> .tables

data_txt_table
sqlite>

3. databases 命令用來查看當前所有資料庫

sqlite> .databases

seq name file
--- --------------- ----------------------------------------------------------
0 main /home/ywx/yu/sqlite/test.db
1 temp

3. 數據導出

數據導出也是一個常用到的操作,可以將指定表中的數據導出成SQL腳本,供其他資料庫使用,還可以將指定的數據表中的數據完整定位到標准輸出,也可以將指定資料庫中的數據完整的導入到另一個指定資料庫等,

1. 導出成指定的SQL腳本
將sqlite中指定的數據表以SQL創建腳本的形式導出,具體命令

[email protected]:~/yu/sqlite$ sqlite3 test.db

SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .output data.sql
sqlite> .mp
sqlite>

[email protected]:~/yu/sqlite$ ll

總計 16
drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:15 ./
drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
-rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
-rw-r--r-- 1 ywx ywx 2048 2011-08-13 22:44 test.db

2. 資料庫導出

data.sql test.db

[email protected]:~/yu/sqlite$ sqlite3 test.db ".mp" | sqlite3 test2.db
[email protected]:~/yu/sqlite$ ll
總計 20
drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:20 ./
drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
-rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
-rw-r--r-- 1 ywx ywx 2048 2011-08-13 23:20 test2.db
-rw-r--r-- 1 ywx ywx 2048 2011-08-13 22:44 test.db

3. 其他格式,如:htm格式輸出

[email protected]:~/yu/sqlite$ sqlite3 -html test.db "select * from data_txt_table" > liu.htm

[email protected]:~/yu/sqlite$ ls
data.sql liu.htm test2.db test.db

❹ sqlite3: 用腳本批量導出sqlite資料庫中的表格數據

應用場景:kobas3.0的注釋庫中,余謹有很多關系對應豎物表。如果你單獨把它提取出來,用來做自己的注釋也是不錯的。

假設你需要nta.db中的表格信息如何做?
第一步:查看這個文件中有哪些表格。

第二步:在txt文本中豎纖基編輯好腳本信息,最後復制粘貼到shell中運行即可。

類似的內容也可以這樣改。

❺ 如何編譯SQLite-How To Compile SQLite

SQLite是ANSI-C的源代碼。在使用之前必須要編譯成機器碼。這篇文章是用於各種編譯SQLite方法的指南。

這篇文章不包含編譯SQLite的每個步驟的反饋,那樣可能會困難因為每種開發場景都不同。所以這篇文章描述和闡述了編譯Sqlite的原則。典型的編譯命令已經作為例子提供了,以期望應用開發者能夠使用這些例子作為完成他們自己定製的編譯過程的的一個指南。換句話說,這篇文章提供了想法和見解,而不是交鑰匙的解決方法。

融合VS單獨源文件

Sqlite是由超過一百個c源碼文件以及眾多的目錄下的腳本構建的。Sqlite的實現是純粹的ANSI-C,但是許多c語言源代碼文件是由輔助的C程序生成或者轉換來的,並且AWK,SED和TCL腳本會融合到完成的sqlite庫中。對Sqlite構建需要的C程序和轉換和創建C語言源碼是一個復雜的過程。

為了簡化這些,sqlite也通過一個預打包的合並後的源碼文件:sqlite3.c。這個合並文件是一個ANSI-C源碼實現整個SQLite庫的唯一文件。合並後的文件更容易處理。所有的東西都包含在這一個文件里,所以很容易進入一個更大的C或者C++程序的源碼樹。所有的代碼生成和轉換步驟都已經實現了,因此沒有輔助的C程序需要去配置和變異,也沒有腳本需要去運行。並且,因此所有哭都包含在一個翻譯單元,編譯器可以做更多高級的優化從而提升5%到10%的性能。因為這些原因,融合後的源碼文件sqlite3.c對所有程序來講都是值得推薦的。

推薦所有的應用程序使用融合文件。

直接從單獨的源碼文件中構建sqlite當然可以,但是並不推薦。對一些特殊的應用程序,可能需要修改構建程序去處理使用那些從網站上下載的預構建的源碼文件不能完成的情況。對於這些情況,推薦構建和使用一個定製過的合並文件。換句話說,即使一個工程需要以單獨的源碼文件構建sqlite,仍然推薦使用一個融合後的源碼文件作為一個中間步驟。

編譯命令行介面(CLI)

構建命令行介面需要三個源碼文件:

sqlite3.c:Sqlite融合的源碼文件

sqlite3.h:匹配sqlite3.c以及定義sqlite的c語言介面的頭文件

shell.c:命令行介面程序本身。這個c源碼文件包含一個main()的常式和每輪循環的用戶輸入的提示符並將輸入傳給sqlite資料庫引擎用於處理。

所有的上述源碼的三個文件都被包含在下載頁面的amalgamation tarball中。

為了構建CLI,簡單的將這三個文件放置在相同的目錄下然後一起編譯他們。用MSVC:
cl shell.c sqlite3.c -Fesqlite3.exe

在unix系統上(或者在windows上用cygwin或者mingw+msys)典型的命令會有些像這樣:
gcc shell.c sqlite3.c -lpthread -ldl

為了SQLite線程安全,需要pthreads庫。但是因為CLI是一個單線程的,我們可以指示SQLite構建一個非線程安全的庫並因此護綠pthreads庫:
gcc -DSQLITE_THREADSAFE=0 shell.c sqlite3.c -ldl

-ldl庫是在支持動態裝載時需要,例如sqlite3_load_extension() 介面和load_extension()
SQL function。如果這些特性都不要求,那麼我們也可以使用SQLITE_OMIT_LOAD_EXTENSION編譯時間選項忽略他們。
gcc -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION shell.c sqlite3.c

有人可能想要提供其他的編譯時間選項(compile-time options),例如SQLITE_ENABLE_FTS3去全文本搜索或者SQLITE_ENABLE_RTREE用於R*樹搜索引擎擴展。而有人將正常指定一些編譯優化開關。(預編譯的CLI可以從選擇sqlite網站上使用「-Os」下載下來)有無數種可能的變數在這里。

關鍵點在這里:構建CLI需要編譯一起兩個C語言文件。shell.c文件包含入口的定義和用戶輸入的loop,而sqlite融合文件sqlite3.c包含完整的sqlite庫的實現。

編譯TCL介面

sqlite的tcl介面是一個小的模塊被添加到一般的融合文件中。結果是一個新的融合後的源碼文件,稱之為「tclsqlite3.c」。這個源碼文件是生成一個可以使用TCL

load命令去載入到一個標準的tclsh或者wish中,或者隨著sqlite構建成功生成一個單獨唯一的tclsh的共享庫所需要的。一個tcl的融合的副本被包含在下載頁的TEA
tarball中作為一個文件。

為了生成一個linux上的sqlite的TCL-loadable庫,下面的命令需要滿足:
gcc -o libtclsqlite3.so -shared tclsqlite3.c -lpthread -ldl -ltcl

不幸的是構建Mac OS X 和 Windows的共享庫並不是如此簡單。對於這些平台最好使用包含在TEA tarball中的configure腳本和makefile.

為了生成一個單獨的tclsh,可以用於sqlite靜態鏈接,使用如下的編譯器調用:
gcc -DTCLSH=1 tclsqlite3.c -ltcl -lpthread -ldl -lz -lm

這里的技巧是-DTCLSH=1選項。sqlite的TCL介面模塊包含一個main的過程,用於初始化一個TCL解釋器並在以-DTCLSH=1編譯後進入到一個命令行loop。上述命令可以工作在Linux和Mac
OS X,雖然有時可能需要依賴於平台調整庫選項以及編譯的TCL的哪一個版本。

構建融合文件

下載頁提供的sqlite融合文件的版本對大多數用戶來說是足夠的。然而,一些工程可能想要或者需要構建他們自己的融合文件。一個常見的構建一個定製的融合文件的理由是為了使用特定的compile-time options來定製sqlite庫。回想sqlite融合文件中包含了許多C代碼由輔助程序和腳本生成。許多的編譯時間選項影響這一成聖代碼而且必須在融合文件組裝前提供給代碼生成器。這一系列必須傳給代碼生成器的編譯時間相關的選項會使得sqlite的發布版本各不相同,但是在寫這邊文章的時候,代碼生成器需要知道的這組選項包括:

SQLITE_ENABLE_UPDATE_DELETE_LIMIT
SQLITE_OMIT_ALTERTABLE
SQLITE_OMIT_ANALYZE
SQLITE_OMIT_ATTACH
SQLITE_OMIT_AUTOINCREMENT
SQLITE_OMIT_CAST
SQLITE_OMIT_COMPOUND_SELECT
SQLITE_OMIT_EXPLAIN
SQLITE_OMIT_FOREIGN_KEY
SQLITE_OMIT_PRAGMA
SQLITE_OMIT_REINDEX
SQLITE_OMIT_SUBQUERY
SQLITE_OMIT_TEMPDB
SQLITE_OMIT_TRIGGER
SQLITE_OMIT_VACUUM
SQLITE_OMIT_VIEW
SQLITE_OMIT_VIRTUALTABLE

為了構建一個定製的融合文件,先下載原始的獨立源碼文件到一個unix或者類unix開發平台。確定獲取的原始源碼文件不是「預編譯過的源文件」。任何人都可以通過到下載頁或者直接從configuration management system.獲取完整的一套原始源碼文件。

假設sqlite源碼樹被存在一個名為「sqlite」的目錄下。計劃構建一個平行目錄下的名為「bld」的融合文件。首先通過運行sqlite源碼樹種的configure腳本運行或者通過製作一份源碼樹頂層的的makfile模板的一份,來構建一個合適的makefile.然後手動編輯這個Makfile去包含需要的編譯時間相關的選項。最終運行:
make sqlite3.c

在windows上使用MSVC:
nmake /f Makefile.msc sqlite3.c

sqlite3.c的make
target會自動構造一般的「sqlite3.c」合並的源碼文件,以及它的頭文件「sqlite3.h」,和包含TCL介面的融合源碼文件「tclsqlite3.c」。之後,需要的文件可以被拷貝到文件目錄下然後根據上述勾勒的過程編譯。

構建一個windows的動態鏈接庫DLL

為了在windows構建一個sqlite的dll使用,首先獲取對應的融合過的源碼文件,sqlit3.c和sqlite.h。這些可以從SQLite website上下載或者和上述告知的一樣去定製生成。

使用工作目錄下的源碼文件,一個dll可以在msvc中使用如下命令生成:
cl sqlite3.c -link -dll -out:sqlite3.dll

上述命令需要運行在msvc的MSVC Native Tools Command
Prompt.如何你已經在機器上安裝了msvc,你可能有多個版本的這種命令提示符,針對於x86和x64的自帶構建的,或者交叉編譯到ARM的。依賴要求的DLL去使用對應合適的命令提示符工具。

如果使用MinGW編譯器,命令是這樣的:
gcc -shared sqlite3.c -o sqlite3.dll

注意MinGW只生成32位的dll。另有一個分開的MinGW64工程可以用來生成64位的dll。可以推斷其命令行語法是類似的。需要注意的是最近的MSVC的版本生成的DLLs可能不能工作到WinXP或者更早版本的windows上。因此為了最大限度的兼容你的生成的dll,推薦MinGW。一個好的經驗法則是使用MinGW去生成32位的dlls,使用msvc去生成64位的dlls。

❻ 求高手編寫Shell腳本,實現調用Linux下的SQLITE,導入CSV文件的功能

O(∩_∩)O~
呵呵,哥們兒,還是原來的問題哦。
看樣子問題還是沒有解決哦,其實完全可以在原來的問題那裡追問嘛~~
因為沒有你的運行環境,當時翻譯成shell腳本完全是照著原來bat文件的格式按字面意思來的。
可以提供你要導入的文件和資料庫嗎?不方便的話提供個例子也可以(主要為了說明格式)。
盡管我對sqlite不是很熟悉,但是應該可以盡量幫幫幫忙吧。

❼ 如何把sqlite3指令寫到linux shell腳本語言中

man sqlite3
-init file
Read and execute commands from file , which can contain a mix of SQL statements and meta-commands.
只能把sqlite3指令寫到一個文件中,然後用sqlite3 -init file這樣去調了

❽ sqlite資料庫如何導入導出資料庫腳本

說的詳細點啊???

❾ sqlite expert怎麼寫sql腳本

是導出.db中的數據嗎?多種資料庫文件的擴展名為.db。
SQLite Database Browser.exe 這個就能導出.db中的數據和結構的sql語句。不少 SQLite軟體有導出導入功能。

熱點內容
MDE演算法 發布:2023-03-24 10:43:11 瀏覽:546
音樂播放器資料庫 發布:2023-03-24 10:41:49 瀏覽:616
base64上傳文件 發布:2023-03-24 10:39:25 瀏覽:147
mac淘寶無法上傳圖片 發布:2023-03-24 10:33:33 瀏覽:927
鐵威馬網路存儲器 發布:2023-03-24 10:32:51 瀏覽:952
如何訪問變數 發布:2023-03-24 10:32:41 瀏覽:315
高速電車電池怎麼配置 發布:2023-03-24 10:30:52 瀏覽:350
湖北增值稅軟體伺服器地址雲空間 發布:2023-03-24 10:27:08 瀏覽:357
什麼安卓機耐電高像素高 發布:2023-03-24 10:12:15 瀏覽:468
freemodbus源碼 發布:2023-03-24 10:08:06 瀏覽:105