SQLite常用語句

在移動(dòng)開發(fā)中,經(jīng)常會(huì)使用數(shù)據(jù)庫,而在移動(dòng)開發(fā)中使用的SQLite輕量級(jí)的數(shù)據(jù)庫。
1.創(chuàng)建表

$ CREATE TABLE 表名 (字段名1 字段類型,表名2 字段類型,... );
# 加上IF NOT EXISTS,創(chuàng)建表時(shí)如果存在就不創(chuàng)建,不會(huì)報(bào)錯(cuò)
$ CREATE TABLE IF NOT EXISTS 表名 (字段名1 字段類型 , 表名2 字段類型,... );
# 示例
$ CREATE TABLE IF NOT EXISTS t_shop (name text , price real);

2.刪表

$ DROP TABLE 表名;
$ DROP TABLE IF EXISTS 表名;
# 示例
$ DROP TABLE IF EXISTS t_shop;

3.插入數(shù)據(jù)

$ INSERT INTO 表名(字段1 , 字段2 ,...) VALUES (字段1的值 , 字段2的值 ,...);
# 示例
$ INSERT INTO t_shop(name , price) VALUES ('娃哈哈',2.0);
# 注意,數(shù)據(jù)庫中的字符串應(yīng)該用單引號(hào)'括住?。。?

4.更新數(shù)據(jù)

$ UPDATE 表名 SET 字段1 = 字段1的值 , 字段2 = 字段2的值 ,...;
# 示例
$ UPDATE t_shop SET name = '農(nóng)夫山泉' , price = 3.0;
# 注意:上面的示例會(huì)將t_shop里面所有記錄的name都改成農(nóng)夫山泉,price都是3.0!??!

5.刪除數(shù)據(jù)

$ DELETE FROM 表名;
# 示例
$ DELETE FROM t_shop;
# 注意:上面的示例會(huì)刪除t_shop所有的記錄!??!

6.條件語句

$ WHERE 字段 = 某個(gè)值; // 不能用兩個(gè)=
$ WHERE 字段 is 某個(gè)值; // is相當(dāng)于=
$ WHERE 字段 != 某個(gè)值;
$ WHERE 字段 is not 某個(gè)值; // is not相當(dāng)于!=
$ WHERE 字段 > 某個(gè)值;
$ WHERE 字段1 = 某個(gè)值 AND 字段2 > 某個(gè)值; // AND相當(dāng)于C語言中的&&
$ WHERE 字段1 = 某個(gè)值 OR 字段2 > 某個(gè)值; // OR相當(dāng)于C語言中的 |
# 示例
# 將t_shop表里記錄price等于2.0的名稱改為農(nóng)夫山泉
$ UPDATE t_shop SET name = '農(nóng)夫山泉' WHERE price = 2.0;

7.查詢語句

$ SELECT 字段1 , 字段2 ,... FROM 表名;
$ SELECT * FROM 表名; // 查詢所有的字段
# 示例
$ SELECT * FROM t_shop;
$ SELECT name , price FROM t_shop;
$ SELECT * FROM WHERE price = 3.0; // 條件查詢

8.起別名

$ SELECT 字段1 別名 , 字段2 別名 , ... FROM 表名 別名;
$ SELECT 字段1 別名 , 字段2 AS 別名 , ... FROM 表名 AS 別名;
$ SELECT 別名.字段1 , 別名.字段2 , ... FROM 表名 AS 別名;
# 示例
$ SELECT name myname , price myage FROM t_shop;
# 給name起個(gè)叫myname的別名,給price起個(gè)叫myprice的別名
$ SELECT s.name , s.price FROM t_shop s;
# 給t_shop起個(gè)別名s,用s來引用表中的字段

9.計(jì)算記錄的數(shù)量

$ SELECT COUNT [字段] FROM 表名;
$ SELECT COUNT [*] FROM 表名;
# 示例
$ SELECT COUNT [name] FROM t_shop;
$ SELECT COUNT [*] FROM t_shop;

10.排序
查詢出來的結(jié)果可以用order by進(jìn)行排序

$ SELECT * FROM t_shop ORDER BY 字段;
$ SELECT * FROM t_shop ORDER BY price;

默認(rèn)是按照升序排序(由大到小),也可以變?yōu)榻敌颍ㄓ尚〉酱螅?/p>

