SQlite 資料庫的簡單操作

2021-07-10 15:42:41 字數 4257 閱讀 7278

/*

integer 整形值

real 浮點型

text 文字字串

blob 二進位制資料(比如檔案)

******

**ddl資料定義語句**

****

****

//建立**

create table t_class(id integer primary key autoincrement,name text);

//如果不存在就建立

create table if not exists t_class(id integer primary key autoincrement,name text);

//刪除**

drop table t_class;

//如果存在則刪除

drop table if

exists t_class;

******

**dml資料操作語句**

****

****

//插入資料

insert into t_class (name) values ('lala');

insert into t_class (name ,age) values ('lala',16);

//更新資料(全部更改)

update t_class set name = 'lalala';

//根據條件更改

update t_class set name = ' 啦啦啦' whrer name = ' lalala';

//刪除資料(全部資料)

delete from t_class;

//刪除 name 為啦啦啦的資料

delete from t_class name = '啦啦啦';

******

**dql資料查詢語言**

****

****

//查詢資料

select * from t_class;

select age from t_class;

select age,name from t_class;

select age from t_class where age<60

or id <3;

select age from t_class where age<60

and id <3;

//降序排序

select * from t_class where age>50 order by age desc;

//公升序排序(預設)

select * from t_class where age>50 order by age ;

******

****

**分頁查詢**

****

****

****

****

*****

//取前三條

select * from t_class where age>50 order by age desc limit 3;

//跳過第一條開始取三條

select * from t_class where age>50 order by age desc limit 1,3;

******

****

***簡單的約束**

****

****

****

****

*** not null:規定欄位的值不能為 null

unique:規定欄位的值必須唯一

default:指定欄位的預設值

//name 不能為空,age 的預設值為1

create table t_student(id integer primary key autoincrement,name text not null unique,age integer not null default 1);

******

****

***外來鍵約束**

****

****

****

****

*** 利用外來鍵約束可以用來建立表與表之間的聯絡

外來鍵的一般情況是:一張表的某個字段,引用著另一張表的主鍵字段

create table t_student (id integer primary key autoincrement,name text,age integer,class_id integer,constraint fk_t_student_class_id_t_class_id foreign key(class id) references t_class[id]);

t_student 表中有乙個叫做fk_t_student_class_id_t_class_id的外來鍵

這個外來鍵的作用是用 t_student 表中的 class_id 字段引用 t_class 表的 id 字段

******

****

***表連線查詢**

****

****

****

****

*** //查詢兩張表中的 name

select

s.name sname ,c.name cname from t_student s,t_class c where s.class_id = c.id;

給 t_student 取別名為 s

*/

viewcontroller.m
#import "viewcontroller.h"

#import

#import "sqlitetool.h"

#import "student.h"

@inte***ce

viewcontroller ()

@property (nonatomic,assign)sqlite3 *db;

@end

@implementation

viewcontroller

- (ibaction)insert:(id)sender

- (ibaction)delete:(id)sender

- (ibaction)update:(id)sender

//查- (ibaction)select:(id)sender

}- (void)viewdidload

- (void)didreceivememorywarning

@end

sqlitetool.h
@inte***ce

sqlitetool : nsobject

//插入、刪除、修改

+ (void)execwithsql:(nsstring *)sql;

+ (nsarray *)selectwithsql:(nsstring *)sql;

@end

sqlitetool.m
#import "sqlitetool.h"

#import

#import "student.h"

@implementation

sqlitetool

static sqlite3 *_db;

//初始化資料庫

+ (void)initialize

else

}+ (void)execwithsql:(nsstring *)sql

else

}+ (nsarray *)selectwithsql:(nsstring *)sql

}return marray;

}@end

student.h
#import 

@inte***ce

student : nsobject

@property(nonatomic,copy)nsstring *name;

@property(nonatomic,assign)int age;

+(instancetype)studentwithname:(nsstring *)name age:(int)age;

@end

student.m
#import "student.h"

@implementation

student

+(instancetype)studentwithname:(nsstring *)name age:(int)age

@end

SQLite資料庫的簡單讀寫操作

安卓系統自帶sqlite資料庫,sdk中對sqlite的操作由sqlitedatabase完成,涉及到的類有如下幾個 1 sqlitedatabase 代表資料庫本身,支援對資料的標準sql操作 2 cursor 用來實現對查詢結果集的隨機讀寫 下面 實現如何開啟資料庫,並建立資料表 sqlited...

SQLite 簡單的資料庫

1.建立資料庫和表 引數1.資料儲存的檔案位置 引數2.檔案建立工廠類,這裡不需要,寫為空 db sqlitedatabase.openorcreatedatabase data data com.coderqi.android2 lesson 04 database database.db nul...

資料庫操作 SQLite

sqlite 是乙個輕量級的關聯式資料庫。sqlite最初的設計目標是用於嵌入式系統,它占用資源非常少,在嵌入式裝置中,只需要幾百k的記憶體就夠了,目前應用於android ios windows phone等智慧型手機。ios 使用時sqlite,只需要加入 libsqlite3.dylib 依賴...