sqlite3

來(lái)源
sqlite3 進(jìn)入sqlite3數(shù)據(jù)庫(kù)命令行

.exit/.quit 退出sqlite3命令行

sqlite3 test.db 創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)

databases 檢查創(chuàng)建的數(shù)據(jù)庫(kù)是否在數(shù)據(jù)庫(kù)列表中

sqlite3 test.db .dump > test.sql 將轉(zhuǎn)換test.db數(shù)據(jù)庫(kù)的內(nèi)容到SQLite的語(yǔ)句中,并將其轉(zhuǎn)儲(chǔ)到文本文件test.sql中

sqlite3 test.db < test.sql 從生成的test.sql中恢復(fù)

create tablename person(id int primary key not null,name text not null); 創(chuàng)建一個(gè)person表

.schema person 查看表的完整信息

drop tablename person 刪除person表

.tables 列出附加數(shù)據(jù)庫(kù)中的所有的表

sqlite> CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);
/*創(chuàng)建一個(gè)company表*/

insert into company (id, name, age, address, salary) values (1, 'Paul', 32, 'California', 20000.00);
INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 ); 兩種插入數(shù)據(jù)方式(不區(qū)分大小寫)

SELECT tbl_name FROM sqlite_master WHERE type = 'table'; 列出所有在數(shù)據(jù)庫(kù)中創(chuàng)建的表

SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'COMPANY'; 列出關(guān)于 COMPANY 表的完整信息

SELECT CURRENT_TIMESTAMP; 返回當(dāng)前系統(tǒng)日期和時(shí)間值

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; 列出了 AGE 大于等于 25 且工資大于等于 65000.00 的所有記錄

SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000; AGE 大于等于 25 或工資大于等于 65000.00

SELECT * FROM COMPANY WHERE AGE IS NOT NULL; AGE 不為 NULL

SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*'; NAME 以 'Ki' 開(kāi)始的所有記錄,'Ki' 之后的字符不做限制

SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 ); AGE 的值為 25 或 27

SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27; AGE 的值在 25 與 27 之間

SELECT AGE FROM COMPANY WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000); 子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 EXISTS 運(yùn)算符一起使用,列出了外查詢中的 AGE 存在于子查詢返回的結(jié)果中的所有記錄

SELECT * FROM COMPANY WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000); 子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 > 運(yùn)算符一起使用,列出了外查詢中的 AGE 大于子查詢返回的結(jié)果中的年齡的所有記錄:

SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; AGE 大于等于 25 且工資大于等于 65000.00(可以使用 AND 運(yùn)算符來(lái)結(jié)合 N 個(gè)數(shù)量的條件)

SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000; AGE 大于等于 25 或工資大于等于 65000.00 (可以使用 OR 運(yùn)算符來(lái)結(jié)合 N 個(gè)數(shù)量的條件)

UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6; 更新 ID 為 6 的客戶地址

UPDATE COMPANY SET ADDRESS = 'Texas', SALARY = 20000.00; 修改 COMPANY 表中 ADDRESS 和 SALARY 列的所有值,則不需要使用 WHERE 子句

DELETE FROM COMPANY WHERE ID = 7; 刪除 ID 為 7 的客戶:

DELETE FROM COMPANY; 從 COMPANY 表中刪除所有記錄,則不需要使用 WHERE 子句

SELECT * FROM COMPANY WHERE AGE LIKE '2%'; 顯示 COMPANY 表中 AGE 以 2 開(kāi)頭的所有記錄(百分號(hào)(%)代表零個(gè)、一個(gè)或多個(gè)數(shù)字或字符。下劃線(_)代表一個(gè)單一的數(shù)字或字符。這些符號(hào)可以被組合使用。)

SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%'; 顯示 COMPANY 表中 ADDRESS 文本里包含一個(gè)連字符(-)的所有記錄:

SELECT * FROM COMPANY WHERE AGE GLOB '2*'; 顯示 COMPANY 表中 AGE 以 2 開(kāi)頭的所有記錄(星號(hào)(*)代表零個(gè)、一個(gè)或多個(gè)數(shù)字或字符。問(wèn)號(hào)(?)代表一個(gè)單一的數(shù)字或字符。這些符號(hào)可以被組合使用。)

SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*'; 顯示 COMPANY 表中 ADDRESS 文本里包含一個(gè)連字符(-)的所有記錄

SELECT * FROM COMPANY LIMIT 6; 提取前6行(限制了您想要從表中提取的行數(shù))

select * from company limit 2 offset 4; 第(4+1)位開(kāi)始提取2個(gè)記錄

