SQLite學習筆記(一)

2021-06-27 18:31:05 字數 3126 閱讀 4615

sqlite學習筆記(一)

今天學習過程中發現資料庫並沒有想象中那麼容易,於是決定一些筆記來鞏固一下知識

介紹一些簡單sql語句,同時也是最為重要的基礎

sql (structured query language ):結構化查詢語言

該語言雖不區分大小寫,但是在閱讀方便上操作與變數區分開比較好

我拿乙個名為t_student 的表為例

種類:ddl:(data definition language) 包括creat ,drop等操作

建立表:

creat table 表名(欄位1

欄位1型別,欄位2

欄位2型別。。。。);

例如:creat table t_student (id

integer,name

text,age

integer,score

real);

integer:整型

real:浮點型

text:文字字串

blob:二進位制資料

實際上sqlite是無型別的,即使宣告為integer型別也可以作為字串儲存(主鍵除外)

所以create table t_student(name ,age);也可以,但是不推薦這麼寫

一般聲名格式為:creat table

if not exists t_student(id integer,name text,。。。);

if not exists :正如字面意思,如果檢測到該錶不存在就建立該錶。。。

倘若你要將id設定為主鍵;就在id integer後面加上

primary key autoincrement

其中autoincrement 是自動賦值,就像1 ,2,3,4.。。。(

autoincrement 修飾的主鍵必須為

integer型別),因為主鍵不能有重複的出現,加上

autoincrement   就省去手動賦值了

主鍵:主鍵應當是對使用者沒有意義的;

永遠不要更新主鍵;

主鍵不應該包含動態變化的資料;

主鍵應當由計算機自動生成;

create table t_student(id integer primary key autoincrement,name text

not null unique, age integer

not null default 1);

id為主鍵自動生成;name不為空且唯一(重複會報錯);age不為空且預設值為1(沒有值的時候)

not null:規定字段不能為null

unique:指定字段必須唯一

default:指定字段預設值

刪除表:drop table if exists表名;

這個沒什麼好說的if exists 寫上比較好

dml:(data manipulation language) 包括

insert update delete等

插入表:

insert into t_student (id,name,age。。。)values(1,『jack』,20,100。。。);

成員與成員的值應該相符合

更新表:

update t_student set id = 10,name = 『hb』,。。。;

沒什麼好說的,就乙個set,想怎麼改就怎麼改

刪除表:

delete from 表名  ;

一刪除表就全都沒了

delete from t_student

where age<=10 or age>30;//描述:刪除age小於等於10或大於30的成員

不得不介紹條件語句:

where

字段= 某值;   等同於   

where

欄位is 某值;

where

字段!= 某值;   等同於   

where

欄位is not 某值;

where

字段》 某值;

where

字段》 某值

and欄位

> 某值;

where

字段》 某值

or欄位

> 某值;

dql:(data query language )包括select

我要說select分量最重!也使用的最多的

select

欄位1,

欄位2,。。。

from 表名;//表示從該表中查詢欄位1,欄位2,。。。

select *from表名;//這裡的*表示查詢所有字段

select *from   t_student where age >10;//查詢age>10的成員

select

age sage,name sname from t_student where age>10 and….;

看不懂  age sage的人我告訴你 ,這個其實是age as sage的簡寫,只是為了輸出age這個列的值的時候,顯示的不是age,而是別名sage  (表明也可以起別名 同樣可以簡寫,不要因為這種簡寫就看不懂了)

select

count(*) from t_student;//查詢表中的所有的成員數量

*也可以改為

age,意思是查有age的成員數量

select

count(*) from t_student

where age>10

;//同樣可以加條件

select *from   t_student where age >10

order by name

asc;

這句我得講清楚;name作為字串型別同樣可以作為排序的依據;

order by  也是條件約束的一種,它與

asc配合,表示根據name的順序從低到高公升序排序;反之,想要降序排列就將

asc改為

desc

建議自己動手練一下

select *from   t_student

limit 4,8;//跳過最前面的4個成員,查詢後面的8個成員

select *from   t_student

limit 4;//取前4個成員 相當於

limit 0,4;

sqlite 學習筆記(一)

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

SQLite學習筆記之一

2010年sqlite學習筆記之一 官方站點 從 的download頁面獲取 download.html sqlite amalgamation 3 6 22.zip是sqlite的windows下原始碼檔案 sqlite 3 6 22.zip sqlitedll 3 6 22.zip 在sqlit...

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...