看一遍練一遍不可能就學會mysql
學習都是無聊的
記住了 才會轉化 能力
注:認真捋一下,理解表與表之間的關係
樣例表書中使用的樣例表為乙個想象的隨身物品推銷商使用的訂單錄入系統,這些隨身物品可能是你喜歡的**人物需要的(是的,**人物,沒人規定學習
mysql
必須沉悶地學)。這些表用來完成以下幾個任務:
管理**商;
管理產品目錄;
管理顧客列表;
錄入顧客訂單。
要完成這幾個任務需要作為關聯式資料庫設計成分的緊密聯絡的6個
表。以下幾節描述各個表。
表的描述
以下介紹
6個表以及每個表中的列。
表的列出順序
6個表之所以要用這裡的次序列出是因為它
們之間的依賴關係。
因為products
表依賴於
vendors
表,所以
先列出vendors
,其他表的列出也有類似的關係。
vendors
表vendors
表儲存銷售產品的**商。
每個**商在這個表中有乙個記
錄,**商id(
vend_id
)列用來匹配產品和**商。
列 說 明
vend_id
唯一的**商
idvend_name
**商名
vend_address
**商的位址
vend_city
**商的城市
vend_state
**商的州
vend_zip
vend_country
**商的國家
vend_id
作為主鍵。
vend_id
為乙個自動增量字段。
products
表products
表包含產品目錄,每行乙個產品
。每個產品有唯一的id(
prod_id
列),通過
vend_id
(**商的唯一
id)關聯到它的**商。
列 說 明
prod_id
唯一的產品
idvend_id
產品**商
id(關聯到
vendors
表中的vend_id
)prod_name
產品名prod_price
產品**
prod_desc
產品描述
prod_id
作為其主鍵。
為實施引用完整性,應該在
vend_id
上定義乙個外來鍵,關聯到
vendors
的vend_id
。customers
表customers
表儲存所有顧客的資訊
。每個顧客有唯一的id(
cust_id
列)。列 說 明
cust_id
唯一的顧客
idcust_name
顧客名cust_address
顧客的位址
cust_city
顧客的城市
cust_state
顧客的州
cust_zip
cust_country
顧客的國家
cust_contact
顧客的聯絡名
cust_email
顧客的聯絡
位址cust_id
作為它的主鍵。
cust_id
是乙個自動增量字段。
orders
表orders
表儲存顧客訂單(但不是訂單細節)。
每個訂單唯一地編號
(order_num
列)。 訂單用
cust_id
列(它關聯到
customer
表的顧客唯一id)
與相應的顧客關聯。
列 說 明
order_num
唯一訂單號
order_date
訂單日期
cust_id
訂 單 顧 客
id ( 關 系 到
customers
表 的cust_id
)order_num
作為它的主鍵。
order_num
是乙個自動增量字段。
為實施引用完整性,
cust_id
上定義乙個外來鍵,關聯到
customers
的cust_id
。orderitems
表orderitems
表儲存每個訂單中的實際物品,每個訂單的每個物品佔
一行。對
orders
中的每一行,
orderitems
中有一行或多行
。每個訂單物
品由訂單號加訂單物品(第乙個物品、第二個物品等)唯一標識。訂單
物品通過
order_num
列(關聯到
orders
中訂單的唯一
id)與它們相應的訂
單相關聯。此外,每個訂單項包含訂單物品的產品
id(它關聯物品到
products
表)。列 說 明
order_num
訂單號(關聯到
orders
表的order_num
)order_item
訂單物品號(在某個訂單中的順序)
prod_id
產品id
(關聯到
products
表的prod_id
)quantity
物品數量
item_price
物品**
order_num
和order_item
作為其主鍵。
為實施引用完整性,
order_num
上定義外來鍵,關聯它到
orders
的order_num
,在prod_id
上定義外來鍵,關聯它到
products
productnotes
表productnotes
表儲存與特定產品有關的注釋。並非所有產品都有相
關的注釋,而有的產品可能有許多相關的注釋。
列 說 明
note_id
唯一注釋
idprod_id
產品id
(對應於
products
表中的prod_id
)note_date
增加注釋的日期
note_text
注釋文字
note_id
作為其主鍵。
列note_text
必須為fulltext
搜尋進行索引。
由於這個表使用全文本搜尋,因此必須指定
engine=myisam
。需要一組填充了資料的表。所需要獲得和執行
的一切東西都可以在
sql指令碼檔案。
create.sql
包含建立
6個資料庫表(包括所有主鍵和外來鍵約束)
的mysql
語句。
populate.sql
包含用來填充這些表的
insert
語句。(1)進入mysql資料庫建立一張表
(2) use 資料庫名 (即:進入該資料庫)
(3)
使用mysql
命令列輸入
source create.sql;
(指定create.sql
檔案的完全路徑)
(4) source
populate.sql
檔案填充各個新錶。
MySQL必知必會學習 建立樣例表
為了能夠實驗書中的每個栗子,首先需要建立我們需要的幾個樣例表。為了和書中樣例一致,首先創造相同名字的資料來源crashcourse 1 建立乙個新的資料來源 create database crashcourse 這裡使用書中的資料來源名稱 2 選擇指定的資料來源 use crashcourse 3...
MySQL必知必會 運算元據表
建立表 create table 表名稱 id int 11 not null auto increment primary key,name varchar 10 not null,age int 3 not null,varchar 5 grade int 2 class int 3 修改表名稱...
MySQL必知必會 12MySQL聯結表
建立聯結 select vend name prod name prod price from vendors products where vendors vend id products vend id order by vend name prod name 在一條select語句中聯結幾個表...