SELECT * FROM COMPANY ORDER BY SALARY ASC; 將結(jié)果按 SALARY 升序排序

SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC; 結(jié)果先按NAME升序排序,如果NAME中有相同的NAME,再按SALARY升序排序

SELECT * FROM COMPANY ORDER BY NAME DESC; 將結(jié)果按 NAME 降序排序

SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME; 獲取同一個(gè)名字的工資總額

SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC; GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
/*HAVING 子句必須放在 GROUP BY 子句之后,必須放在 ORDER BY 子句之前*/

SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2 顯示名稱計(jì)數(shù)小于 2 的所有記錄

SELECT DISTINCT name FROM COMPANY; 獲取唯一一次記錄

NOT NULL 約束 默認(rèn)情況下,列可以保存 NULL 值,如果不想某列有NULL值,需要定義此約束。

DEFAULT 約束 在 INSERT INTO 語(yǔ)句沒(méi)有提供一個(gè)特定的值時(shí),為列提供一個(gè)默認(rèn)值

UNIQUE 約束 防止在一個(gè)特定的列存在兩個(gè)記錄具有相同的值

PRIMARY KEY 約束 在一個(gè)表中可以有多個(gè) UNIQUE 列,但只能有一個(gè)主鍵。在設(shè)計(jì)數(shù)據(jù)庫(kù)表時(shí),主鍵是很重要的。主鍵是唯一的 ID。

CHECK 約束 啟用輸入一條記錄要檢查值的條件。如果條件值為 false,則記錄違反了約束,且不能輸入到表。

ID          DEPT        EMP_ID
----------  ----------  ----------
1           IT Billing  1
2           Engineerin  2
3           Finance     7
/* DEPARTMENT */

CROSS JOIN 交叉連接————第一個(gè)表的每一行與第二個(gè)表的每一行進(jìn)行匹配,如果兩個(gè)輸入表分別有 x 和 y 列,則結(jié)果表有 x*y 列

SELECT EMP_ID, NAME, DEPT FROM COMPANY CROSS JOIN DEPARTMENT; 表COMPANY和表DEPARTMENT交叉連接

INNER JOIN 內(nèi)連接————把 table1 中的每一行與 table2 中的每一行進(jìn)行比較,找到所有滿足連接謂詞的行的匹配對(duì)(內(nèi)連接(INNER JOIN)是最常見(jiàn)的連接類型,是默認(rèn)的連接類型。INNER 關(guān)鍵字是可選的)

SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID; 表COMPANY.ID和表DEPARTMENT.EMP_ID相等的列

OUTER JOIN 外連接————從一個(gè)或兩個(gè)表中任何未連接的行合并進(jìn)來(lái),外連接的列使用 NULL 值,將它們附加到結(jié)果表中

SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID; 表COMPANY中沒(méi)有從表DEPARTMENT中連接的行的值為NULL

UNION 合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果,不返回任何重復(fù)的行(為了使用 UNION,每個(gè) SELECT 被選擇的列數(shù)必須是相同的,相同數(shù)目的列表達(dá)式,相同的數(shù)據(jù)類型,并確保它們有相同的順序,但它們不必具有相同的長(zhǎng)度。)

UNION ALL 結(jié)合兩個(gè) SELECT 語(yǔ)句的結(jié)果,包括重復(fù)行。適用于 UNION 的規(guī)則同樣適用于 UNION ALL 運(yùn)算符。

UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7); 設(shè)置一些允許空值的值為 NULL

SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NOT NULL; 列出所有 SALARY 不為 NULL 的記錄

SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY WHERE SALARY IS NULL; 列出所有 SALARY 為 NULL 的記錄

SELECT C.ID, C.NAME, C.AGE, D.DEPT FROM COMPANY AS C, DEPARTMENT AS D WHERE C.ID = D.EMP_ID; 使用 C 和 D 分別作為 COMPANY 和 DEPARTMENT 表的別名

Trigger 觸發(fā)器(Trigger)是數(shù)據(jù)庫(kù)的回調(diào)函數(shù),它會(huì)在指定的數(shù)據(jù)庫(kù)事件發(fā)生時(shí)自動(dòng)執(zhí)行/調(diào)用

  • 在特定的數(shù)據(jù)庫(kù)表發(fā)生 DELETE、INSERT 或 UPDATE 時(shí)觸發(fā),或在一個(gè)或多個(gè)指定表的列發(fā)生更新時(shí)觸發(fā)
  • SQLite 只支持 FOR EACH ROW 觸發(fā)器(Trigger),沒(méi)有 FOR EACH STATEMENT 觸發(fā)器(Trigger)。因此,明確指定 FOR EACH ROW 是可選的
  • 如果提供 WHEN 子句,則只針對(duì) WHEN 子句為真的指定行執(zhí)行 SQL 語(yǔ)句。如果沒(méi)有提供 WHEN 子句,則針對(duì)所有行執(zhí)行 SQL 語(yǔ)句
  • BEFORE 或 AFTER 關(guān)鍵字決定何時(shí)執(zhí)行觸發(fā)器動(dòng)作,決定是在關(guān)聯(lián)行的插入、修改或刪除之前或者之后執(zhí)行觸發(fā)器動(dòng)作
  • 當(dāng)觸發(fā)器相關(guān)聯(lián)的表刪除時(shí),自動(dòng)刪除觸發(fā)器(Trigger)
  • 一個(gè)特殊的 SQL 函數(shù) RAISE() 可用于觸發(fā)器程序內(nèi)拋出異常。
CREATE  TRIGGER trigger_name [BEFORE|AFTER] UPDATE OF column_name 
ON table_name
BEGIN
 -- Trigger logic goes here....
END;
Trigger實(shí)例

為被插入到新創(chuàng)建的 COMPANY 表(如果已經(jīng)存在,則刪除重新創(chuàng)建)中的每一個(gè)記錄保持審計(jì)試驗(yàn):

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

為了保持審計(jì)試驗(yàn),我們將創(chuàng)建一個(gè)名為 AUDIT 的新表。每當(dāng) COMPANY 表中有一個(gè)新的記錄項(xiàng)時(shí),日志消息將被插入其中:

CREATE TABLE AUDIT(
    EMP_ID INT NOT NULL,
    ENTRY_DATE TEXT NOT NULL
);

ID 是 AUDIT 記錄的 ID,EMP_ID 是來(lái)自 COMPANY 表的 ID,DATE 將保持 COMPANY 中記錄被創(chuàng)建時(shí)的時(shí)間戳。所以,現(xiàn)在讓我們?cè)?COMPANY 表上創(chuàng)建一個(gè)觸發(fā)器

CREATE TRIGGER audit_log AFTER INSERT 
ON COMPANY
BEGIN
   INSERT INTO AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime('now'));
END;

在 COMPANY 表中插入記錄,這將導(dǎo)致在 AUDIT 表中創(chuàng)建一個(gè)審計(jì)日志記錄。因此,讓我們?cè)?COMPANY 表中創(chuàng)建一個(gè)記錄

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 );

這將在 COMPANY 表中創(chuàng)建如下一個(gè)記錄:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0

同時(shí),將在 AUDIT 表中創(chuàng)建一個(gè)記錄。這個(gè)紀(jì)錄是觸發(fā)器的結(jié)果,這是我們?cè)?COMPANY 表上的 INSERT 操作上創(chuàng)建的觸發(fā)器(Trigger)。類似的,可以根據(jù)需要在 UPDATE 和 DELETE 操作上創(chuàng)建觸發(fā)器(Trigger)。

EMP_ID      ENTRY_DATE
----------  -------------------
1           2013-04-05 06:26:00

SELECT name FROM sqlite_master WHERE type = 'trigger'; 從 sqlite_master 表中列出所有觸發(fā)器

SELECT name FROM sqlite_master WHERE type = 'trigger' AND tbl_name = 'COMPANY'; 列出特定表上的觸發(fā)器

DROP TRIGGER trigger_name; 刪除已有的觸發(fā)器

Transaction 事務(wù)————是指一個(gè)或多個(gè)更改數(shù)據(jù)庫(kù)的擴(kuò)展。例如,如果您正在創(chuàng)建一個(gè)記錄或者更新一個(gè)記錄或者從表中刪除一個(gè)記錄,那么您正在該表上執(zhí)行事務(wù)。重要的是要控制事務(wù)以確保數(shù)據(jù)的完整性和處理數(shù)據(jù)庫(kù)錯(cuò)誤。
實(shí)際上,您可以把許多的 SQLite 查詢聯(lián)合成一組,把所有這些放在一起作為事務(wù)的一部分進(jìn)行執(zhí)行。

  • 原子性(Atomicity):確保工作單位內(nèi)的所有操作都成功完成,否則,事務(wù)會(huì)在出現(xiàn)故障時(shí)終止,之前的操作也會(huì)回滾到以前的狀態(tài)。
  • 一致性(Consistency):確保數(shù)據(jù)庫(kù)在成功提交的事務(wù)上正確地改變狀態(tài)。
  • 隔離性(Isolation):使事務(wù)操作相互獨(dú)立和透明。
  • 持久性(Durability):確保已提交事務(wù)的結(jié)果或效果在系統(tǒng)發(fā)生故障的情況下仍然存在。
