SQLite學習筆記

2021-06-16 13:09:45 字數 2649 閱讀 8922

官方站點:

從**的download頁面獲取

download.html

sqlite-amalgamation-3_6_22.zip是sqlite的windows下原始碼檔案 

sqlite-3_6_22.zip

sqlitedll-3_6_22.zip

在sqlite中, 表示式"a between b and c"等於表示式 "a >= b and a <= c",在比較表示式時,a可以是具有任何親和性

sqlite把表示式 "a in (x, y, z)" 和 "a = z or a = y or a = z"視為相等.

sqlite3 d:\project\syncml\lib\debug\atsync.db

如果不往資料庫裡面新增任何的表,這個資料庫等於沒有建立,不會在硬碟上產生任何檔案,如果資料庫已經存在,則會開啟這個資料庫

create table student(name varchar(10), age smallint);

insert into student values('張三', 20);

lib /def:sqlite3.def /machine:ix86

也就是sqlite3.exe應用程式小工具的版本號

方法一:進入sqlite3.exe所在目錄,在命令列執行如下命令

sqlite3 –version

方法二:

select sqlite_version();

sql 標準規定,在字串中,單引號需要使用逃逸字元,即在一行中使用兩個單引號

vacuum;

sqlite 有有限地 alter table 支援。你可以使用它來在表的末尾增加一列,可更改表的名稱。 如果需要對錶結構做更複雜的改變,則必須重新建表。 重建時可以先將已存在的資料放到乙個臨時表中,刪除原表, 建立新錶,然後將資料從臨時表中複製回來。

如,假設有乙個 t1 表,其中有 "a", "b", "c" 三列, 如果要刪除列 c ,以下過程描述如何做:

開始事物處理

begin transaction;

建立臨時**t1-backup

create temporary table t1_backup(a,b);

將資料庫表t1中的所有資料拷貝到表t1-backup中

insert into t1_backup select a,b from t1;

刪除**t1

drop table t1;

建立**t1

create table t1(a,b);

將資料庫表t1-backup中的所有資料拷貝到表t1中

insert into t1 select a,b from t1_backup;

刪除備份**t1-backup

drop table t1_backup;

事物提交

commit;

pragma  encoding;

十八.sqlite支援哪些資料型別些?

null 值為null

integer 值為帶符號的整型,根據類別用1,2,3,4,6,8位元組儲存

real 值為浮點型,8位元組儲存 

text 值為text字串,使用資料庫編碼(utf-8, utf-16be or utf-16-le)儲存

blob 值為二進位制資料,具體看實際輸入

但實際上,sqlite3也接受如下的資料型別:

smallint  16 位元的整數

interger  32 位元的整數

decimal(p,s)  p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值    ,s是指小數點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。

float   32位元的實數。

double   64位元的實數。

char(n)   n 長度的字串,n不能超過 254。

varchar(n)  長度不固定且其最大長度為 n 的字串,n不能超過 4000。

graphic(n)  和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。   這個形態是為了支援兩個字元長度的字型,例如中文字。

vargraphic(n)  可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。

date   包含了 年份、月份、日期。

time   包含了 小時、分鐘、秒。

timestamp  包含了 年、月、日、時、分、秒、千分之一秒。

如果將宣告表的一列設定為 integer primary key,則具有:

1.每當你在該列上插入一null值時, null自動被轉換為乙個比該列中最大值大1的乙個整數;

2.如果表是空的, 將會是1;

注意該整數會比表中該列上的插入之前的最大值大1。 該鍵值在當前的表中是唯一的。但有可能與已從表中刪除的值重疊。要想建立在整個表的生命週期中唯一的鍵值,需要在 integer primary key 上增加autoincrement宣告。那麼,新的鍵值將會比該錶中曾能存在過的最大值大1。

要想建立在整個表的生命週期中唯一的鍵值,需要在 integer primary key 上增加autoincrement宣告。那麼,新的鍵值將會比該錶中曾能存在過的最大值大1。

SQLite學習筆記

官方站點 從 的download頁面獲取 download.html sqlite amalgamation 3 6 22.zip是sqlite的windows下原始碼檔案 sqlite 3 6 22.zip sqlitedll 3 6 22.zip 在sqlite中,表示式 a between b...

sqlite學習筆記

1 unique constraint failed user.userid 違反唯一性約定,意味表中已有相同的鍵值 2 rowcount 使用cursor物件執行insert,update,delete語句時,執行結果由rowcount返回影響的行數,就可以拿到執行結果。3 列對齊命令 mode ...

SQLite學習筆記

sqlite是乙個軟體庫,實現了自給自足的 無伺服器的 零配置的 事務性的 sql 資料庫引擎。sqlite是乙個增長最快的資料庫引擎,這是在普及方面的增長,與它的尺寸大小無關。sqlite 源 不受版權限制。sqlite是乙個程序內的庫,實現了自給自足的 無伺服器的 零配置的 事務性的 sql 資...