第一課 了解sql

準備

首先閱讀這本書,必須先了解這本書里sql語句所操作的數(shù)據(jù)庫表。
也就是書附錄中的樣例表,深入理解這個樣例表不僅可以幫助我們設(shè)計好的數(shù)據(jù)庫結(jié)構(gòu),也能打下基礎(chǔ),更好的實踐本書中的代碼。

樣例表

本書使用的樣例表的是假想一個玩具經(jīng)銷商使用的一個訂單錄入系統(tǒng),這個系統(tǒng)的數(shù)據(jù)庫主要用來完成一下這些任務(wù):

  • 管理供應(yīng)商
  • 管理產(chǎn)品目錄
  • 管理顧客列表
  • 錄入顧客訂單

粗看上面這些任務(wù),我們自然會考慮到至少需要這么幾個表:

  • 供應(yīng)商表,存儲供應(yīng)商的信息
  • 產(chǎn)品表,存儲產(chǎn)品信息
  • 顧客表,存儲顧客信息
  • 訂單表,存儲訂單信息
    但是,嘻嘻仔細分析,會發(fā)現(xiàn)這里的訂單信息無法用一個表存儲,一個訂單可能會包括很多的產(chǎn)品,而這些產(chǎn)品的數(shù)量是不固定的,無法用一個表來表示,所以我們考慮添加一個表來表示訂單。
    這里采用的是一個訂單表,不存儲訂單的細節(jié),另外一個訂單item表存儲訂單的物品和細節(jié)。

所以,經(jīng)過以上的分析,建立了五個表。
下面我們一一介紹這五個表:

  • Vendors表
    這個表存儲供應(yīng)商的信息,每個供應(yīng)商對應(yīng)一條記錄,用唯一的供應(yīng)商ID來標識。并且以ID作為這個表的主鍵
    具體的表結(jié)構(gòu)如下:
Paste_Image.png
  • Products表
    products表用來表示產(chǎn)品目錄,存儲產(chǎn)品信息,每個產(chǎn)品有一個產(chǎn)品ID但同時借助vend_id關(guān)聯(lián)到供應(yīng)商。設(shè)置主鍵和外鍵
Paste_Image.png
  • customers表
    customers表用來存儲顧客的信息,每個記錄表示一條顧客的信息,用ID作為其主鍵,每個顧客的ID都是唯一的。
Paste_Image.png
  • Orders表
    orders表存儲訂單,但不是訂單的細節(jié),這個訂單表,只有三個字段,一個是每個訂單唯一的編號也就是ID,一個訂單的日期,一個是關(guān)聯(lián)到這個訂單的顧客ID所以設(shè)置一個外鍵,關(guān)聯(lián)到相應(yīng)的顧客。
Paste_Image.png
  • orderitems表
    這個表存儲每個訂單中的實際物品,每個訂單的每個物品一行。所以對于orders表的每一行也就是每個訂單,由于物品數(shù)量的不一樣,所以在orderitem表中,有一行或者很多行,每個訂單物品由訂單號加訂單物品號唯一標識(也就是表示該訂單的第一個物品,第二個物品之類的),每個訂單物品包好該物品的產(chǎn)品ID。
    所以這個表采用聯(lián)合主鍵,分別是訂單號(關(guān)聯(lián)到order表),和訂單物品號為主鍵
    然后還要設(shè)計兩個外鍵,分別是訂單號,和產(chǎn)品ID
Paste_Image.png

總的表的結(jié)構(gòu)關(guān)系如下圖:

Paste_Image.png

sql初探

數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,表,列和數(shù)據(jù)類型,行,主鍵。
這里提一下主鍵需要滿足的條件:

  • 任意兩行的主鍵值不能相同
  • 每一行必須有一個主鍵,不能為null
  • 主鍵的值不允許修改或者更新
  • 主鍵值不能重用,某行從表格中刪除,他的值不能賦給新行
    Sql是一種專門與數(shù)據(jù)庫溝通的語言。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • SQL與MySQL簡介 數(shù)據(jù)庫基礎(chǔ) 從SQL的角度來看,數(shù)據(jù)庫就是一個以某種有組織的方式存儲的數(shù)據(jù)集合。我們可以采...
    heming閱讀 3,531評論 1 8
  • 2017/3/14 RDBMS:關(guān)系型數(shù)據(jù)庫管理系統(tǒng) 關(guān)系模型獨立于語言 SQL有幾種不同類型的語言:數(shù)據(jù)定義語言...
    ancherl閱讀 1,790評論 0 6
  • 1 數(shù)據(jù)庫 數(shù)據(jù)庫是一個以某種有組織的方式存儲的數(shù)據(jù)集合。最簡單的辦法是將數(shù)據(jù)庫想象為一個文件柜。這個文件柜是一個...
    ATHAS閱讀 820評論 3 52
  • 陸游《夜游宮·記夢寄師伯渾》原詞、注釋、翻譯、賞析 【原文】:夜游宮·記夢寄師伯渾①陸游雪曉清笳亂起,夢游處、不知...
    xcy無名閱讀 311評論 0 0
  • (一) 一個人待在家已經(jīng)很久了,漸漸忘記了說話,偶爾跟頑皮的小狗“汪汪”兩聲。 Kindle上又看完一本書,在去搜...
    雪暮須臾閱讀 523評論 0 3

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