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