假設出貨單表單如下,你應該如何設計資料表,來表示這個表單? 正規化後,資料結構應該如何呢? 客戶資料表 customer( cusno , cusname, cuszipcode, cusaddress, custel, cusfax, cuscontact) 職員資料表 employee( empno , empname, deptno, emptitle) 公司部門表 department( deptno , deptname) 產品資料表 product( prodno , prodname, prodprice, prodamount) 訂單主檔資料表 myorder( ordno , cusno, orddate, ordtotal, salesno, assistno) 訂單品項資料表 myorderitem( ordno, serial , prodno, prodqty, prodprice) 以下的需求應該如何達成呢? (1)某個客戶在某個日期,訂購那些商品? SELECT p.prodno, p.prodname FROM product p, myorder m, myorderitem mi…
有如下表單,你應該如何進行正規化呢? 學號 學生姓名 學生電話 課程代號 課程名稱 年級 老師姓名/電話 老師代號 科系代號 科系名稱 成績 101001 張大頭 0910111222 0922111000 A001 資料庫 三年級 王老師 0933111333 001 001 資管系 80 A002 網路概論 林老師 0955111222 002 003 資工系 50 101002 劉三哥 0912333222 0922111333 A003 程式設計 三年級 孫老師 0912000333 003 001 資管系 85 A002 網路概論 林老師 0955111222 002 003 資工系 76 我們正規化後,資料結構如下~ studnt 學生資料表 ( studno , studname, deptid) teacher 老師資料表 ( teano , teaname, deptid) department 科系資料表 ( deptid , deptname) telephone 電話資料表 ( ownerno, tel ) cou…
SELECT的基本語法如下~ 依照給予的條件,抓出資料。 SELECT * | {[DISTINCT, DISTINCTROW] field_list} FROM table_list WHERE conditions GROUP BY {field_list} [ASC,DESC] HAVING conditions ORDER BY {field_list} [ASC,DESC] 假設有以下表單 student( studno , studname, deptid) 學生資料表 course( yearsemester, courseid, studno , score) 選課單 coursemain( courseid , coursename, coursecredit, courseflag, deptid) 課程基本資料表 teacher( teano , teaname, deptid) 教師資料表 courseopen( yearsemester, courseid , teano, coursetime, room) 教師開課表 dept( deptid , deptname) 科系資料表 1. SELECT * F…
關聯模式的運算是將關聯進行運算,或是跟另外的關聯進行運算。 (1) SELECT運算子 ( s) 表示法: Result = s <選擇條件 > (R) 意思是指,從關聯R中,選擇出符合 <選擇條件>的資料。 這樣子好像有點難以理解,其實就是~使用 SELECT語法,從 關聯R中取出資料。 例如 關聯R為(studentNo, studentName, studentDeptID),我們就可以使用如下運算: SELECT * FROM R WHERE studentDeptID='0001'; 其中 studentDeptID='0001'就是 <選擇條件> (2) PROJECT運算子( π ) 表示法: Result = π <屬性串列 > (R) 意思是指,從關聯R中,選擇出某些屬性 的資料。 例如 關聯R為(studentNo, studentName, studentDeptID),我們就可以使用如下運算: SELECT studentNO, studentName FROM R; 但是經常 s跟 π經常一起使用,例如: …
關聯模式的五大鍵,各是Super key、Candidate Key、Primary Key、Alternate Key、Foreign Key。靠著這些鍵的特性,讓關聯模式可以用來描述實體世界的資料。 更多參考資料 : MySQL使用者權限設定 關聯模式 可以比實體關係模式(ERM)更精準的描述資料,他有幾個條件必須滿足: (1)定義域限制: 指資料庫的關聯中的每個屬性質,必須符合該屬性的定義,例如產品名稱必須是字串,薪水必須是整數數字等。 (2)關聯鍵限制: 指資料庫的關聯中必須有關聯鍵的定義,也就是Super key、Candidate Key、Primary Key、Alternate Key、Foreign Key。這些定義我們稍後再來解釋。 (3)實體完整限制: 如果關聯存在主鍵(Primary Key),則不能為空。因為如果為空值,無法得知其相關的屬性值到底是描述哪一個實體。 (4)參考完整限制: 如果關聯存在外鍵(Foreign Key)為非空值,必須有可以參考的主鍵(Primary Key)。因為如果外鍵存在,而無法關連到其他表格的主鍵,這個關聯存在就沒有意義。 (5)語意完整限制: 這個限制不是必須的,但是可以更完備的描述實體世界的資料…