sql語句三種分類:dml、ddl、dcl(資料庫控制語言)
ddl 資料庫操作語言:
--建立表:
create table if not exists testtable (field1 text primary key, field2 text not null, field3 text);
--更改表結構,新增乙個新人字段(不能直接刪除字段)
alter table testtable add field4 text;
--刪除表
drop table testtable;
dml 資料庫定義語言 :
--更update testtable set field1 = "update" where field1 = "condition";
--刪delete from testtable where field1 = "condition1" and field2 = "condition2";
delete from testtable where field1 = "condition1" or field2 = "condition2";
--改insert or replace into testtable (field1, field2, field3) values("p1", "p2", "p3");
--查select * from testtable; --所有
select field1, field2 from testtable;
select count(*) from testtable; --數量
select count(distinct(*)) from testtable; --去除重複的數量
//-----------------------------在ios程式設計中使用sql-------------------------------------
在ios程式設計中使用sql:
//使用sqlite資料庫匯入libsqlite3.0.dylib
//並#import //常用方法:
//開啟資料庫
//使用c的函式介面,所以nsstring要使用[string utf8string]
sqlite3_open(const char *filename, sqlite3 **ppdb);
//關閉資料庫
sqlite3_close(sqlite3 *);
//執行sql語句
sqlite3_exec(sqlite3 *, const char *sql, int (*callback)(void *, int, char **, char **), void *, char **errmsg);
//編譯sql語句
sqlite3_prepare_v2(sqlite3 *db, const char *zsql, int nbyte, sqlite3_stmt **ppstmt, const char **pztail);
//執行查詢sql語句
sqlite3_step(sqlite3_stmt *);
//結束sql語句
sqlite3_finalize(sqlite3_stmt *pstmt);
//繫結引數(text是繫結引數型別)
sqlite3_bind_text(sqlite3_stmt *, int, const char *, int n, void (*)(void *));
//查詢欄位上的資料
sqlite3_column_text(sqlite3_stmt *, int icol);
使用sql
- (void)_initsqlite
//建立表的sql語句
nsstring *sqlstr = @"create table if not exists testtable (field1 text not null primary key, field2 text not null)";
char *error;
//執行sql語句,判斷是否執行成功
if (sqlite3_exec(sqlite, [sqlstr utf8string], null, null, &error) != sqlite_ok)
//----------------------------資料-----------------------
sqlite3_stmt *stmt = nil;
//建立插入資料的sql語句,?表示點位符可逐個填充
nsstring *insertstr = @"insert or replace into testtable (field1, field2) values (?, ?)";
//編譯sql語句
sqlite3_prepare_v2(sqlite, [insertstr utf8string], -1, &stmt, null);
nsstring *field1str = @"first";
nsstring *field2str = @"hehe";
//往sql中填充資料,起始位是1(沒有0)
sqlite3_bind_text(stmt, 1, [field1str utf8string], -1, null);
sqlite3_bind_text(stmt, 2, [field2str utf8string], -1, null);
//執行sql語句
int result = sqlite3_step(stmt);
if (result == sqlite_error || result == sqlite_misuse)
//不用佔位符
nsstring *insertstr2 = @"insert or replace into testtable (field1, field2) values ('second', 'haha')";
sqlite3_prepare_v2(sqlite, [insertstr2 utf8string], -1, &stmt, null);
result = sqlite3_step(stmt);
if (result == sqlite_error || result == sqlite_misuse)
//不用編譯直接執行
nsstring *insertstr3 = @"insert or replace into testtable (field1, field2) values ('third', 'en')";
result = sqlite3_exec(sqlite, [insertstr3 utf8string], null, null, &error);
if (error != nil)
//-------------------------------查詢------------------------------------------
nsstring *searchstr = @"select * from testtable";
sqlite3_stmt *selectstmt = nil;
sqlite3_prepare_v2(sqlite, [searchstr utf8string], -1, &selectstmt, null);
result = sqlite3_step(selectstmt);
//#define sqlite_row 100 /* sqlite3_step() has another row ready */
//#define sqlite_done 101 /* sqlite3_step() has finished executing */
while (result == sqlite_row)
//關閉資料庫控制代碼
sqlite3_finalize(stmt);
sqlite3_finalize(selectstmt);
//關閉資料庫
sqlite3_close(sqlite);
}
iOS之SQLite基本使用
資料庫的特徵 sqlite sqlite近似類似規則 sqlite欄位的約束條件 sqlite欄位約束條件 primary key 主鍵 sqlite語句 ios的資料庫技術的實現 pragma mark 1.引入標頭檔案 新增libsqlite3.0.tbd import static sqlit...
sqlite 的基本使用2
sqlite的運算子有好幾種,算術運算子,比較運算子,邏輯運算子,位運算子 1,算術運算子 算術運算子主要有 取餘 這個很簡單,舉乙個例子就行,要達到這樣的效果需要格式化行輸出 mode line sqlite select20 3 20 3 2sqlite 2,比較運算子 比較運算子,只要學習過語...
Swagger2的基本了解和使用
toc 中極篇 一篇不錯的文章,從基礎到配置到實現寫的很詳細。傳送們 高階篇 mall作者,我從他這學到不少東西,非常感謝!傳送們 註解說明 api 用於修飾controller類,生成controller相關文件資訊 apioperation 用於修飾controller類中的方法,生成介面方法相...