1. 程式人生 > >APP全棧工程師修煉之路(三)

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,一個商城主要包括了註冊、登入、購物車、商品、類目、訂單、支付、使用者中心等功能。        根據以上功能,我們可以分析出包含以下表:使用者表、購物車表、商品表、類目表、訂單表、訂單詳情表。        每張表的結構如下: