深入淺出后端開發(fā)(SQL指令筆記)

前言

這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進步,用簡書記錄下自己的學(xué)習(xí)歷程.

全棧開發(fā)自學(xué)筆記 已開源

本文閱讀建議
1.一定要辯證的看待本文.
2.本文僅代表個人片面觀點,如有不同觀點,還往及時指出.
3.本文是個人對SQL指令的自我記憶筆記,僅供參考
4.本文所表達觀點并不是最終觀點,還會更新,因為本人還在學(xué)習(xí)過程中,有什么遺漏或錯誤還望各位指出.
5.覺得哪里不妥請在評論留下建議~
6.覺得還行的話就點個小心心鼓勵下我吧~

MySQL操作筆記

  • MySQL操作筆記
    • 數(shù)據(jù)類型
      • 數(shù)字類型
        • TINYINT 最小整數(shù) (127~255)
        • BIT 最小整數(shù) (127~255)
        • BOOL 最小整數(shù) (127~255)
        • SMALLINT 小型整數(shù) 32767
        • MEDIUMINT 中型整數(shù) 8388607
        • INT 標(biāo)準(zhǔn)整數(shù) 2147683647
        • BIGINT 大整數(shù) 9223372036854775807
        • FLOAT 單精度浮點數(shù)
        • DOUBLE 雙精度浮點數(shù)
        • DECIMAL 一般整數(shù) 自定義長度
      • 字符串類型
        • 普通字符串類型
          • CHAR 0-255
          • VARCHAR 0-255
        • TEXT 和 BLOB類型
          • TINYBLOB 225字節(jié) 小BLOB字段
          • TINYTEXT 225字節(jié) 小TEXT字段
          • BLOB 65535字節(jié) 常規(guī)BLOB字段
          • TEXT 65535字節(jié) 常規(guī)TEXT字段
          • MEDIUMBLOB 16777215字節(jié) 中型BLOB字段
          • MEDIUMTEXT 16777215字節(jié) 中型TEXT字段
          • LONGBLOB 4294967295字節(jié) 長BLOB字段
          • LONGTEXT 4294967295 長TEXT字段
        • 特殊類型SET 和ENUM
          • ENUM 65535
          • SET 64
      • 日期類型
        • DATE
        • TIME
        • DATETIME
        • TIMESTAMP
        • YEAR
      • 數(shù)據(jù)類型抉擇
        • 選擇最小的可用類型,如果值永遠不超過127,則使用TINYINT比INT強
        • 對于完全是數(shù)字的,可用整數(shù)類型
        • 浮點類型用于可能具有小數(shù)部分的數(shù).
        • 從速度方面考慮,要選擇固定的列,可以使用CHAR 類型
        • 要節(jié)省空間,使用動態(tài)的列,可以使用VARCHER類型
        • 要將列中的內(nèi)容限制在一種選擇,可以使用ENUM類型.
        • 允許在一個列中有多于一個的條目,可以使用SET類型
        • 如果要搜索的內(nèi)容不區(qū)分大小寫,可使用TEXT類型
        • 如果要搜索的內(nèi)容區(qū)分大小寫,可以使用BLOB類型
    • 內(nèi)置函數(shù)
      • 數(shù)學(xué)函數(shù)
        • ABS(x) 返回x的絕對值
        • CEIL(x),CEILIN(x),返回不小于x的最小整數(shù)值
        • FLOOR(x)返回不大于x的最大整數(shù)值
        • RAND() 返回0~1的隨機數(shù)
        • RAND(x) 返回0~1的隨機數(shù),x值相同時返回的隨機數(shù)相同?
        • SIGN(x) 返回參數(shù) -1 0 或1的符號.取決于x的正負(fù)
        • PI() 返回圓周率 默認(rèn)7位
        • TRUNCATE (x,y) 返回數(shù)值x保留到小數(shù)點后y位的值
        • ROUND(x) 返回離x最近的整數(shù)
        • ROUND(x,y)保留x小數(shù)點后y位的值,截斷時進行四舍五入
      • 字符串函數(shù)
        • SUBSTRING_INDEX(text , ’,’ ,1)
      • 日期和時間函數(shù)
      • 條件判斷函數(shù)
      • 系統(tǒng)信息函數(shù)
      • 加密函數(shù)
      • 其他函數(shù)
    • 數(shù)據(jù)庫操作
      • 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE name
      • 查看數(shù)據(jù)庫 SHOW
        • 查看所有數(shù)據(jù)庫 SHOW DATABASES
      • 使用數(shù)據(jù)庫 USE DATABASE name
      • 刪除數(shù)據(jù)庫 DROP DATABASE name
    • 數(shù)據(jù)表操作
      • 添加數(shù)據(jù)表 CREATE
        • 可選參數(shù) TEMPORARY
          • 如果使用該關(guān)鍵字,表示創(chuàng)建一個臨時表
        • 必選參數(shù) TABLE
        • 是否存在 IF NOT EXISTS
          • 判斷是否存在,避免錯誤
        • 定義列屬性 create_definition() =>col_name
          • 表至少包含一列,否則無法創(chuàng)建
          • 列屬性創(chuàng)建
            • 必選參數(shù) 字段名字 col_name
            • 必選參數(shù) 字段類型 type
            • 可選參數(shù) 是否可以為空 NOT NULL / NULL
            • 可選參數(shù) 默認(rèn)值 DEFAULT default_value
            • 可選參數(shù) 自增 AUTO_INCREMENT
            • 可選參數(shù) 主鍵 PRIMARY KEY
            • 可選參數(shù) 注釋 reference_definition
        • 表參數(shù) table_options
        • 快速建表 select_statement
        • 可選參數(shù) COMMENT ‘備注’
        • 設(shè)置主鍵 PRIMARY KEY (col_name)
        • 自增列 AUTO_INCREMENT
        • 示例:
          • CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name(
            col_name type NOT NULL DEFAULT default_value AUTO_INCREMENT PRIMARY KEY,
            );
      • 查看表結(jié)構(gòu) SHOW COLUMNS/DESCRIBE
        • 必選參數(shù) 查詢 SHOW
        • 可選參數(shù) FULL
        • 必選參數(shù) 列數(shù) COLUMNS
        • 必選參數(shù) 來自 FROM table_name
        • 可選參數(shù) 來自 FROM database_name
        • ——
        • 必選參數(shù) 列出 DESCRIBE
        • 必選參數(shù) 數(shù)據(jù)表名 table_name
        • 可選參數(shù) 列名 col_name
      • 查看表詳細結(jié)構(gòu)語句 SHOW CREATE TABLE
        • 必選參數(shù) SHOW
        • 必選參數(shù) CREATE
        • 必選參數(shù) TABLE
        • 必選參數(shù) table_name
        • 可選參數(shù) \G
      • 修改表結(jié)構(gòu) ALTER TABLE
        • 必選參數(shù) 修改 ALTER
        • 可選參數(shù) IGNORE
        • 必選參數(shù) 表名 TABLE table_name
        • 必選一參數(shù) ADD | MODIFY | CHANGE | DROP
          • 修改表名 ALTER TABLE table_name RENAME TO new_table_name
          • 改變列名 CHANGE COLUMN old_col_name new_col_name type ….;
            • 如果不改變列名 則寫兩遍
          • 改變某列屬性 ALTER TABLE table_name MODIFY COLUMN col_name type;
          • ALTER TABLE table_name DROP COLUMN col_name;
        • 必選多可選 alter_spec,[alter_spec]
        • 示例 ALTER TABLE table_name ADD col_name type col_definition,MODIFY col_name type;
      • 重命名 RENAME TABLE
        • 必選參數(shù) RENAME
        • 必選參數(shù) TABLE
        • 必選參數(shù) 表名 table_name
        • 必選參數(shù) TO
        • 必選參數(shù) new_table_name;
        • 示例
          • RENAME TABLE old_name TO new_name;
      • 刪除表 DROP TABLE
        • 必選參數(shù) DROP
        • 必選參數(shù) TABLE
        • 可選參數(shù) 是否存在 IF EXISTS
        • 必選參數(shù) table_name;
    • 數(shù)據(jù)操作
      • 插入數(shù)據(jù) INSERT
        • 必選參數(shù) INSERT
        • 必選參數(shù) INTO
        • 必選參數(shù) 數(shù)據(jù)表名(要插入的列) table_name(column_name1,)
        • 必選多可選 VALUES(value1,value2),(value3,value4)
        • 示例
          • INSERT INTO table_name(col_name1,col_name2) VALUES(value1,value2)
      • 查詢數(shù)據(jù) SELECT
        • 必選參數(shù) 查詢 SELECT
          • 可選子參數(shù) DISTINCT 去掉重復(fù)行.
          • 可選子函數(shù) CONCAT(col_name1,連接字符串,col_name2);
        • 必選參數(shù) 指定表 FROM
          • 可選組合參數(shù) 第二條件 HAVING
            • 篩選GROUP BY之后的參數(shù)
            • SELECT sex,COUNT(sex) FROM table_name GROUP BY sex HAVING COUNT(sex)>=3;
        • 可選組合參數(shù) 條件 WHERE
          • 等于 =
            • 查詢id=27的記錄, 如果結(jié)果相等 返回1 不相等返回0
          • 大于 >
          • 小于 <
          • 大于等于 =>
          • 小于等于 <=
          • 不等于 != 或 <>
          • 多條件查詢 AND
            • 條件必須全部滿足,才能被查詢出來
            • SELECT * FROM table_name WHERE condition_1 AND condition_2 …可以無限AND疊加
            • SELECT * FROM table_name WHERE user=‘mr’ AND section=‘php’.
          • 多條件查詢 OR
            • 滿足其中一個條件就會被查出來
            • SELECT * FROM table_name WHERE condition_1 OR condition_2…OR無限疊加
            • SELECT * FROM table_name WHERE section=‘php’ OR section=‘程序開發(fā)’;
          • 是否為空 IS NULL
            • SELECT books,row FROM table_name WHERE row IS NULL;
          • 不為空 IS NOT NULL
            • SELECT books,row FROM table_name WHERE row IS NOT NULL;
          • 范圍 ..介于 BETWEEN AND
            • SELECT * FROM table_name WHERE condition BETWEEN 取值1 AND 取值2;
            • SELECT * FROM table_name WHERE id BETWEEN 5 AND 7;
          • 范圍 ..不在 NOT BETWEEN AND
            • SELECT * FROM table_name WHERE condition NOT BETWEEN 取值1 AND 取值2;
            • SELECT * FROM table_name WHERE id NOT BETWEEN 5 AND 7;
          • 在范圍之內(nèi) IN
            • SELECT * FROM table_name WHERE condition IN (元素1,元素2)
            • SELECT * FROM table_name WHERE user IN (‘mx’,’xiaomi’)
          • 不在什么范圍之內(nèi) NOT IN
            • SELECT * FROM table_name WHERE condition NOT IN (元素1,元素2)
            • SELECT * FROM table_name WHERE user NOT IN (‘mx’,’xiaomi’)
          • 模糊查詢 包含 LIKE
            • SELECT * FROM table_name WHERE user like ‘%mr%’
            • LIKE (‘李%’) 匹配 包含 李
            • LIKE (‘李_’) 匹配 李 + “ ”
          • 模糊查詢 不包含 NOT LIKE
          • 正則表達式 REGEXP
          • 語法:SELECT * FROM table_name WHERE 條件判斷1 邏輯運算符 條件判斷2
        • 可選組合參數(shù) 分組 GROUP BY
          • SELECT 字段列表,聚合函數(shù) FROM table_name GROUP BY 字段名 [ASC | DESC]
          • 通俗說,GROUP BY是將 字段名一樣的進行聚合函數(shù)的計算
          • 示例
        • 可選組合參數(shù) 排序 ORDER BY
          • SELECT * FROM table_name ORDER BY 字段1 [ASC|DESC] , 字段2 [ASC|DESC]
          • 原理:如果第1段有相同的值鳍咱,相同值的部分用第2個字段來排序浅役。
        • 可選組合參數(shù) 限定 LIMIT
          • 限制返回數(shù)量 LIMIT 結(jié)果數(shù);
            • LIMIT 3;
          • 分頁返回 LIMIT 起始位置,每頁個數(shù).
            • LIMT 1,4;從1開始往后查4個
        • 多表組合操作
        • 排序規(guī)則
        • 示例
          • SELECT * FROM table_name;
          • SELECT col_name1,col_name2 FROM table_name;
          • SELECT table1.id ,table1.name FROM table1,table2 WHERE table1.name =table2.name AND table2.name =“”;
      • 修改數(shù)據(jù) UPDATE
        • 必選參數(shù) UPDATE
        • 必選參數(shù) table_name
        • 必選參數(shù) SET
        • 可選復(fù)合參數(shù)CASE WHEN
          • UPDATE table_name
            SET col_name=
            CASE
            WHEN condition THEN ‘value’
            WHEN condition THEN ‘value’
            WHEN condition THEN ‘value’
            ELSE ‘value’
            END;
        • 可選復(fù)合參數(shù) col_name =new_value1,col_name 2=new_value2
          • 如果col_name不存在,則創(chuàng)建一個新列
        • 可選參數(shù) WHERE
        • 可選參數(shù) condition
      • 刪除數(shù)據(jù) DELETE
        • 必選參數(shù) DELETE
        • 必選參數(shù) FROM
        • 必選參數(shù) table_name
        • 可選參數(shù) WHERE
        • 可選參數(shù) condition
      • 聚合函數(shù)
        • COUNT(字段名) 計算非空記錄數(shù)
          • SELECT COUNT(DISTINCT results) FROM student;
          • COUNT(*)全部統(tǒng)計
          • SELECT sex,count(sex) AS 人數(shù) FROM student GROUP BY sex DESC.
        • AVG(字段名) 平均數(shù)
          • SELECT AVG(row) FROM table_name;
        • MIN (字段名) 最小值
          • SELECT MIN(row) FROM table_name;
        • MAX (字段名) 最大值
          • SELECT MAX(row) FROM table_name;
        • STD(字段名)指定字段標(biāo)準(zhǔn)背離值
        • STDTEV(字段名)指定字段標(biāo)準(zhǔn)背離值
        • SUM(字段名)指定字段所有記錄的總合
          • SELECT sum(row) FROM table_name;
    • 約束操作
      • 外鍵 FOREIGN KEY
        • CREATE TABLE table_name(
          int_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
          contact_id INT NOT NULL ,
          CONSTRAINT my_contacts_contact_id_fk
          FOREIGN KEY (contact_id)
          REFERENCES my_contacts (contact_id)
          );
        • 截圖
      • 檢查約束 CHECK
    • 連接查詢
      • 查詢語句基本格式
        • SELECT selection_list //要查詢哪些列
          FROM table_name //指定數(shù)據(jù)表
          WHERE primary_constraint 查詢時要滿足的條件,行必須滿足的條件
          GROUO BY grouping_columns //如何對結(jié)果進行分組
          ORDER BY sorting_columns //如何對結(jié)果進行排序
          HAVING secondary_constraint //查詢時滿足的第二條件
          LIMIT count //限定輸出的查詢結(jié)果
        • SELECT * | id,user,col_name… FROM table_name 查詢?nèi)苛谢蚨嗔?/li>
      • 內(nèi)連接查詢
        • SELECT name,books FROM table_name_1,table_name_2 WHERE table_name1.user =table_name2.user
        • 內(nèi)連接,結(jié)果集只包含參加連接的表中與指定字段相符的行.
        • 如果沒有WHERE限定,則為交叉連接或者全連接
        • 相等聯(lián)結(jié)
          SELECT col_name FROM table_name INNER JOIN table_name WHERE conditions = conditions
        • 不等聯(lián)結(jié)
          SELECT col_name FROM table_name INNER JOIN table_name WHERE conditions <> conditions
        • 自然聯(lián)結(jié)
          SELECT col_name FROM table_name NATURAL JOIN table_name ;
      • 左外連接
        • SELECT col_name FROM table_name1 LEFT JOIN table_name2 ON table_name1.col_name =table_name2.col_name;
        • 左外鏈接,是指將左表中的所有數(shù)據(jù)分別與右表的每條數(shù)據(jù)進行結(jié)合,返回的結(jié)果除內(nèi)連接的數(shù)據(jù)外,還包括左表中不符合條件的數(shù)據(jù),并在右表的相應(yīng)列中添加NULL值.
        • 截圖
      • 右外連接
        • SELECT col_name FROM table_name1 RIGHT JOIN table_name2 ON table_name1.col_name =table_name2.col_name;
        • 右外連接,是指將右表中的所有數(shù)據(jù)分別與左表中的每條數(shù)據(jù)進行連接組合,返回的結(jié)果除內(nèi)連接數(shù)據(jù)外,還包括表中不符合條件的數(shù)據(jù),并在左表的相應(yīng)列中添加NULL.
        • 截圖
      • 外聯(lián)結(jié)截圖
      • 自引用
      • 復(fù)合條件
        • SELECT col_name FROM table_name1 RIGHT JOIN table_name2 ON table_name1.col_name =table_name2.col_name AND condition
      • 子查詢
        • IN 子查詢
          • SELECT * FROM table_name_1 WHERE col_name in(SELECT col_name FROM table_name_2)
          • IN運算符可以檢測結(jié)果集中是否存在某個特定的值.
        • 比較運算符查詢
          • SELECT * FROM table_name WHERE row>=(SELECT col_name FROM table_name_2 WHERE id =1);
          • 子查詢可以使用比較運算符
        • [NOT] EXISTS 子查詢
          • SELECT * FROM table_name WHERE [NOT] EXISTS (SELECT * FROM table_book WHERE id=27);
          • 存在執(zhí)行,不存在不執(zhí)行.
          • NOT EXISTS反之.
        • ANY子查詢
          • SELECT books,row FROM table_name WHERE row<ANY(SELECT row FROM tb_name);
          • 達到ANY條件輸出
        • ALL 子查詢
          • SELECT books,row FROM table_name WHERE row>=ALL(SELECT row FROM table_name).
        • 子查詢剖析圖
      • 合并查詢 UNION
        • SELECT col_name FROM table_name_1 UNION
          SELECT col_name FROM table_name_2
        • SELECT col_name FROM table_name_1 UNION ALL
          SELECT col_name FROM table_name_2
        • 合并查詢結(jié)果 使用UNION 和UNION ALL關(guān)鍵詞
        • UNION可以去除相同記錄.
        • UNION ALL只是單純將結(jié)果集合并
      • 別名查詢
        • 為表起別名
          • SELECT * FROM table_name table_alias WHERE table_alias.col_name =‘PHP’;
          • SELECT * FROM tb_user p WHERE p.name =“張三”;
        • 為字段取別名
          • col_name AS col_alias;
          • SELECT section AS login_section ,name AS login_name FROM table_login;
      • 正則表達式查詢
        • SELECT * FROM info WHERE name REGEXP ‘正則表達式’.
    • 數(shù)據(jù)庫思想 & 概念
      • 數(shù)據(jù)模式
      • 1NF旁蔼、2NF珍逸、3NF、BCNF、4NF
      • 聯(lián)結(jié)概念圖
      • 數(shù)據(jù)庫規(guī)范
      • 數(shù)據(jù)庫視圖VIEW
      • 數(shù)據(jù)庫事務(wù)
      • 數(shù)據(jù)庫概念設(shè)計
      • 用戶信息表
      • 留言信息表
      • 回復(fù)信息
      • 管理員信息
    • 程序業(yè)務(wù)流程