$ SELECT * FROM t_shop ORDER BY price DESC; // 降序
$ SELECT * FROM t_shop ORDER BY price ASC; // 升序(默認(rèn))
# 多個(gè)字段進(jìn)行排序
$  SELECT * FROM t_shop ORDER BY price ASC , name DESC;

11.limit限制
使用limit可以精確的控制查詢結(jié)果的數(shù)量,比如每次只查詢10條數(shù)據(jù),做分頁

$ SELECT * FROM 表名 LIMIT 數(shù)值1 , 數(shù)值2;
# 跳過前面4條記錄,取8條記錄
$ SELECT * FROM t_shop LIMIT 4 , 8;
# 取最前面4條記錄
$ SELECT * FROM t_shop LIMIT 4;

12.約束
建表時(shí)給特定的字段設(shè)置一些約束條件,常見的約束有

$ not null :規(guī)定字段的值不能為null
$ unique :規(guī)定字段的值必須唯一
$ default : 規(guī)定字段的默認(rèn)值
# 盡量給字段設(shè)定嚴(yán)格的約束性,以保證數(shù)據(jù)的規(guī)范性。
# 示例
$ CREAT TABLE t_student (id integer , name text not null unique , age integer not null default 1);

13.主鍵
解釋:主鍵(Primary Key,簡稱PK)用來唯一的標(biāo)識(shí)某一條記錄,主鍵可以是一個(gè)字段或多個(gè)字段。
作用:良好的數(shù)據(jù)庫編程規(guī)范應(yīng)該保證每條記錄的唯一性,每張表都必須有一個(gè)主鍵,用來標(biāo)識(shí)記錄的唯一性。
注意:1>主鍵應(yīng)當(dāng)是對(duì)用戶沒有意義的
2>永遠(yuǎn)也不要更新主鍵
3>主鍵不應(yīng)包含動(dòng)態(tài)變化的數(shù)據(jù)
4>主鍵應(yīng)當(dāng)由計(jì)算機(jī)主動(dòng)生成
5>主鍵字段包含了not null 和 unique

$ create table t_student (id integer primary key , name text , age integer);
# 如果想要主鍵自動(dòng)增長(必須是integer類型),應(yīng)該增加autoincrement
$ create table t_student (id integer primary key autoincrement , name text , age integer);

14.外鍵
利用外鍵約束可以建立表與表之間的聯(lián)系,外鍵的一般情況是:一張表的字段引用著另外一張表的主鍵字段。

# 新建一個(gè)外鍵
$ create table t_student (id integer primary key autoincrement , name text , age integer , constraint fk_student_class foreign key [class_id] references t_class[id]);

15.表連接查詢
需要聯(lián)合多張表才能查到想要的數(shù)據(jù)
表連接的類型
內(nèi)連接:inner join 或者 join (顯示的是左右表都有完整字段值的記錄)
左外連接:left outer join (保證左表數(shù)據(jù)的完整性)

$ select s.name,s.age from t_student s, t_class c where s.class_id = c.id and c.name = ‘0316iOS’;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn) # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    呂品?閱讀 10,123評(píng)論 0 44
  • SQL語言基礎(chǔ) 本章,我們將會(huì)重點(diǎn)探討SQL語言基礎(chǔ),學(xué)習(xí)用SQL進(jìn)行數(shù)據(jù)庫的基本數(shù)據(jù)查詢操作。另外請(qǐng)注意本章的S...
    厲鉚兄閱讀 5,460評(píng)論 2 46
  • 1、MySQL啟動(dòng)和關(guān)閉(安裝及配置請(qǐng)參照百度經(jīng)驗(yàn),這里不再記錄。MySQL默認(rèn)端口號(hào):3306;默認(rèn)數(shù)據(jù)類型格式...
    強(qiáng)壯de西蘭花閱讀 759評(píng)論 0 1
  • 昨晚參加讀書會(huì)活動(dòng),美麗又文雅的電視臺(tái)主持人靜靜在分享她的讀書心得時(shí)所吸引,她的姿態(tài)放得很低,給人感...
    做快樂的自己a閱讀 333評(píng)論 0 0
  • 如果有一天 你將我遺忘 我不怪你 因?yàn)?你并未真正把我忘記 不是我們老得太快 也不是記性太差 而是 人 喜歡遺忘 ...
    super小鵝閱讀 250評(píng)論 0 0

友情鏈接更多精彩內(nèi)容