国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQLite > 正文

使用TCL 進行SQLite開發

2024-09-07 00:09:58
字體:
來源:轉載
供稿:網友

Programming sqlite with Tcl

2005/10/26 by coopermaa

Summary

什麼樣的資料庫稱得上是「小巧(small)、可內嵌(embeddable)而且支援 SQL 查詢語言的資料庫」?

答案是:sqlite,一套 Open Source 的關聯式資料庫。

sqlite 是一個「麻雀雖小卻五臟俱全」的資料庫,因為 sqlite 是一個體積僅僅 250KB 左右的 C Library,很適合內嵌的應用。sqlite 支援 SQL92 Standard,而且程式介面非常簡單,標準的程式介面除了 C 語言外,還有 Tcl 語言(其他語言也有支援,請上網查詢)。

「簡單易學,而且可嵌入應用程式裏」,這不也正是 Tcl 的特性嗎?所以,我覺得 Tcl 和 sqlite 實在是天生一對。

這份文件,是為了想以 Tcl sqlite 寫資料庫 AP 的 Tclers 而整理的。我希望,這篇可以幫助你迅速上手學會 sqlite,讓你的程式,搖身一變,成為資料庫應用程式。我假設你熟悉 Tcl,修過資料庫系統課程,知道資料表正規化的原理和 SQL Statements(Select, Insert Into, Update, Delete, Create Table, Drop Table 等 Statements)。

Tcl sqlite 五分鐘上手

六分鐘護一生,要讓 Tcl 和 sqlite 牽起手,從此快樂生活,只要五分鐘!不信的話,您現在可自個兒計算一下。

Opening and Closing database

要使用 sqlite 資料庫,你唯一的任務就是要記住 sqlite 這一個指令。看個例子:

這個範例會開啟 scores.db 這個資料庫檔,日後程式要存取 scores.db 的內容,全靠 db 這個新產生出來的指令,利用它來執行 SQL Statement 的工作(Select, Insert Into, Update, Delete, Create Table, Drop Table 等 SQL Statements),我們下一段就會看到一些範例。

要閉關資料庫,也是透過 db 指令:

db close ;# this will close scores.db

Executing SQL Statement

所有你想執行的 SQL Statement,全部丟給 eval method 就對了!

例如,我們要在 scores.db 資料庫建一張 scores table,只要將 CREATE TABLE 指令,丟給 db eval 去執行:

db eval {
CREATE TABLE scores (
id TEXT PRIMARY KEY,
name TEXT,
chinese NUMERIC,
english NUMERIC,
math NUMERIC
)
}

利用 Insert Into 指令,丟個幾筆資料到 scores table:

不小心把分數計錯了,得用 UPDATE 指令,把人家的分數更新回正確的才行:

我們在寫 Tcl Application 時,工作就是要組出正確的 SQL Statement,好丟給 db eval 去執行。這時怎麼組出正確的字串、引號有沒有配對正確,就是一件需要細心處理的事情:

有時候,你得祭出 Transaction 這個法寶,讓自己的程式看起來高竿一點,唔,我是說「讓一系列的資料庫操作(a sequence of database operations),保證它們全部執行,否則,只要其中一步有錯,就回復到原始狀態(Rollback)」 :

eval method 可以一次執行多個 SQL Statements,只要每個 SQL Statement 之間以分號隔開,如範例所示。

Fetching Records From Database

寫資料庫 AP,最常用到的指令,應該非 SELECT 指令莫屬了。

要處理 SELECT 指令傳回的資料,最簡單的形式是:

它會將結果按欄位順序,組成一個 list 傳回:

A0001 coopermaa 100 100 100

第二種形式是這樣:

上列 Script 執行後,SELECT 指令所篩選出的每一筆記錄,都會放進 data 陣列裏,然後每筆記錄都會執行一次 parray data 這行指令印出陣列的內容。 請看這段 Script 的輸出:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富平县| 大埔县| 石渠县| 文山县| 德昌县| 宣化县| 黔东| 常州市| 镇宁| 洛隆县| 额尔古纳市| 信阳市| 盈江县| 靖西县| 贡觉县| 吉安县| 文登市| 东山县| 张家口市| 嘉禾县| 南安市| 喀喇沁旗| 集安市| 九寨沟县| 杨浦区| 万山特区| 北京市| 哈尔滨市| 绥化市| 修水县| 巴东县| 会泽县| 章丘市| 额济纳旗| 河东区| 闸北区| 遂溪县| 金塔县| 昆山市| 张北县| 秦安县|