事務(wù)控制
  • BEGIN TRANSACTION:開(kāi)始事務(wù)處理。
  • COMMIT:保存更改,或者可以使用 END TRANSACTION 命令。
  • ROLLBACK:回滾所做的更改。

事務(wù)控制命令只與 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他們不能在創(chuàng)建表或刪除表時(shí)使用,因?yàn)檫@些操作在數(shù)據(jù)庫(kù)中是自動(dòng)提交的。

sqlite> BEGIN;
sqlite> DELETE FROM COMPANY WHERE AGE = 25;
sqlite> ROLLBACK;
/*表中刪除 age = 25 的記錄,最后,我們使用 ROLLBACK 命令撤消所有的更改。*/

SELECT * FROM COMPANY WHERE ID IN (SELECT ID FROM COMPANY WHERE SALARY > 45000) ; 子查詢

INSERT INTO COMPANY_BKP SELECT * FROM COMPANY WHERE ID IN (SELECT ID FROM COMPANY) ; 假設(shè) COMPANY_BKP 的結(jié)構(gòu)與 COMPANY 表相似,且可使用相同的 CREATE TABLE 進(jìn)行創(chuàng)建,只是表名改為 COMPANY_BKP。現(xiàn)在把整個(gè) COMPANY 表復(fù)制到 COMPANY_BKP

UPDATE COMPANY SET SALARY = SALARY * 0.50 WHERE AGE IN (SELECT AGE FROM COMPANY_BKP WHERE AGE >= 27 ); 假設(shè),我們有 COMPANY_BKP 表,是 COMPANY 表的備份。下面的實(shí)例把 COMPANY 表中所有 AGE 大于或等于 27 的客戶的 SALARY 更新為原來(lái)的 0.50 倍:

DELETE FROM COMPANY WHERE AGE IN (SELECT AGE FROM COMPANY_BKP WHERE AGE > 27 ); 假設(shè),我們有 COMPANY_BKP 表,是 COMPANY 表的備份。下面的實(shí)例刪除 COMPANY 表中所有 AGE 大于或等于 27 的客戶記錄:

Autoincrement 用于表中的字段值自動(dòng)遞增。我們可以在創(chuàng)建表時(shí)在特定的列名稱上使用 AUTOINCREMENT 關(guān)鍵字實(shí)現(xiàn)該字段值的自動(dòng)增加。

COUNT 用來(lái)計(jì)算一個(gè)數(shù)據(jù)庫(kù)表中的行數(shù)

SELECT count(*) FROM COMPANY; 得到company表的行數(shù)

MAX 允許我們選擇某列的最大值

SELECT max(salary) FROM COMPANY; 得到salary的最大值

MIN 允許我們選擇某列的最小值

SELECT min(salary) FROM COMPANY; 得到salary的最小值

AVG 計(jì)算某列的平均值

SELECT avg(salary) FROM COMPANY; 所有的salary'的平均値

SUM 允許為一個(gè)數(shù)值列計(jì)算總和

SELECT sum(salary) FROM COMPANY; 所有的salary的和

RANDOM 返回一個(gè)介于 -9223372036854775808 和 +9223372036854775807 之間的偽隨機(jī)整數(shù)

SELECT random() AS Random; 生成一個(gè)隨機(jī)數(shù)

ABS 返回?cái)?shù)值參數(shù)的絕對(duì)值

SELECT abs(5), abs(-15), abs(NULL), abs(0), abs("ABC"); 求值

UPPER 把字符串轉(zhuǎn)換為大寫字母

SELECT upper(name) FROM COMPANY; 把表中的所有name轉(zhuǎn)換為大寫

LOWER 把字符串轉(zhuǎn)換為小寫字母

SELECT lower(name) FROM COMPANY; 把表中的所有name轉(zhuǎn)換為小寫

LENGTH 返回字符串的長(zhǎng)度

SELECT name, length(name) FROM COMPANY; 返回name和name的長(zhǎng)度。

sqlite_version 返回 SQLite 庫(kù)的版本

SELECT sqlite_version() AS 'SQLite Version'; 當(dāng)前版本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,637評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 178,555評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 63,900評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,629評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 55,976評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評(píng)論 3 448
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 43,139評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,686評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,411評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,641評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,820評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 35,233評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 36,567評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,362評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,604評(píng)論 2 380

推薦閱讀更多精彩內(nèi)容