結(jié)束語

如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點個喜歡鼓勵我哦.
如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~
介個是我的個人博客,歡迎參觀哦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子句占,更是在濱河造成了極大的恐慌,老刑警劉巖躯嫉,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纱烘,死亡現(xiàn)場離奇詭異,居然都是意外死亡祈餐,警方通過查閱死者的電腦和手機擂啥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帆阳,“玉大人哺壶,你說我怎么就攤上這事⊙寻” “怎么了山宾?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鳍徽。 經(jīng)常有香客問我资锰,道長,這世上最難降的妖魔是什么阶祭? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任绷杜,我火速辦了婚禮,結(jié)果婚禮上濒募,老公的妹妹穿的比我還像新娘鞭盟。我一直安慰自己,他們只是感情好瑰剃,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布齿诉。 她就那樣靜靜地躺著,像睡著了一般培他。 火紅的嫁衣襯著肌膚如雪鹃两。 梳的紋絲不亂的頭發(fā)上遗座,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天舀凛,我揣著相機與錄音,去河邊找鬼途蒋。 笑死猛遍,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播懊烤,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼梯醒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腌紧?” 一聲冷哼從身側(cè)響起茸习,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壁肋,沒想到半個月后号胚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡浸遗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年猫胁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跛锌。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡弃秆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出髓帽,到底是詐尸還是另有隱情菠赚,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布郑藏,位于F島的核電站锈至,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏译秦。R本人自食惡果不足惜峡捡,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筑悴。 院中可真熱鬧们拙,春花似錦、人聲如沸阁吝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽突勇。三九已至装盯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甲馋,已是汗流浹背埂奈。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留定躏,地道東北人账磺。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓芹敌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親垮抗。 傳聞我的和親對象是個殘疾皇子氏捞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

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