SQLite學習筆記之一

2021-05-27 00:36:02 字數 2690 閱讀 7732

2023年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 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學習筆記(一)

sqlite學習筆記 一 今天學習過程中發現資料庫並沒有想象中那麼容易,於是決定一些筆記來鞏固一下知識 介紹一些簡單sql語句,同時也是最為重要的基礎 sql structured query language 結構化查詢語言 該語言雖不區分大小寫,但是在閱讀方便上操作與變數區分開比較好 我拿乙個名...

sqlite 學習筆記(一)

所有的例子都是再ubuntu環境下,測試。1 使用命令 sqlite3 test.db 進入sqlite3 模式。2 headers on 查詢時顯示欄位名,經常與 mode column合用 用於改善顯示格式。3 create table test id integer primary key v...

Shell學習筆記之一

1.先看乙個常用的命令 這個命令組合了幾個不同的shell命令,shell命令是有這種特性在裡面的。就是統一性,簡單性。可以通過管道命令組合多個shell命令。如上面的命令,分別是 顯示當前執行的程序,sort是對程序進行排序,uniq是去除重複的情況,grep v sh 是去掉,不展示sh這個程序...