APP全棧工程師修煉之路(三)

第三章 數據庫設計
        從本章開始,我們將真正的開始進入全棧之路。因爲全棧工程師不需要對某種技術有着深入的研究,所以本書不會深入探討技術細節,只注重產品的設計與開發。

3.1 MySql概要

        MySql是一個關係型數據庫,最初是由瑞典MySql AB公司開發,後來被Oracle公司收購,成爲Oracle旗下產品。
        MySql所使用的Sql語言是訪問數據庫最常用的標準化語言。它採用雙授權政策,分爲社區版和商業版,由於其體積小、速度快,尤其是開源,一般作爲中小型企業的項目開發都將Mysql作爲數據庫的第一選擇。

3.2 Sql語言

        Sql,英文名Struct Query Language,結構化查詢語言,也就是它是專門針對關係型數據庫提供的數據查詢語言。但是每種數據庫提供的Sql語言不盡相同,但是都大同小異,學會了其中一種數據庫,其他數據庫就可以舉一反三,本書主要介紹Mysql的數據庫腳本語言。
        Sql基本操作有:查詢(Select)、插入(Insert)、更新(update)、刪除(Delete)、創建(Create)
        Sql對大小寫不敏感,因此大小寫都可以。

        3.2.1 查詢

        查詢的基本語法是:select * from 表名或者select 列名 from 表名,其中列名可以包含多個列名,中間以逗號隔開,這句Sql的含義是查詢某張表的某些列的數據,如果select後面跟"*"的話,則是查詢全部列的數據。
      查詢語句後面可以跟條件,語法是:where 列名 條件符 值,具體的條件符請看下錶:
條件符解釋
=等於
>大於
<小於
>=大於等於
<=小於等於
!=或者<>不等於
like/not like字符包含/不包含
in/not in數據包含/不包含
  
      下面 舉個實際的例子:
      假如我們要查詢person表中age大於20的數據,sql語句是:select * from person where age > 20
      如果有多個條件,需要在條件之間加上and(並且)或者or(或者),如:
      select * from person where age > 20 and age < 30,表示查詢age在20-30之間的數據。
      select * from person where age < 20 or age > 30,表示查詢age小於20或者大於30的數據。
      條件符中需要特別注意like和in關鍵詞,like 後面跟字符串,如:like '%abc%',表示所有包含abc的數據,其中百分號表示匹配所有字符,abc%,表示以abc開頭的,%abc表示以abc結束的。
      in關鍵詞後面跟多條數據,如:age in(1,2,3,4),它等同於age = 1 or age = 2 or age = 3 or age = 4。
      我們還可以對查詢出的數據進行排序,用關鍵詞order by 列名 asc/desc,其中asc表示升序(默認),desc表示降序,如:
      select * from person order by age,對age字段升序,select * from person order by age desc,對age字段降序。字段可以有多個,多個字段之間以逗號隔開,排序是根據字段順序依次排序。

3.3 數據庫實戰

        對於一個互聯網項目,設計數據庫是必要的過程。一個數據庫設計的好與壞很大程序決定了系統的可擴展性、維護性。一個數據庫由多張表構成,不同的表存儲着不同的內容。
        每張數據庫表包含多個字段,每個表之間一般通過外鍵聯繫。
        從本節開始,筆者就將帶領大家完成一個完整的互聯網項目,這個項目是一個商城APP,一個商城主要包括了註冊、登錄、購物車、商品、類目、訂單、支付、用戶中心等功能。
        根據以上功能,我們可以分析出包含以下表:用戶表、購物車表、商品表、類目表、訂單表、訂單詳情表。
        每張表的結構如下:
        
發佈了107 篇原創文章 · 獲贊 215 · 訪問量 40萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章