GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 6
lượt xem 33
download
Thủ tục RTRIM: Thủ tục loại bỏ khoảng trắng bên phải của chuỗi: Select ltrim Kết quả trả về như sau: Hàm Left: Hàm trả về chuỗi bên trái tính từ đầu cho đến vị trí thứ n: Select left('Khang',3) Kết quả trả về như sau: 'Kha' Hàm Right: Hàm trả về chuỗi bên phải tính từ cuối cho đến vị trí thứ n: Select Right('KHang',4) Kết quả trả về như sau: 'Hang' Hàm Instr: Hàm trả về vị trí chuỗi bắt đầu của chuỗi con trong chuỗi xét: Select INSTR ('Khang','Pham Huu Khang') Kết quả trả về như sau: 11 11 là tương đương vị trí thứ 11 của chữ Khang trong chuỗi "Pham...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 6
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Thuû tuïc RTRIM: Thuû tuïc loaïi boû khoaûng traéng beân phaûi cuûa chuoãiï: Select ltrim('Khang ') Keát quaû traû veà nhö sau: 'khang' Haøm Left: Haøm traû veà chuoãi beân traùi tính töø ñaàu cho ñeán vò trí thöù n: Select left('Khang',3) Keát quaû traû veà nhö sau: 'Kha' Haøm Right: Haøm traû veà chuoãi beân phaûi tính töø cuoái cho ñeán vò trí thöù n: Select Right('KHang',4) Keát quaû traû veà nhö sau: 'Hang' Haøm Instr: Haøm traû veà vò trí chuoãi baét ñaàu cuûa chuoãi con trong chuoãi xeùt: Select INSTR ('Khang','Pham Huu Khang') Keát quaû traû veà nhö sau: 11 11 laø töông ñöông vò trí thöù 11 cuûa chöõ Khang trong chuoãi "Pham Huu Khang" 5.3.3. Caùc haøm veà xöû lyù thôøi gian Haøm CurDate(): Haøm traû veà ngaøy, thaùng vaø naêm hieän haønh cuûa heä thoáng: Select curdate() as 'Today is’ Keát quaû traû veà nhö sau Today is --------------------------- 2001-11-21 Haøm CurTime(): Haøm traû veà giôø, phuùt vaø giaây hieän haønh cuûa heä thoáng: Select curtime() as 'Time is’ Keát quaû traû veà nhö sau Time is --------------------------- 09:12:05 Haøm Period_Diff: Haøm traû veà soá ngaøy trong khoaûng thôøi gian giöõa 2 ngaøyï: Select Period_diff (OrderDate, getdate()) Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com as 'So ngay giua ngay thu tien ñen hom nay:' from tblOrders Keát quaû traû veà nhö sau So ngay giua ngay thu tien ñen hom nay: --------------------------------- 74 72 Haøm dayofmonth: Haøm dayofmonth traû veà ngaøy thöù maáy trong thaùng: Select dayofmonth(curdate()) as 'hom nay ngay Keát quaû traû veà nhö sau: 21 Ngoaøi caùc haøm trình baøy nhö treân, baïn coù theå tìm thaáy nhieàu haøm xöû lyù veà thôøi gian trong phaàn Funtions xuaát hieän beân phaûi maøn hình cuûa trình ñieàu khieån nhö hình 8-6. Hình 8-6: Söû duïng chöùc naêng Funcitons 5.3.4. Caùc haøm veà toaùn hoïc Haøm sqrt: Haøm traû veà laø caên baät hai cuûa moät bieåu thöùc: Select sqrt (4) Keát quaû traû veà laø Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 2 Haøm Round: Haøm traû veà laø soá laøm troøn cuûa moät bieåu thöùc: Select round (748.58,-1) Keát quaû traû veà laø 7500 Ñeå tham khaûo theâm moät soá haøm khaùc baïn coù theå tham khaûo trong phaàn Functions nhö hình 8-9. 5.4. Phaùt bieåu SQL daïng Select vôùi AS Khi caàn thieát phaûi thay ñoåi teân tröôøng naøo ñoù trong caâu truy vaán, baïn chæ caàn duøng phaùt bieåu AS. AS cho pheùp aùnh xaï teân cuõ, hay giaù trò chöa coù teân thaønh teân môùi (header). Ví duï, khi söû duïng GROUP BY ôû trong phaàn treân, nhöõng coät taïo ra töø caùc pheùp toaùn count, sum, max, min, ... cho ra keát quaû khoâng coù header, nghóa laø khoâng coù teân coät ñeå tham chieáu trong khi goïi ñeán chuùng. Chuùng ta phaûi caàn phaùt bieåu AS cho nhöõng tröôøng hôïp naøy. Ví duï 4-11: SQL daïng SELECT vôùi AS vaø caùc haøm Select CustID, Count (CustID) as No, Sum(Amount) as TIENHD, Max(Amount) as HDLONNHAT, Min(Amount) as HDNHONHAT, Avg(Amount) as TRUNGBINH From tblOrders Group by CustID Order by CustID Keát quaû hieån thò nhö sau: CustID No TIENHD HDLONNHAT HDNHONHAT TRUNGBINH ---------- ----------- ------------------------ 16 7 2956562368 1.95713899 26000 422366052 12 9 3843022604 39879489 459162 427002511 13 8 145913378 1.36727628 230000 18239172.25 10 4 72382804 48168567 2903576 18095701 5.5. Phaùt bieåu SQL daïng Select vôùi Limit N , M Phaùt bieåu SQL daïng SELECT cho pheùp truy luïc chæ moät soá maåu tin tính töø vò trí thöù n ñeán vò trí thöù m trong Table (theo moät tieâu chuaån hay saép xeáp naøo ñoù). Ñeå laøm ñieàu naøy, trong phaùt bieåu SQL daïng SELECT baïn duøng chæ ñònh töø khoaù LIMIT vôùi soá löôïng maåu tin caàn laáy töø vò trí thöù n ñeán m. Chaúng haïn, trong tröôøng hôïp baïn khai baùo Select * from tblOrders limit 0,10. Keát quaû seõ traû veà 10 maåu tin ñaàu tieân trong baûng tblOrders. Baïn cuõng coù theå söû duïng keát hôïp LIMIT vôùi caùc meänh ñeà nhö WHERE, ORDER BY nhaèm taïo ra keát quaû nhö yù muoán. Do yeâu caàu khaùc nhau thoâng qua phaùt bieåu SQL daïng SELECT coù söû duïng LIMIT, nghóa laø keát quaû traû veà soá löôïng 10 maåu tin ñaàu tieân vôùi taát caû caùc coät trong baûng tblOrders Ví duï 8-12: Phaùt bieåu SQL daïng SELECT vôùi Limit N,M Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Select * From tblOrders Limit 0,10 Keát quaû traû veà nhö sau: OrderID OrderDate CustID Amount ---------- --------------------------- ------- 01 2001-09-05 10 2903576 02 2001-09-05 10 48168567 03 2001-09-05 10 5107032 04 2001-09-08 10 2.3555347 05 2001-09-08 16 1.81074847 06 2001-09-10 16 26000 07 2001-09-11 16 1867682 08 2001-09-12 16 3600000 09 2001-09-13 16 1.95713899 10 2001-09-14 16 9.61804228 Neáu muoán loïc ra 10 hôïp ñoàng coù soá tieàn nhieàu nhaát, baïn chæ caàn söû duïng saép xeáp theo coät TotalAmount hay Amount trong baûng tblOrders. Ví duï 8-13: Phaùt bieåu SQL daïng SELECT vôùi Limit N,M Select OrderID,OrderDate,CustID,Amount From tblOrders Order by Amount Desc Limit 0,10 Keát quaû traû veà nhö sau: OrderID OrderDate CustID Amount ---------- --------------------------- ------- 06 2001-09-10 16 26000 26 2001-09-13 13 230000 25 2001-09-11 13 244904 23 2001-09-11 12 459162 31 2001-09-16 13 459525 27 2001-09-14 13 603033 28 2001-09-15 13 1452000 30 2001-09-15 13 1531200 07 2001-09-11 16 1867682 01 2001-09-05 10 2903576 Neáu muoán loïc ra 10 saûn phaåm coù soá löôïng baùn nhieàu nhaát, baïn chæ caàn söû duïng saép xeáp theo coät soá löôïng Qtty. Ví duï 8-14: Phaùt bieåu SQL daïng Select vôùi Limit N,M Select ItemID,Qtty,Price,Amount from tblOrderDetails Where Amount>10 order by Qtty Limit 0,10 Keát quaû traû veà nhö sau: ItemID Qtty Price Amount --------------------------------------------- 1 900 12000 12960000 Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 2 1000 12000 14400000 3 5000 12000 72000000 3 6000 12000 86400000 4 8000 12000 15200000 4 8000 12000 15200000 4 8000 10000 15200000 5 9000 12000 29600000 5 9000 12000 129600000 5 9000 12000 129600000 5.6. Phaùt bieåu SQL daïng SELECT vôùi DISTINCT Neáu coù moät hay nhieàu baûng keát noái vôùi nhau, seõ xaûy ra truøng laëp nhieàu maåu tin. Nhöng trong tröôøng hôïp naøy baïn chæ caàn laáy ra moät maåu tin trong taäp maåu tin truøng laëp, baïn söû duïng phaùt bieåu SQL daïng SELECT vôùi chæ ñònh DISTINCT. Ví duï 8-14: Phaùt bieåu SQL daïng SELECT Select ItemID,Qtty,Price,Amount from tblOrderDetails order by Qtty Keát quaû traû veà nhö sau: ItemID Qtty Price Amount ---------------------------------------------- 1 900 12000 12960000 2 1000 12000 14400000 3 5000 12000 72000000 3 6000 12000 86400000 4 8000 12000 115200000 4 8000 12000 115200000 4 8000 10000 115200000 5 9000 12000 129600000 5 9000 12000 129600000 5 9000 12000 129600000 ... ... Ví duï 8-15: Phaùt bieåu SQL daïng SELECT vôùi DISTINCT Select Distinct ItemID,Qtty,Price,Amount From tblOrderDetails Order by Qtty Keát quaû loaïi boû nhöõng maåu tin truøng laép nhö sau: ItemID Qtty Price Amount ---------------------------------------------- 1 900 12000 12960000 2 1000 12000 14400000 3 6000 12000 86400000 4 8000 12000 115200000 5 9000 12000 129600000 ... ... ... Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 5.7. Nhaäp döõ lieäu baèng phaùt bieåu SQL daïng Insert Khi caàn theâm maåu tin vaøo baûng trong cô sôû döõ lieäu MySQL, baïn coù nhieàu caùch ñeå thöïc hieän coâng vieäc naøy. Trong Visual Basic 6.0, VB.NET, C Sharp hay Java coù nhöõng phöông thöùc ñeå theâm maåu tin vaøo baûng trong cô sôû döõ lieäu. Tuy nhieân, ñeå söû duïng caùc phaùt bieåu SQL mang tính chuyeân nghieäp trong MySQL, baïn caàn söû duïng phaùt bieåu INSERT. Baïn coù theå söû duïng phaùt bieåu Insert ngay treân öùng duïng keát noái vôùi MySQL. Trong tröôøng hôïp baïn söû duïng cô sôû döõ lieäu SQL Server hay Oracle, baïn coù theå taïo ra moät Stored Procedure vôùi muïc ñích INSERT döõ lieäu vaøo baûng chæ ñònh tröôùc. Khi theâm döõ lieäu, caàn chuù yù kieåu döõ lieäu gioáng hoaëc töông öùng kieåu döõ lieäu ñaõ khai baùo cuûa coät ñoù, neáu khoâng phuø hôïp thì loãi seõ phaùt sinh. Ngoaøi ra baïn caàn quan taâm ñeán quyeàn cuûa User ñang truy caäp cô sôû döõ lieäu. User phaûi ñöôïc caáp quyeàn Insert döõ lieäu vaøo töøng baûng cuï theå (quyeàn naøy do nhaø quaûn trò cô sôû döõ lieäu phaân quyeàn cho User ñoù). Trong phaùt bieåu INSERT INTO chuùng toâi thöïc hieän treân baûng tblOrderDetails vaø baûng tblOrderDetailsHist, hai baûng naøy coù caáu truùc nhö sau: /* Baûng tblOrderDetails*/ CREATE TABLE tblorderdetails ( ItemID int(3) unsigned DEFAULT '0' , OrderID int(3) unsigned DEFAULT '0' , No tinyint(3) unsigned DEFAULT '0' , Qtty int(3) unsigned DEFAULT '0' , Price int(3) unsigned DEFAULT '0' , Discount int(3) unsigned DEFAULT '0' , Amount bigint(3) unsigned DEFAULT '0' ); /* Baûng tblOrderDetailsHist, duøng ñeå chöùa caùc thoâng tin hôïp ñoàng chi tieát khi hôïp ñoàng cuûa khaùch haøng naøy keát thuùc, chöông trình töï ñoäng xoaù trong tblOrderDetails vaø lö tröõ laïi trong baûng tblOrderDetailsHist.*/ CREATE TABLE tblorderdetailshist ( ItemID int(3) unsigned DEFAULT '0' , OrderID int(3) unsigned DEFAULT '0' , No tinyint(3) unsigned DEFAULT '0' , Qtty int(3) unsigned DEFAULT '0' , Price int(3) unsigned DEFAULT '0' , Discount int(3) unsigned DEFAULT '0' , Amount bigint(3) unsigned DEFAULT '0' ); Khi Insert döõ lieäu vaøo baûng, coù 3 tröôøng hôïp xaûy ra: insert döõ lieäu vaøo baûng töø caùc giaù trò cuï theå, insert vaøo baûng laáy giaù trò töø moät hay nhieàu baûng khaùc, vaø cuoái cuøng laø keát hôïp caû hai tröôøng hôïp treân. 5.7.1. Insert vaøo baûng laáy giaù trò cuï theå: INSERT INTO [] Values (data_value) Ví duï 8-16: INSERT döõ lieäu vaøo baûng töø giaù trò cuï theå Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com /* Theâm maåu tin vôùi moät soá coät */ INSERT INTO TBLCUSTOMERS (CustName,Username,Password, Address,Tel,FaxNo,Email,Contact, CountryCode,ProvinceCode) Values ('Khach San CENTURY', ‘century’, ’1111’,’5 Le Loi’,’8676767’,’8767676’, ‘century@yahoo.com’,’Hoang Anh’, ‘VNA’,’HCM’) /* Theâm maåu tin vôùi moät soá coät */ INSERT INTO TBLORDERS(OrderID,OrderDate, CustID,Description,Amount) Values ('11',curdate(),’1', 'Dat hang qua mang', 20000) 5.7.2. Insert vaøo baûng laáy giaù trò töø baûng khaùc: INSERT INTO [] Select [columnname list] From Where Ví duï 8-17: INSERT vaøo baûng töø giaù trò cuûa baûng khaùc /* Theâm maåu tin vôùi caùc coät cuï theå */ /* Chuyeån taát caû nhöõng hôïp ñoàng chi tieát töø baûng tblOrderDetails vaøo baûng tblOrderDetailsHist */ INSERT INTO TBLORDERDETAILSHIST( ItemID, OrderID, No, Qtty, Price, Discount, Amount) SELECT ItemID, OrderID, No, Qtty, Price, Discount, Amount From tblOrderDetails ORDER BY OrderID ASC /* Coù theå vieát laïi theâm maåu tin vôùi taát caû caùc coät nhö sau Chuyeån taát caû nhöõng hôïp ñoàng chi tieát töø baûng tblOrderDetails vaøo baûng tblOrderDetailsHist vôùi ñieàu kieän soá coät töông öùng trong baûng tblOrderDetails baèng vôùi soá coät trong baûng tblOrderDetailsHist, baïn coù theå vieát laïi nhö sau */ Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com INSERT INTO TBLORDERDETAILSHIST SELECT * from tblOrderDetails ORDER BY OrderID ASC 5.7.3. Insert vaøo baûng laáy giaù trò cuï theå, baûng khaùc: INSERT INTO [] Select [columnname list], valueslist From Where ORDER BY ASC/DESC Ví duï 8-18: INSERT vaøo baûng töø giaù trò cuï theå, baûng khaùc /* Theâm maåu tin vôùi caùc coät cuï theå */ /* Chuyeån taát caû nhöõng hôïp ñoàng chi tieát töø baûng tblOrderDetails vaøo baûng tblOrderDetailsHist. Giaû söû raèng, ngoaøi nhöõng coät gioáng nhö tblOrderDetails, baûng tblOrderDetailsHist coøn coù theâm coät Tranferdate. */ INSERT INTO TBLORDERSHIST( OrderID, OrderDate, ReceiveFolio, CustID, Descriion, Amount, Historydate) SELECT OrderID, OrderDate, ReceiveFolio, CustID, Descriion, Amount, getdate() as Historydate From tblOrders where Month(OrderDate)=12 Order by OrderDate,CustID /* Coù theå vieát laïi theâm maåu tin vôùi taát caû caùc coät nhö sau */ /* Chuyeån taát caû nhöõng phieáu thu trong thaùng 12 töø baûng tblOrders vaøo baûng tblOrdersHist vôùi ñieàu kieän soá coät töông öùng trong baûng tblOrders baèng vôùi soá coät trong baûng tblOrdersHist, baïn coù theå vieát laïi nhö sau */ INSERT INTO TBLORDERDETAILSHIST( ItemID, OrderID, No, Qtty, Price, Discount, Amount,TranferDate) SELECT ItemID, Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com OrderID, No, Qtty, Price, Discount, Amount,CurDate() From tblOrderDetails ORDER BY OrderID ASC 5.8. Phaùt bieåu SQL daïng UPDATE Phaùt bieåu SQL daïng UPDATE duøng caäp nhaät laïi döõ lieäu ñaõ toàn taïi trong baûng. Khi UPDATE duøng caäp nhaät döõ lieäu cho moät maåu tin chæ ñònh naøo ñoù thöôøng UPDATE söû duïng chung vôùi meänh ñeà WHERE. Neáu caàn caäp nhaät taát caû caùc maåu tin trong baûng baïn coù theå boû meänh ñeà WHERE. Phaùt bieåu naøy coù caáu truùc nhö sau: /* neáu caäp nhaát giaù trò cuï theå */ Update Set =,[=] [where ] /* neáu caäp nhaát giaù trò laø keát quaû traû veà töø phaùt bieåu select treân moät hay nhieàu baûng khaùc */ Update Set = [where ] UPDATE coù theå aûnh höôûng ñeán nhieàu baûng, nhöng caäp nhaát giaù trò chæ coù hieäu löïc treân baûng ñoù, baïn coù theå tham khaûo phaàn naøy trong chöông keá tieáp JOIN TABLE. Caäp nhaät giaù trò cuï theå vaøo moät hay nhieàu coät minh hoaï trong ví duï 8-18 sau: Ví duï 8-18: UPDATE treân caùc coät döõ lieäu töø giaù trò cuï theå /* caäp nhaät coät vôùi giaù trò cuï theå */ Update tblCustomers Set CustName='Cong ty TNHH Coca cola Vietnam' Where CustID=‘12’ /* caäp nhaät moät coät vôùi giaù trò coät khaùc trong baûng tblOrderDetails*/ Update tblOrders Set Amount= Amount*.01, TotalAmount=Amount*0.1 Where Month(OrderDate)=12 /* caäp nhaät moät coät vôùi giaù trò töø baûng khaùc*/ /* caäp nhaät coät Price vôùi giaù trò töø coät Cost cuûa baûng tblItems, khai baùo sau chæ ñuùng trong MySQL 4.1 trôû veà sau*/ Update tblOrderDetails Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Set Price= (select distinct Cost] from tblItems where ItemID=tblOrderDetails.ItemID) Where Price1000) 5.9. Phaùt bieåu SQL daïng DELETE Vôùi phaùt bieåu SQL daïng DELETE thì ñôn giaûn hôn. Khi thöïc hieän leänh xoaù maåu tin trong baûng chuùng ta chæ caàn quan taâm ñeán teân baûng, vaø meänh ñeà WHERE ñeå xoaù vôùi nhöõng maåu tin ñaõ choïn loïc neáu coù. Cuù phaùp cuûa Delete: Delete from Where Vôùi meänh ñeà WHERE gioáng nhö baát kyø meänh ñeà WHERE naøo trong phaùt bieåu SELECT hay UPDATE vaø INSERT cuûa baát kyø öùng duïng cô sôû döõ lieäu naøo coù söû duïng SQL. Conditions coù theå laø pheùp toaùn giöõa caùc coät vaø giaù trò, nhöng cuõng coù theå giaù trò laø keát quaû traû veà töø moät phaùt bieåu SELECT khaùc. Ghi chuù: Khoâng coù khaùi nieäm xoùa giaù trò trong moät coät, vì xoùa giaù trò moät coät ñoàng nghóa vôùi caäp nhaät coät ñoù baèng giaù trò roãng. Ví duï 8-19: Xoùa maåu tin vôùi phaùt bieåu SQL daïng DELETE /* Xoaù maåu tin töø baûng vôùi ñieàu kieän */ Delete from tblCustomers Where CustName is null Trong tröôøng hôïp coù raøng buoäc veà quan heä cuûa döõ lieäu, thì xoùa maåu tin phaûi tuaân thuû theo quy taéc: Xoaù maåu tin con tröôùc roài môùi xoaù maåu tin cha. Chaúng haïn, trong tröôøng hôïp ta coù 2 baûng: hôïp ñoàng baùn haøng (tblOrders) vaø hôïp ñoàng baùn haøng chi tieát (tblOrderDetails). Ñeå xoaù moät hôïp ñoàng baïn caàn xoùa maåu tin trong baûng tblOrders tröôùc roài môùi ñeán caùc maåu tin trong baûng tblOrderDetails. Ví duï 8-20: Xoaù maåu tin vôùi Delete /* Xoaù maåu tin töø baûng con */ Delete from tblOrderDetails where OrderID=123 /* Xoaù maåu tin töø baûng cha */ Delete from tblOrders where OrderID=123 Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Baïn coù theå thöïc hieän moät phaùt bieåu SQL daïng DELETE vôùi ñieàu kieän trong meänh ñeà WHERE laáy giaù trò traû veà töø phaùt bieåu SELECT töø baûng khaùc, khai baùo nhö vaäy chæ coù hieäu löïc trong cô sôû döõ lieäu MySQL phieân baûn 8.1 trôû veà sau hay trong cô sôû döõ lieäu SQL Server vaø Oracle. Ví duï 8-21: Xoaù maåu tin theo quy taéc coù raøng buoäc quan heä /* Xoaù maåu tin töø baûng vôùi ñieàu kieän laáy giaù trò töø baûng khaùc */ Delete from tblOrderDetails where ItemID in (select ItemID from tblItems where ItemName like 'IT%') 6. PHAÙT BIEÅU SQL DAÏNG JOIN Ngoaøi caùc phaùt bieåu SQL vôùi 4 daïng treân, trong phaàn keá tieáp, chuùng toâi trình baøy moät soá phaùt bieåu SQL daïng Select ñeåâ keát noái döõ lieäu giöõa caùc baûng coù quan heä vôùi nhau, nhöõng phaùt bieåu seõ trình baøy trong chöông 5 nhö: Khaùi nieäm JOIN Phaùt bieåu INNER JOIN Phaùt bieåu LEFTJOIN Phaùt bieåu RIGHT JOIN 6.1. Khaùi nieäm veà quan heä Ñeå phaùt trieån öùng duïng Web baèng baát kyø loaïi cô sôû döõ lieäu naøo, giai ñoaïn phaân tích thieát keá heä thoáng cöïc kyø quan troïng. Neáu keát quaû phaân tích khoâng toái öu thì öùng duïng ñoù khoâng theå ñaït ñöôïc giaù trò kyõ thuaät cuõng nhö giaù trò thöông maïi. Thieát keá cô sôû döõ lieäu khoâng toái öu, chuùng coù theå daãn ñeán vieäc chöông trình chaïy chaäm vaø khoâng beàn vöõng. Moät khi öùng duïng chaïy chaäm ñi do cô sôû döõ lieäu khoâng toái öu thì raát coù theå baïn phaûi thieát keá vaø xaây döïng laïi töø ñaàu toaøn boä caáu truùc cuûa chöông trình vaø cô sôû döõ lieäu. Xuaát phaùt töø lyù do naøy, khi xaây döïng moät öùng duïng thoâng tin quaûn lyù, chuùng ta caàn phaûi qua nhöõng böôùc phaân tích thieát keá heä thoáng kyõ löôõng ñeå coù ñöôïc moâ hình quan heä vaø ERD tröôùc khi ñeán caùc moâ hình chöùc naêng chi tieát. Tuy nhieân, trong lyù thuyeát moät soá kieán thöùc cô baûn baét buoäc baïn phaûi thöïc hieän theo moâ hình heä thoáng öùng vôùi nhöõng quan heä toaøn veïn, nhöng trong thöïc teá, do tính ñaëc thuø cuûa öùng duïng, thöôøng baïn phaûi thieát keá laïi moâ hình theo nhu caàu caân ñoái giöõa ñoä phöùc taïp vaø tính toái öu. Trong öùng duïng baùn haøng qua maïng Test ñaõ trình baøy trong chöông 3, khi quan taâm ñeán moät hôïp ñoàng treân maïng, ngoaøi nhöõng thoâng tin lieân laïc veà khaùch haøng, baïn caàn phaûi löu tröõ döõ lieäu khaùc nhö chieát haøng mua, phöông thöùc traû tieàn, phöông thöùc giao haøng,... Vaán ñeà ñöôïc thaûo luaän ôû ñaây, moãi hôïp ñoàng coù nhì6u maët haøng chi tieát. Trong tröôøng hôïp naøy, chuùng ta coù 6 thöïc theå lieân quan nhö sau, thöïc theå danh muïc Customers (thoâng tin lieân laïc cuûa khaùch haøng), Orders (hôïp ñoàng mua haøng), OrderDetails (chi tieát haøng mua), Items (danh muïc saûn phaåm). Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Customers 1-n Orders Items 1-n 1-n Order Details Sô ñoà 8-1: Moâ hình quan heä Giaû söû raèng khi nhaäp soá lieäu vaøo cô sôû döõ lieäu, öùng vôùi hôïp ñoàng coù maõ 101, cuûa khaùch haøng coù teân Nguyeãn Vaên A, ... coù hai saûn phaåm chi tieát: 11 (Nöôùc ngoït) vaø 32 (xaø phoøng Lux). Trong tröôøng hôïp naøy baïn ñang coù moät maåu tin hôïp ñoàng trong baûng tblCustomers, moät maåu tin hôïp ñoàng trong baûng tblOrders vaø hai maåu tin trong baûng tblOrderDetails. Neáu muoán bieát thoâng tin hôïp ñoàng cuûa khaùch haøng A, roõ raøng baïn caàn duøng phaùt bieåu SELECT vôùi meänh ñeà keát hôïp töø 3 baûng treân. Keát quaû traû veà 2 maåu tin laø söï keát hôïp thoâng tin töø hai baûng tblCustomers, tblOrders vaø tblOrderDetails. Khi thöïc thi phaùt bieåu SQL daïng SELECT öùng vôùi cô sôû döõ lieäu nhö treân baïn phaûi duyeät qua hai maåu tin. Taát nhieân, khi vieát öùng duïng thì ñieàu naøy chaáp nhaän ñöôïc, vaø coù theå coi laø toái öu. Giaû söû raèng, öùng duïng naøy ñöôïc phaùt trieån treân WEB caàn löu taâm ñeán vaán ñeà toái öu toác ñoä truy vaán thì sao? Ngöôøi thieát keá cô sôû döõ lieäu trong tröôøng hôïp naøy phaûi thay ñoåi laïi caáu truùc ñeå taêng toác ñoä truy caäp qua maïng khi xöû lyù treân cô sôû döõ lieäu cuûa ngöôøi duøng. 6.2. Khaùi nieäm veà meänh ñeà JOIN Trong haàu heát phaùt bieåu SELECT, phaàn lôùn keát quaû maø baïn mong muoán laáy veà ñeàu coù lieân quan ñeán moät hoaëc nhieàu baûng khaùc nhau. Trong tröôøng hôïp nhö vaäy, khi truy vaán döõ lieäu baïn caàn söû duïng meänh ñeà JOIN ñeå keát hôïp döõ lieäu treân hai hay nhieàu baûng laïi vôùi nhau. Khi söû duïng JOIN, baïn caàn quan taâm ñeán tröôøng (coät) naøo trong baûng thöù nhaát coù quan heä vôùi tröôøng (coät) naøo trong baûng thöù hai. Neáu moâ hình quan heä cuûa baïn khoâng toái öu hay khoâng ñuùng, quaûn trình söû duïng JOIN seõ cho keát quaû traû veà khoâng nhö yù muoán. Trôû laïi öùng duïng baùn haøng qua maïng trong giaùo trình naøy, khi xuaát moät hôïp ñoàng baùn haøng cho khaùch haøng, theo thieát keá trong cô sôû döõ lieäu chuùng ta coù raát nhieàu baûng lieân quan ñeán nhau. Chaúng haïn, neáu quan taâm baùn haøng thì baùn cho ai. Suy ra, lieân quan ñeán thoâng tin khaùch haøng, baùn saûn phaåm gì cho hoï thì lieân quan ñeán maõ saûn phaåm, neáu khaùch haøng traû tieàn thì lieân quan ñeán phieáu thu, neáu khaùch haøng coù coâng nôï thì lieân quan ñeán nôï kyø tröôùc... Trong phaân naøy, chuùng toâi tieáp tuïc thieát keá moät soá baûng döõ lieäu cuøng vôùi kieåu döõ lieäu töông öùng vaø quan heä giöõa caùc baûng ñöôïc moâ taû nhö sau: Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com tblCustomers (danh saùch khaùch haøng) [CustID] int auto_increment Primary key, [CustName] [varchar] (50) NULL , [Address] [varchar] (100) NULL, [Tel] [varchar] (20) NULL, [FaxNo] [varchar] (20) NULL, [Email] [varchar] (50) NULL, [Contact] [varchar] (50) NULL [Country] [varchar] (3) NULL, [Province] [varchar] (3) NULL tblOrders (Hôïp ñoàng baùn haøng) [OrderID] [int] Not null auto_increment Primary Key, [OrderDate] [date] NULL , [CustID] int , [Description] [varchar] (200) NULL , [ShipCost] [float] NULL , [TranID] [tinyint] NULL , [PaymentID] [tinyint] NULL , [Amount] [float] NULL , [TotalAmount] [float] NULL , tblOrderDetails (Hôïp ñoàng baùn haøng chi tieát) [SubID] [int] auto_increment NOT NULL , [OrderID] int , [ItemID] int, [No] int, [Qtty] [int] NULL , [Price] int NULL , [Discount] [Float] NULL , [Amount] [Float] NULL tblItems (Danh saùch saûn phaåm) [ItemID] int auto_increment Primary key, [ItemName] [varchar] (200) NULL , [Unit] [nvarchar] (20) NULL , [Cost] [Float] NULL , [Active] [tinyint] NOT NULL , [Category] int Baïn coù theå tìm thaáy caùc baûng döõ lieäu coøn laïi trong döõ lieäu Test trong ñóa ñính keøm theo saùch. 6.3. Meänh ñeà INNER JOIN Phaùt bieåu SQL daïng SELECT coù söû duïng meänh ñeà INNER JOIN thöôøng duøng ñeå keát hôïp hai hay nhieàu baûng döõ lieäu laïi vôùi nhau, cuù phaùp cuûa SELECT coù söû duïng meänh ñeà INNER JOIN: SELECT [SELECT LIST] FROM INNER JOIN ON WHERE ORDER BY [ASC / DESC] Neáu baïn caàn laáy ra moät soá coät trong caùc baûng coù keát noái laïi vôùi nhau baèng meänh ñeà INNER JOIN thì cuù phaùp naøy vieát laïi nhö sau: SELECT [FIELD1,FIELD2, ...] FROM INNER JOIN Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ON WHERE ORDER BY [ASC / DESC] Ví duï 8-23: INNER JOIN vôùi moät soá coät chæ ñònh /* in ra danh saùch khaùch haøng mua haøng trong thaùng 10 */ Select CustName,OrderID, OrderDate,Amount, TotalAmount from tblCustomers inner join tblOrders on tblCustomers.CustID = tblOrders.CustID where month (OrderDate) = 10 order by CustName Keát quaû traû veà nhö sau: CustName OrderID OrderDate .. TotalAmount --------------------------------------------- CENTURY Hotel 13 2001-10-17 388800000 CENTURY Hotel 14 2001-10-18 518400000 CENTURY Hotel 16 2001-10-17 388800000 CENTURY Hotel 17 2001-10-18 14400000 CENTURY Hotel 18 2001-10-18 12960000 CENTURY Hotel 110 2001-10-18 216000000 Plaza Hotel 12 2001-10-17 403200000 Plaza Hotel 19 2001-10-17 86400000 Plaza Hotel 11 2001-10-17 576000000 Plaza Hotel 15 2001-10-17 288000000 Neáu baïn caàn laáy ra taát caû caùc coät trong caùc baûng coù keát noái laïi vôùi nhau baèng meänh ñeà INNER JOIN, cuù phaùp treân coù theå vieát laïi nhö sau: SELECT first_tablename.*, second_tablename.* [,next table name] FROM INNER JOIN ON [INNER JOIN ON ] WHERE ORDER BY [ASC / DESC] Ví duï 8-24: INNER JOIN vôùi taát caùc tröôøng lieân quan /* in ra danh saùch khaùch haøng mua haøng trong thaùng 10 */ Select CustID,CustName,OrderID, OrderDate,TotalAmount from tblCustomers inner join tblOrders On TblCustomers.CustID=tblOrders.CustID where month (OrderDate) = 10 order by CustName DESC Keát quaû traû veà nhö sau: Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com CustID CustName .. OrderID ..TotalAmount ------ --------------------------------------- 13 Plaza Hotel .. 11 .. 576000000 13 Plaza Hotel .. 15 .. 288000000 12 Plaza Hotel .. 12 . . 403200000 12 Plaza Hotel .. 19 .. 86400000 16 CENTURY Hotel .. 13 .. 388800000 16 CENTURY Hotel .. 14 .. 518400000 16 CENTURY Hotel .. 16 .. 388800000 16 CENTURY Hotel .. 17 .. 14400000 16 CENTURY Hotel .. 18 .. 12960000 16 CENTURY Hotel .. 110 .. 216000000 Neáu trong nhöõng baûng caàn keát noái coù teân tröôøng (coät) gioáng nhau thì khi thöïc thi phaùt bieåu SQL daïng SELECT phaûi chæ roõ coät thuoäc baûng naøo. Trong tröôøng hôïp caû hai cuøng laáy döõ lieäu ra thì baïn caàn chuyeån aùnh xaï teân khaùc cho coät thoâng qua meänh ñeà AS, ví duï nhö: SELECT first_tablename.CustID as CUSTID, second_tablename.CustID as CUSTID FROM INNER JOIN ON WHERE ORDER BY [ASC / DESC] Neáu trong nhöõng baûng caàn keát noái ñoù coù teân tröôøng (coät) gioáng nhau vaø khoâng ñöôïc chæ roõ nhö tröôøng hôïp treân khi khai baùo trong cô sôû döõ lieäu SQL Server, khi thöïc thi phaùt bieåu SQL daïng SELECT baïn seõ bò loãi, chaúng haïn nhö: SELECT first_tablename.*, second_tablename.* FROM INNER JOIN ON WHERE ORDER BY [ASC / DESC] Server: Msg 209, Lecel 16, State Line 1 Ambiguous column name 'CustID' Tuy nhieân, vôùi phaùt bieåu treân baïn coù theå thöïc thi trong cô sôû döõ lieäu MySQL. Ngoaøi ra, phaùt bieåu SQL daïng SELECT söû duïng INNER JOIN baïn coù theå aùnh xaï (alias) teân cuûa baûng thaønh teân ngaén goïn ñeå deã tham chieáu veà sau. Thöïc ra phaùt bieåu ALIAS coù yù nghóa gioáng nhö AS vôùi teân coät trong baûng thaønh teân coät khaùc trong phaùt bieåu SELECT. Select p.*,s.* from tablename1 inner join tablename2 On tablename1.field1 = tablename2.field2 Ví duï 8-25: INNER JOIN vôùi aùnh xaï teân baûng /* in ra danh saùch khaùch haøng mua haøng trong thaùng 10 */ Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Select c.CustName, s.OrderID,s.OrderDate, s.TotalAmount from tblCustomer c inner join tblOrders s On c.CustID=s.CustID where month (s.OrderDate) = 10 order by c.CustName DESC Keát quaû traû veà nhö sau: CustName OrderID OrderDate .. TotalAmount ----------------------------------------------CENTURY Hotel 13 2001- 10-17 .. 388800000 CENTURY Hotel 14 2001-10-18 .. 518400000 CENTURY Hotel 16 2001-10-17 .. 388800000 CENTURY Hotel 17 2001-10-18 .. 14400000 CENTURY Hotel 18 2001-10-18 .. 12960000 CENTURY Hotel 11 2001-10-18 .. 216000000 Plaza Hotel 12 2001-10-17 .. 403200000 Plaza Hotel 19 2001-10-17 .. 86400000 Plaza Hotel 11 2001-10-17 .. 576000000 Plaza Hotel 15 2001-10-17 .. 288000000 Taát nhieân, baïn cuõng coù theå vieát phaùt bieåu treân öùng vôùi töøng coät muoán laáy ra baèng caùch khai baùo teân coät. 6.4. Meänh ñeà Left Join Tröôøng hôïp baïn mong muoán keát quaû laáy ra trong hai baûng keát hôïp nhau theo ñieàu kieän: Nhöõng maåu tin baûng beân traùi toàn taïi öùng vôùi nhöõng maåu tin ôû baûng beân phaûi khoâng toàn taïi baïn haõy duøng meänh ñeà LEFT JOIN trong phaùt bieåu SQL daïng SELECT, cuù phaùp coù daïng: select from lefttablename LEFT JOIN righttablename on lefttabkename.field1=righttablename.field2 Where Order by ASC/DESC Chaúng haïn, baïn choïn ra taát caû caùc saûn phaåm (vôùi caùc coät) coù hay khoâng coù doanh soá baùn trong thaùng hieän taïi. Moät soá saûn phaåm khoâng baùn trong thaùng seõ coù coät Amount coù coät Amount giaù trò NULL. Ví duï 8-26: SELECT duøng LEFT JOIN /* in ra danh saùch saûn phaåm baùn trong thaùng 10 */ select ItemID,ItemName,Amount from tblItems left join tblOrderDetails on tblItems.ItemID=tblOrderDetails.ItemID order by Amount Keát quaû traû veà nhö sau: ItemID ItemName Amount ---------------------------------------------- 12 ASW-60VP NULL Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 13 ASW-60VT NULL 14 ASW-660T 120V TW 29340 NULL 14 ASW-685V 120V TW 29440 NULL 15 ASW60VP 220V 34571 NULL 16 ASW-45Z1T1 2960000 17 ASW-45Y1T 127V 14400000 18 ASW-45Y1T 220V 72000000 19 ASW-45Y1T 220V 86400000 20 ASW-45Z1T 15200000 ... 6.5. Meänh ñeà Right Join Ngöôïc laïi vôùi phaùt bieåu SQL daïng SELECT söû duïng meänh ñeà LEFT JOIN laø phaùt bieåu SQL daïng SELECT söû duïng meänh ñeà RIGHT JOIN seõ xuaát döõ lieäu cuûa baûng beân phaûi cho duø döõ lieäu cuûa baûng beân traùi khoâng toàn taïi, cuù phaùp coù daïng: Select From lefttablename RIGHT JOIN righttablename On lefttabkename.field1=righttablename.field2 Where Order by ASC/DESC Trong ví duï sau, baïn coù theå choïn ra taát caû caùc saûn phaåm coù hay khoâng coù doanh soá baùn trong thaùng hieän taïi. Caùc saûn phaåm khoâng toàn taïi doanh soá baùn seõ khoâng hieän ra. Ví duï 8-27: SELECT duøng RIGHT JOIN /* in ra danh saùch saûn phaåm baùn trong thaùng ngaøy 17 */ /* trong phaùt bieåu SELECT naøy coù söû duïng meänh ñeà WHERE söû duïng phaùt bieåu SELECT khaùc, keát quaû cuûa SELECT trong meänh ñeà WHERE traû veà moät maûng OrderID */ Select ItemName,Qtty, Price,Amount From tblItems Right join tblOrderDetails On tblItems.ItemID=tblOrderDetails.ItemID Where OrderID in (12,14,23,15) Order by ItemID Keát quaû traû veà nhö sau: ItemName Qtty Price Amount ---------------------------------------------- ASW-45Y1T 127V SDIA29350 11000 12000 58400000 ASW-45Y1T 127V SDIA29350 10000 12000 44000000 ASW-45Y1T 127V SDIA 29350 10000 12000 14400000 ASW-45Y1T 127V SDIA 29350 10000 12000 44000000 ASW-45Y1T 127V SDIA 29350 11000 12000 58400000 ASW-45Y1T 127V SDIA 29350 10000 12000 44000000 ASW-45Y1T 127V SDIA 29350 11000 12000 58400000 ASW-45Y1T 220V ARG 29391 6000 12000 86400000 ASW-45Z1T 9000 12000 29600000 ASW-45Z1T 9000 12000 29600000 ... Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com 6.6. Pheùp toaùn hôïp (union) Union khoâng gioáng nhö nhöõng meänh ñeà JOIN ñaõ giôùi thieäu treân ñaây. Union laø pheùp toaùn duøng ñeå noái hai hay nhieàu caâu truy vaán daïng Select laïi vôùi nhau. Ñoái vôùi JOIN, baïn coù theå keát noái döõ lieäu ñöôïc thöïc hieän theo chieàu ngang. Ñoái vôùi Union baïn keát noái döõ lieäu ñöôïc thöïc hieän theo chieàu doïc. Ñeå choïn ra nhöõng khaùch haøng thöôøng xuyeân trong tblCustomers, keát quaû traû veà laø danh saùch caùc khaùch haøng thöôøng xuyeân. Ví duï 8-28: Khaùch haøng thöôøng xuyeân trong tblCustomers Select CustID,CustName from tblCustomers Keát quaû traû veà nhö sau: CustID CustName ---------- ----------------- 13 New World Hotel 12 Kinh Do Hotel 16 CENTURY Hotel 10 PLAZA Hotel Ñeå choïn ra nhöõng khaùch haøng vaõng lai trong tblTempCustomers, keát quaû traû veà laø danh saùch caùc khaùch haøng vaõng lai. Ví duï 8-29: Khaùch haøng vaõng lai trong tblTempCustomers Select CustID,CustName from tblTempCustomers Keát quaû traû veà nhö sau: CustID CustName ---------- --------------------------------- 23 Cong ty nuoc giai khat ‘12’COLA 24 Cong ty nuoc giai khat PEPSI 25 Cong ty nuoc giai khat REDBULK 26 Cong ty nuoc giai khat TRIBICO Neáu duøng pheùp toaùn UNION ñeå keát noái hai baûng treân, keát quaû traû veà laø danh saùch caû hai loaïi khaùch haøng trong cuøng moät recordset. Ví duï 8-30: SELECT söû duïng pheùp hôïp UNION Select CustID,CustName From tblCustomers UNION Select CustID,CustName From tblTempCustomers Keát quaû traû veà nhö sau: CustID CustName Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ---------- ----------------------------------- 23 Cong ty nuoc giai khat ‘12’COLA 24 Cong ty nuoc giai khat PEPSI 25 Cong ty nuoc giai khat REDBULK 26 Cong ty nuoc giai khat TRIBICO 12 Kinh Do Hotel 10 PLAZA Hotel 16 CENTURY Hotel 13 New World Hotel Ghi chuù: Khi söû duïng pheùp toaùn Union trong phaùt bieåu SQL daïng Select, baïn caàn löu yù caùc quy ñònh sau: Taát caû nhöõng truy vaán trong UNION phaûi cuøng soá coät hay tröôøng. Neáu truy vaán thöù nhaát coù hai coät thì truy vaán thöù hai ñöôïc söû duïng UNION cuõng phaûi coù hai coät töông töï. Khi söû duïng UNION, nhöõng coät naøo coù teân coät hay bí danh (alias) môùi thì keát quaû traû veà seõ coù töïa ñeà (header) cuûa töøng coät vaø teân laø teân coät cuûa truy vaán thöù nhaát. Kieåu döõ lieäu trong caùc coät cuûa truy vaán 2 töông thích vôùi kieåu döõ lieäu caùc coät töông öùng trong truy vaán thöù nhaát. Trong UNION baïn coù theå keát hôïp nhieàu caâu truy vaán laïi vôùi nhau. Keát quaû hieän ra theo thöù töï cuûa truy vaán töø döôùi leân treân. 6.7. SQL daïng thay ñoåi vaø ñònh nghóa cô sôû döõ lieäu 6.7.1. Phaùt bieåu SQL daïng CREATE Phaùt bieåu SQL daïng CREATE duøng ñeå taïo cô sôû döõ lieäu vaø nhöõng ñoái töôïng cuûa cô sôû döõ lieäu trong MySQL, SQL Server, Oracle, ..., chuùng cuù phaùp nhö sau: CREATE Database CREATE OBJECT TYPE: Loaïi ñoái töôïng cuûa cô sôû döõ lieäu ví duï nhö Procedure, Table, View,... OBJECT NAME: Teân cuûa ñoái töôïng trong cô sôû döõ lieäu SQL nhö sp_IC, tblEmployer, ... 6.7.2. Taïo cô sôû döõ lieäu - Create database Khi xaây döïng cô sôû döõ lieäu, baïn baét ñaàu töø moâ hình cô sôû döõ lieäu ERD, hay töø moät giai ñoaïn naøo ñoù trong quy trình phaân tích thieát keá heä thoáng. Ñeå taïo cô sôû döõ lieäu treân MySQL hay SQL Server baïn söû duïng cuù phaùp sau: CREATE DATABASE Cuù phaùp ñaày ñuû cuûa phaùt bieåu taïo cô sôû döõ lieäu nhö sau, neáu baïn söû duïng cô sôû döõ lieäu SQL Server: CREATE DATABASE [ ON [PRIMARY] ( [Name= ,] FileName= [, SIZE= ] [, MAXSIZE= ][, FILEGROWTH = ] )] Giaùo vieân: Phaïm Höõu Khang
- COMPUTER LEARNING CENTER WWW.HUUKHANG.COM Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com [ LOG ON ( [Name= ,] FileName= [, SIZE= ] [, MAXSIZE= ][, FILEGROWTH = ] )] [COLLATE ] [For Load | For Attach] 6.7.3. Dieãn giaûi CREATE Database trong SQL Server ON: Duøng ñeå ñònh nghóa nôi chöùa cô sôû döõ lieäu vaø khoâng gian chöùa taäp tin log. NAME: Duøng ñònh nghóa teân cuûa cô sôû döõ lieäu. Teân naøy duøng tham chieáu khi goïi ñeán cô sôû döõ lieäu, teân ñöôïc duøng cho quaù trình backup, export, Import, Shrink cô sôû döõ lieäu ñoù. FILENAME: Teân taäp tin cô sôû döõ lieäu löu trong ñóa cöùng, thoâng thöôøng khi caøi SQL Server leân oå ñóa naøo thì giaù trò maëc ñònh cho pheùp löu taäp tin ñeán thö muïc ñoù. Tuy nhieân, neáu muoán baïn cuõng coù theå thay ñoåi vò trí caùc file naøy. Khi taïo cô sôû döõ lieäu, baïn ñaõ ñònh nghóa vò trí ñaët taäp tin ôû thö muïc naøo thì khoâng theå di chuyeån moät caùch thuû coâng (nhö duøng Explorer cuûa Windows), vì laøm ñieàu ñoù thaät nguy hieåm nhaát laø khi döõ lieäu trong cô sôû döõ lieäu ñang coù giaù trò kinh teá. SIZE: Dung löôïng cuûa cô sôû döõ lieäu khi khôûi taïo chuùng. Thoâng thöôøng giaù trò maëc ñònh laø 1 MB. Dung löôïng phaûi laø soá nguyeân, coù theå taêng theâm baèng caùch söû duïng thuû tuïc Shrink trong SQL Server. MAXSIZE: Dung löôïng lôùn nhaát, khi dung löôïng cô sôû döõ lieäu taêng leân ñeán möùc MaxSize thì döøng laïi. Neáu khi dung löôïng baèng MaxSize, caùc chuyeån taùc coù theå bò huyû boû hay traû veà loãi khoâng theå thöïc hieän ñöôïc, vaø coù theå laøm cho cô sôû döõ lieäu cuûa baïn bò treo. Ñeå traùnh ñieàu naøy xaûy ra, thì ngöôøi quaûn trò cô sôû döõ lieäu phaûi thöôøng xuyeân theo gioûi quaù trình taêng dung löôïng cô sôû döõ lieäu theo thôøi gian, ñeå coù bieän phaùp traùnh moïi ruûi ro coù theå xaûy ra. FILEGROWTH: Dung löôïng khôûi taïo cuøng dung löôïng toái ña cho pheùp taêng trong quaù trình theâm döõ lieäu vaøo cô sôû döõ lieäu. Nhaèm töï ñoäng hoùa, chuùng ta phaûi thieát laäp quaù trình taêng töï ñoäng theo chæ soá KB cho tröôùc hay tyû leä phaàn traêm theo dung löôïng ñang coù. LOG ON: Log on cho pheùp baïn quaûn lyù nhöõng chuyeån taùc xaûy ra trong quaù trình söû duïng cô sôû döõ lieäu cuûa SQL Server. Xaây döïng cô sôû döõ lieäu Test Nhö ñaõ trình baøy ôû treân, sau ñaây ví duï taïo cô sôû döõ lieäu Test coù cuù phaùp nhö sau: Ví duï 8-31: Taïo cô sôû döõ lieäu Test trong SQL Server USE master GO CREATE DATABASE Test ON ( NAME = Test, FILENAME = 'c:\mssql7\data\Testdat.mdf', Giaùo vieân: Phaïm Höõu Khang
CÓ THỂ BẠN MUỐN DOWNLOAD
-
GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 1
20 p | 246 | 90
-
GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 3
20 p | 128 | 49
-
GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 2
20 p | 122 | 45
-
GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 5
20 p | 147 | 44
-
GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 4
20 p | 106 | 42
-
GIÁO TRÌNH PHP - GIÁO VIÊN PHẠM HỮU KHANG - 7
20 p | 98 | 29
-
20 phương pháp học PHP dễ hiểu nhất
13 p | 95 | 13
-
PHP cơ bản - Bài 11: Viết ứng dụng thêm thành viên bằng PHP và MYSQL
7 p | 117 | 12
-
Những website tốt nhất để học PHP trực tuyến
6 p | 119 | 12
-
PHP cơ bản - Bài 15: Viết ứng dụng đếm số người online bằng php
5 p | 109 | 11
-
PHP cơ bản - Bài 13: Viết ứng dụng sửa xóa thành viên bằng PHP và MYSQL
8 p | 115 | 10
-
PHP cơ bản - Bài 8: Cơ bản về ngôn ngữ SQL và Mysq
7 p | 112 | 9
-
PHP cơ bản - Bài 12: Viết ứng dụng quản lý thành viên bằng PHP và MYSQL
5 p | 95 | 9
-
Giới thiệu: PHP Framework là gì
7 p | 78 | 6
-
PHP Performance: Kiểm soát việc sử dụng bộ nhớ scripts
4 p | 67 | 5
-
Quá trình xử lý ảnh thumbnail với PHP
6 p | 82 | 5
-
Lập trình PHP đang đến với Mobile
5 p | 79 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn