YOMEDIA
ADSENSE
Cơ bản về SQL Server 200
102
lượt xem 35
download
lượt xem 35
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Tài liệu tham khảo dùng cho các bạn theo học ngành công nghệ thông tin
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Cơ bản về SQL Server 200
- Khoa CNTT & TT - ÂHCT PHÁÖN 1. CÅ BAÍN VÃÖ SQL SERVER 2000 I. GIÅÏI THIÃÛU SÅ LÆÅÜC VÃÖ DËCH VUÛ SQL QUERY ANALYZER 1. Måí chæång trçnh Query Analyzer: Choün Start > All Programs > Microsoft SQL Server > Query Analyzer. Cæía säø âàng nháûp seî xuáút hiãûn nhæ hçnh 1: Nháúp choün maïy chuí muäún kãút näúi. Choün ä naìy: nghéa laì haîy khåíi âäüng SQL Server nãúu dëch vuû naìy chæa chaûy Choün kiãøu âàng nháûp: sæí duûng chæïng thæûc bàòng taìi khoaín cuía hãû âiãöu haình Windows hoàûc bàòng taìi khoaín SQL Server. Hçnh 1. Cæía säø âàng nháûp SQL Query Analyzer Sau khi choün OK, thç cæía säø Query Analyzer seî xuáút hiãûn nhæ hçnh 2: Hiãøn thë cæía säø Object CSDL hiãûn haình Browser Hçnh 2. Giao diãûn SQL Query Analyzer Giaïo Trçnh Thæûc Haình CSDL - Trang 1
- Tráön Ngán Bçnh 2. Cå såí dæî liãûu trong SQL Server: SQL Server læu træî CSDL dæåïi daûng file, mäüt CSDL bao gäöm: - 1 hoàûc nhiãöu data file: 1 file dæî liãûu chênh (*.mdf ) vaì khäng hoàûc nhiãöu file dæî liãûu phuû (*.ndf). - 1 hoàûc nhiãöu log file (*.ldf): âáy chênh laì nháût kyï giao taïc trãn CSDL. SQL Server quaín lyï cuìng luïc nhiãöu CSDL, chia laìm hai loaûi: - CSDL hãû thäúng (system databases): duìng âãø læu træî thäng tin quaín lyï toaìn bäü hãû thäúng SQL Server. Coï bäún CSDL hãû thäúng, âoï laì: master, model, tempdb, msdb - CSDL ngæåìi duìng (user databases): laì CSDL do ngæåìi duìng taûo ra. Coï 2 CSDL máùu sàôn coï sau khi caìi âàût laì: Northwind vaì pubs 3. Choün hay måí CSDL laìm viãûc: Vç hãû thäúng quaín lyï nhiãöu CSDL nãn khi laìm viãûc våïi SQL Server, âiãöu âáöu tiãn laì phaíi choün CSDL naìo âãø laìm viãûc trãn âoï. Coï 2 caïch: Caïch 1: Nháúp choün CSDL tæì danh saïch xäø xuäúng cuía combo box trãn thanh cäng cuû (xem hçnh 2) Caïch 2: Thæûc thi lãûnh: USE 4. Caïc kiãøu dæî liãûu thäng duûng trong SQL: Tãn kiãøu Giaíi thêch Biãøu diãùn hàòng 0, 1 Bit Säú nguyãn 0 hoàûc 1 -1000, 23455 Säú nguyãn tæì -231 (-2.147.483.648) âãún 231 - Int 1 (2.147.483.647) 32124, -764 Säú nguyãn tæì -215 ( - 32.768) âãún 215 - 1 SmallInt (32.767) 31, 45 TinyInt Säú nguyãn tæì 0 âãún 255 1894.1204 Caïc säú tháûp phán tæì -1038 - 1 âãún 1038 - 1 Decimal/ Numeric 234, -87.65 Tiãön tãû tæì -263 âãún 263 - 1 Money $12, $542023.14 -$45.56 SmallMoney Tiãön tãû tæì -214.748,3648 âãún 214.748,3647 -34.54 101.5E5 Float Säú thæûc tæì -1,79 E +308 âãún 1,79 E +308 0.5E-2 245.21E-10 Real Säú thæûc tæì -3.40 E + 38 âãún 3.40E + 38 'April 15, 1998' , DateTime Ngaìy giåì tæì 1/1/1753 âãún 31/10/9999 '15 April, 1998' , '980415' , '04/15/98' như DateTime SmallDateTime Ngaìy giåì tæì 1/1/1900 âãún 06/6/2079 '50% complete.' Char Kyï tæû coï âäü daìi ä nhåï cäú âënh vaì täúi âa laì 'O''Brien' Giaïo Trçnh Thæûc Haình CSDL - Trang 2
- Khoa CNTT & TT - ÂHCT "O'Brien" 8000 kê tæû (khäng häù tråü Unicode) ‘Nguyễn Văn Minh’ nchar Kyï tæû coï âäü daìi ä nhåï cäú âënh vaì täúi âa laì ‘Lương Tâm’ 4000 kê tæû (häù tråü Unicode) '50% complete.' varchar Kyï tæû coï âäü daìi ä nhåï khäng cäú âënh vaì täúi 'O''Brien' "O'Brien" âa laì 8000 kê tæû (khäng häù tråü Unicode) ‘Nguyễn Văn Minh’ nvarchar Kyï tæû coï âäü daìi ä nhåï khäng cäú âënh vaì täúi ‘Lương Tâm’ âa laì 4000 kê tæû (häù tråü Unicode) 5. Quan saït CSDL bàòng Object Browser: a. Quan saït læåüc âäö CSDL: Âãø coï thãø truy váún trãn mäüt CSDL naìo âoï, âiãöu quan troüng laì ta phaíi biãút læåüc âäö cuía CSDL âoï. Ta coï thãø quan saït læåüc âäö cuía caïc CSDL maì SQL Server âang quaín lyï bàòng caïch nháúp vaìo biãøu tæåüng trãn thanh cäng cuû hoàûc nháún F8. Khi âoï seî coï mäüt cæía säø doüc Object Browser xuáút hiãûn åí bãn traïi nhæ hçnh 3 cho pheïp ta quan saït cáúu truïc cuía caïc baíng trong CSDL nhæ sau: Tãn CSDL Tãn Baíng Tãn Cäüt Kiãøu cäüt Raìng buäüc Hçnh 3. Cæía säø Object Browser. Giaïo Trçnh Thæûc Haình CSDL - Trang 3
- Tráön Ngán Bçnh b.Måí baíng dæî liãûu: Âãø coï thãø truy váún âæåüc chênh xaïc, ngoaìi viãûc quan saït læåüc âäö CSDL, ta coìn phaíi quan saït dæî liãûu trong tæìng baíng. Ta coï thãø xem baíng bàòng Object browser nhæ hçnh 4. Nháúp phêm phaíi vaìo tãn baíng trong cæía säø Object Browser. => Menu xäø xuäúng xuáút hiãûn => Choün muûc Open => Baíng dæî liãûu seî hiãøn thë åí cæía säø bãn phaíi. Hçnh 4. Måí baíng dæî liãûu 6. Soaûn thaío vaì thæûc thi cáu truy váún: Nãúu chæa kãút näúi våïi SQL Server thç ta khäng thãø thæûc hiãûn truy váún. Âãø kãút näúi, ta vaìo menu File -> Connect. Khi âoï cæía säø kãút näúi seî xuáút hiãûn nhæ hçnh 1 åí trang on page 1. Sau khi kãút näúi thç xuáút hiãûn mäüt cæía säø cho pheïp soaûn thaío cáu truy váún nhæ hçnh 5. Thæûc thi cáu lãûnh (táûp lãûnh) Kiãøm tra cuï phaïp Cæía säø hiãøn thë kãút quaí Cæía säø nháûp truy váún Cæía Säø thäng baïo Hçnh 5. Soaûn thaío vaì thæûc thi truy váún Giaïo Trçnh Thæûc Haình CSDL - Trang 4
- Khoa CNTT & TT - ÂHCT Trong quaï trçnh thao taïc, coï thãø måí thãm nhiãöu táûp tin truy váún bàòng caïch vaìo menu File -> New hoàûc nháún Ctrl + N, hoàûc click vaìo biãøu tæåüng trãn thanh cäng cuû. a. Kiãøm tra cuï phaïp cáu lãûnh Sau khi goî cáu lãûnh vaìo pháön nháûp cáu lãûnh, coï thãø kiãøm tra cuï phaïp cáu lãûnh bàòng caïch nháúp vaìo biãøu tæåüng trãn thanh cäng cuû (xem hçnh 5) hoàûc nháún Ctrl + F5. Nãúu cáu lãûnh khäng coï läùi cuï phaïp thç cæía säø nhoí bãn phaíi dæåïi seî hiãøn thë cáu: The command(s) completed successfully. Nãúu cáu lãûnh coï läùi cuï phaïp thç läùi seî âæåüc hiãøn thë. b.Thæûc thi cáu lãûnh: Thæûc thi táút caí caïc cáu lãûnh trong táûp tin script hiãûn haình bàòng caïch nháúp vaìo nuït trãn thanh cäng cuû (xem hçnh 5) hoàûc nháún F5. Nãúu chè muäún thæûc thi mäüt hoàûc mäüt säú cáu lãûnh naìo thäi thç bäi âen caïc lãûnh âoï vaì nháún F5. c. Ghi chuï trong SQL Query Analyzer: Khi cáön ghi chuï thêch hoàûc taûm âoïng khäng thæûc thi mäüt âoaûn lãûnh naìo âoï, ta coï thãø sæí duûng kê hiãûu ghi chuï nhæ sau: o Ghi chuï mäüt doìng: Âàût dáúu -- træåïc doìng ghi chuï o Ghi chuï nhiãöu doìng: Âàût ghi chuï trong càûp dáúu /* ... */ d.Læu laûi truy váún trong táûp tin lãûnh (script): (*.sql) Sau khi nháûp vaìo caïc cáu truy váún (nhæ hçnh 5), caïc cáu lãûnh truy váún coï thãø âæåüc læu laûi dæåïi daûng file text (*.sql) bàòng caïch choün File > Save hoàûc nháún Ctrl + S. Táûp tin naìy sau khi læu vaìo âéa coï thãø âæåüc måí lãn laûi âãø thæûc thi bàòng caïch vaìo File > Open. 7. Mäüt säú haìm thäng duûng trong SQL Server: a. Xæí lyï chuäùi: Læu yï: SQL Server khäng phán biãût chæî hoa vaì chæî thæåìng. Vç váûy: âiãöu kiãûn: lower(ten_ctr)='khach san QUOC TE' => váùn cho ra kãút quaí Mäüt säú haìm xæí lyï chuäùi thäng duûng: LEN(): Traí vãö chiãöu daìi chuäùi LOWER(): âäøi sang daûng chæî thæåìng VD: Select LOWER(“Tran PHI phap”) => “tran phi phap” UPPER(): âäøi sang daûng chæî hoa VD: Select UPPER(“Tran PHI phap”) => “TRAN PHI PHAP” LEFT(, ): traí vãö chuäùi måïi gäöm n kyï tæû bãn traïi cuía Giaïo Trçnh Thæûc Haình CSDL - Trang 5
- Tráön Ngán Bçnh VD: Select LEFT(‘Tin Hoc’, 3) => ‘Tin’ RIGHT(, ): traí vãö chuäùi måïi gäöm n kyï tæû bãn phaíi cuía SUBSTRING(, ,): traí vãö chuäùi con bàòng caïch láúy tæì m kyï tæû tæì vë trê n. VD: Select SUBSTRING(‘Tin Måïi Hoüc’, 5, 3) => ‘Måïi’ STUFF(, , , ): thay m kyï tæû trong tæì vë trê n bàòng . VD: Select STUFF (‘Tin Hoüc’, 5, 0, ‘Måïi ’) => ‘Tin Måïi Hoüc’ -- xen vaìo Select STUFF(‘Tin Haîy Hoüc’, 5, 3, ‘Måïi’) => ‘Tin Måïi Hoüc’ -- thay thãú Select STUFF(‘Tin Haîy Hoüc’, 5, 4, ‘’) => ‘Tin Hoc’ -- xoïa CHARINDEX ( , [ , ] ): traí vãö vë trê xuáút hiãûn láön âáöu tiãn cuía chuäùi 1 trong chuäùi 2, bàõt âáöu tçm tæì vë trê thæï n cuía chuäùi 2. VD: Select CHARINDEX (‘qua’, ‘noi qua ma hong qua’) => 5 Select CHARINDEX (‘qua’, ‘noi qua ma hong qua’, 6) => 17 PATINDEX ( , ): traí vãö vë trê bàõt âáöu xuáút hiãûn máùu láön âáöu tiãn trong chuäùi, nãúu khäng tçm tháúy máùu thç traí vãö 0. VD:SelectPATINDEX(‘%om%’, ‘lom khom duoi nui tieu vai chu’) => 2 Select PATINDEX(‘%__om %’, ‘lom khom duoi nui tieu vai chu’) => 5 b.Xæí lyï ngaìy Læu yï: - Kiãøu DATETIME cuía SQL Server bao gäöm nhiãöu thaình pháön: ngaìy / thaïng / nàm/ giåì / phuït / giáy / pháön triãûu cuía giáy . - Âãø traïnh nhàòm láùn: nãn mä taí nàm bàòng 4 chæî säú, mä taí thaïng bàòng tãn tàõt cuía thaïng (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec). GETDATE(): Cho kãút quaí laì ngaìy hiãûn haình. DATEPART(, ): Traí vãö giaï trë cuía trong . Caïc thaình pháön thäng duûng cuía ngaìy gäöm coï: Thaình pháön Viãút tàõt YÏ nghéa Year yy, yyyy Nàm Quarter qq, q Quê Month mm, m Thaïng Dayofyear dy, y Ngaìy cuía nàm (1-> 366) Day dd, d Ngaìy cuía thaïng (1 -> 31) Giaïo Trçnh Thæûc Haình CSDL - Trang 6
- Khoa CNTT & TT - ÂHCT Week wk, ww Tuáön trong nàm (1 -> 52) WeekDay Dw Ngaìy trong tuáön (1 -> 7) Hour hh Giåì (1 -> 24) VD: Select DATEPART (year, GETDATE()) => 2006 Select DATEPART(week, ’20 Aug, 2006’) => 34 DATEADD (,, ): cäüng vaìo cuía mäüt säú n. VD: Select DATEADD (week, 5, ’20 Aug, 2006’) => 2006-09-24 Cho biãút 10 ngaìy sau kãø tæì ngaìy 05/08/2006 laì ngaìy thæï máúy: Select DATEPART (weekday, DATEADD (day, 10, ‘5 Aug, 2006’)) => 3(thæï ba) DATEDIFF ( , , ): traí vãö säú khaïc biãût giæîa 2 thaình pháön cuía ngaìy bàõt âáöu vaì ngaìy kãút thuïc. VD: Cho biãút tæì ngaìy 05/08/2006 âãún ngaìy 11/9/2006 coï bao nhiãu ngaìy: Select DATEDIFF (day, ‘5 Aug, 2006’, ’11 Sep, 2006’) => 37 ngaìy Select DATEDIFF (hour, ‘5 Aug, 2006’, ’11 Sep, 2006’) => 888 giåì DATENAME(, ): Traí vãö tãn cuía trong . VD: Select DATENAME (month, ‘5 Aug, 2006’) => August Select DATENAME (weekday, ‘5 Aug, 2006’) => Saturday c. Caïc haìm xæí lyï säú FLOOR(): Cho kãút quaí laì säú nguyãn gáön nháút nhoí hån hoàûc bàòng VD: SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45) => 123 -124 123.0000 CEILING(): Cho kãút quaí laì säú nguyãn gáön nháút låïn hån hoàûc bàòng VD: SELECT CEILING(123.45), CEILING(-123.45), CEILING($123.45) => 124 -123 124.0000 d.Haìm chuyãøn âäøi kiãøu CAST ( AS ): Traí vãö våïi måïi. VD: SELECT 10 + cast ('34.5' as float) => 44.5 SELECT right(CAST(124 AS char(4)) , 2) => 4 Giaïo Trçnh Thæûc Haình CSDL - Trang 7
- Tráön Ngán Bçnh e. Cáúu Truïc Phán Nhaïnh CASE: Âaïnh giaï danh saïch caïc âiãöu kiãûn vaì traí vãö biãøu thæïc phuì håüp. CASE coï hai daûng: • Daûng âån giaín: So saïnh hai biãøu thæïc âãø xaïc âënh kãút quaí traí vãö. CASE WHEN THEN [WHEN THEN ...] [ ELSE ] END • Daûng tçm kiãúm: Âaïnh giaï caïc âiãöu kiãûn âãø xaïc âënh kãút quaí traí vãö. CASE WHEN THEN [WHEN THEN ...] [ ELSE ] END VD: Select CASE When 10 > 2 THEN 'DUNG' When 10 = 3 THEN 'SAI' END => DUNG Giaïo Trçnh Thæûc Haình CSDL - Trang 8
- Khoa CNTT & TT - ÂHCT II. CAÏC LÄÙI THÆÅÌNG GÀÛP TRONG SQL 1. Tãn cäüt khäng tçm tháúy trong baíng: Thäng baïo läùi: Invalid column name . Khi gàûp läùi naìy haîy xem laûi tãn cäüt (coìn goüi laì tãn thuäüc tênh/ tãn træåìng) trong cáu lãûnh âaî âuïng chæa. 2. Tãn baíng khäng tçm tháúy: Thäng baïo läùi: Invalid object name . Khi gàûp läùi naìy haîy xem laûi tãn baíng trong cáu lãûnh âaî âuïng chæa. 3. Läùi cuï phaïp: Thäng baïo läùi: Incorrect Syntax near . Khi gàûp läùi naìy haîy xem laûi cuï phaïp trong cáu lãûnh âaî âuïng chæa, coï thãø sai tæì khoïa (goí sai caïc tæì SELECT, FROM, WHERE, ..), hoàûc thiãúu dáúu ngoàûc cuía haìm hoàûc cuía select con, ... 4. Tãn cäüt coï màût åí nhiãöu baíng Thäng baïo läùi: Ambiguous column name Khi gàûp läùi naìy haîy xem laûi gáy läùi trong cáu lãûnh âaî coï âàût tãn baíng hoàûc bê danh âæïng træåïc chæa. Cuï phaïp: .MA_HANG 5. Pheïp so saïnh khäng tæång thêch kiãøu Thäng baïo läùi: Error converting data type ... hoàûc Syntax error converting ... Khi gàûp läùi naìy haîy xem laûi trong cáu lãûnh âaî coï pheïp toaïn so saïnh naìo âoï khäng tæång thêch kiãøu dæî liãûu. Giaïo Trçnh Thæûc Haình CSDL - Trang 9
- Tráön Ngán Bçnh III. HÆÅÏNG DÁÙN THÆÛC HAÌNH 1. Måí Query Analyzer âàng nháûp vaìo SQL Server trãn maïy chuí. 2. Quan saït CSDL: Sæí duûng Object Browser âãø xem cáúu truïc cuía caïc baíng cuîng nhæ dæî liãûu cuía tæìng træåìng vaì måí tæìng baíng dæî liãûu âãø quan saït nhæ hæåïng dáùn åí muûc I.5 åí trang 3 . Khi quan saït CSDL cáön læu yï: Sæû liãn thäng giæîa caïc baíng dæî liãûu. Täút nháút laì veî så âäö liãn thäng lãn giáúy nhaïp âãø coï - thãø tham khaío trong quaï trçnh truy váún thäng tin tæì nhiãöu baíng. Kiãøu dæî liãûu cuía tæìng træåìng, âãø âàût âiãöu kiãûn trãn caïc cäüt cho âuïng kiãøu hoàûc aïp duûng - caïc haìm xæí lyï dæî liãûu phuì håüp. 3. Måí CSDL muäún truy váún: Nhæ âaî hæåïng dáùn åí muûc I.3 åí trang 2 4. Soaûn thaío vaì thæûc hiãûn cáu truy váún. Nhæ âaî hæåïng dáùn åí muûc I.6 åí trang 4 5. Quan saït kãút quaí vaì kiãøm chæïng. Cáön phaíi kiãøm tra laûi kãút quaí truy váún xem coï âuïng hay khäng bàòng caïch måí laûi caïc baíng âãø kiãøm tra xem kãút quaí âaût âæåüc coï âuïng nhæ mong muäún. 6. Læu laûi caïc cáu truy váún vaìo táûp tin *.sql. IV. CAÏCH LÆU VAÌ XOÏA BAÍNG TAÛM: Trong khi thæûc hiãûn mäüt säú truy váún, thènh thoaíng ta cáön læu laûi nhæîng kãút quaí truy váún taûm thåìi vaìo mäüt baíng naìo âoï bàòng mãûnh âãö INTO trong cáu lãûnh SELECT. Trong quaï trçnh thæûc táûp, CSDL seî âæåüc âàût trãn server vaì caïc maïy client chè âæåüc quyãön truy xuáút (âoüc) caïc baíng maì khäng âæåüc quyãön ghi, nãn trong træåìng håüp muäún læu thäng tin taûm vaìo baíng thç ta seî læu vaìo baíng taûm (laì nhæîng baíng coï tãn bàõt âáöu bàòng dáúu #), caïc baíng naìy seî âæåüc taûo trong CSDL tempdb cuía hãû thäúng SQL Server. Khi client ngæng kãút näúi våïi Server thç caïc baíng naìy seî tæû âäüng bë xoïa. VD: Select STT_CTR, count(*) As TongSoCN Into #CAU_3E From THAMGIA Group by STT_CTR Trong khi client váùn coìn âang kãút näúi thç nhæîng baíng taûm naìy váùn coìn trong CSDL tempdb. Chàóng haûn, sau khi chaûy xong cáu VD trãn, nãúu ta chaûy laûi cáu lãûnh naìy thç SQL seî baïo läùi laì baíng taûm naìy âaî täön taûi. Vç váûy, ta phaíi xoïa baíng taûm naìy træåïc khi muäún chaûy laûi cáu lãûnh trãn bàòng lãûnh xoïa DROP TABLE . VD: DROP TABLE #CAU_#E Giaïo Trçnh Thæûc Haình CSDL - Trang 10
- Khoa CNTT & TT - ÂHCT V. CHEÏP CSDL: 1. Sao læu laûi CSDL: Coï thãø cheïp CSDL tæì maïy naìy sang maïy khaïc bàòng caïch sæí duûng lãûnh sao læu CSDL cuía SQL Server. Âãø sao læu mäüt CSDL ta thæûc hiãûn caïc bæåïc sau: a. Måí CSDL muäún sao læu bàòng lãûnh: USE b.Taûo thiãút bë sao læu gàõn våïi mäüt táûp tin sao læu bàòng lãûnh: EXEC sp_addumpdevice ‘disk’ , ‘’, ‘’ c. Ra lãûnh sao læu CSDL vaìo thiãút bë sao læu: BACKUP DATABASE TO VD: Sao læu CSDL coï tãn laì CSDL1 vaìo äø âéa D vaì âàût tãn laì CSDL1_backup.bak: Bæåïc 1. Måí CSDL cáön cheïp: USE CSDL1 Bæåïc 2. Taûo thiãút bë sao læu tãn BAK1 gàõn våïi táûp tin D:\CSDL1_backup.bak EXEC sp_addumpdevice ‘disk’, ‘BAK1’, ‘D:\CSDL1_backup.bak’ Bæåïc 3. Ra lãûnh sao læu CSDL1 vaìo thiãút bë sao læu væìa taûo BAK1 BACKUP DATABASE CSDL1 TO BAK1 Læu yï: Khäng thãø taûo hai thiãút bë sao læu cuìng tãn. Nghéa laì nãúu âaî taûo thiãút bë BAK1 räöi thç nhæîng láön sao cheïp sau khäng cáön phaíi thæûc hiãûn bæåïc 2 næîa. 2. Phuûc häöi CSDL tæì táûp tin âaî sao læu: Giaí sæí ta muäún cheïp CSDL1 vãö maïy nhaì (âaî coï caìi SQL Server). Thç ta seî thæûc hiãûn caïc bæåïc sau: Thæûc hiãûn sao læu CSDL1 nhæ âaî hæåïng dáùn åí muûc trãn. - Cheïp táûp tin sao læu vãö maïy nhaì. - Måí Query Analyzer - Ra lãûnh phuûc häöi CSDL1 tæì táûp tin sao læu: - RESTORE DATABASE FROM DISK = ’’ Giaïo Trçnh Thæûc Haình CSDL - Trang 11
- Tráön Ngán Bçnh PHÁÖN 2. BAÌI TÁÛP THÆÛC HAÌNH Pháön thæûc haình âæåüc chia thaình 5 baìi. Trong 4 baìi âáöu tiãn, mäùi baìi seî táûp trung reìn luyãûn mäüt daûng cáu hoíi truy váún. Mäùi baìi seî coï bäú cuûc nhæ sau: Muûc tiãu - Lyï thuyãút: Nhàõc laûi mäüt caïch ngàõn goün cáu lãûnh SELECT cáön duìng trong baìi. - Baìi táûp coï hæåïng dáùn: Gäöm mäüt säú cáu hoíi truy váún trãn mäüt CSDL cho træåïc. Mäùi cáu - hoíi seî âæåüc phán têch âãø âi âãún cáu lãûnh Select. Nhæîng âiãøm cáön læu yï seî âæåüc nháún maûnh. Ngoaìi ra, mäüt säú cáu hoíi nhoí seî âæåüc âæa ra trong tçnh huäúng cuía cáu hoíi giuïp sinh viãn hiãøu roî hån váún âãö. Baìi táûp tæû laìm: gäöm mäüt säú cáu hoíi truy váún trãn mäüt CSDL khaïc våïi pháön baìi táûp coï - hæåïng dáùn. Baìi thæûc haình 5 daình cho baìi táûp täøng håüp gäöm táút caí caïc daûng cáu hoíi, vaì sinh viãn seî tæû thæûc hiãûn maì khäng coï pháön hæåïng dáùn. BAÌI 1 I. MUÛC ÂÊCH Luyãûn táûp khaí nàng nháûn biãút sæû thäng thæång trong mäüt cå såí dæî liãûu, tæì âoï kãút näúi dæî liãûu âãø truy xuáút thäng tin cáön thiãút. II. LYÏ THUYÃÚT Cáu lãûnh SQL sæí duûng trong baìi naìy: SELECT FROM [] [, [] [,...] ] [ WHERE ] III. BAÌI TÁÛP COÏ HÆÅÏNG DÁÙN: 1. CSDL: Quaín lyï cäng trçnh (CSDL1) Baíng 1. KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KTS) Mäùi kiãún truïc sæ coï mäüt hoü tãn, mäüt nàm sinh, phai, nåi täút nghiãûp, âëa chè liãn laûc. Giaí sæí khäng coï hai kiãún truïc sæ truìng tãn. Baíng 2. CHUTHAU(TEN_THAU, TEL, DCHI_THAU) Mäùi chuí tháöu xáy dæûng cäng trçnh âãöu coï mäüt tãn tháöu, mäüt säú âiãûn thoaûi vaì mäüt âëa chè. Giaí sæí khäng coï hai chuí tháöu truìng tãn. Baíng 3. CHUNHAN(TEN_CHU, DCHI_CHU) Mäùi chuí nhán cuía mäüt cäng trçnh âãöu coï mäüt tãn chuí nhán vaì mäüt âëa chè. Giaí sæí khäng coï hai chuí nhán truìng tãn. Giaïo Trçnh Thæûc Haình CSDL - Trang 12
- Khoa CNTT & TT - ÂHCT Baíng 4. CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) Mäùi cäng nhán tham gia xáy dæûng caïc cäng trçnh âãöu coï mäüt hoü tãn, mäüt nàm sinh, mäüt nàm vaìo nghãö, vaì mäüt chuyãn män naìo âoï. Giaí sæí khäng coï hai cäng nhán truìng hoü tãn. Baíng 5. CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) Mäùi cäng trçnh coï mäüt säú thæï tæû, mäüt tãn cäng trçnh, mäüt âëa chè, thuäüc vãö mäüt tènh thaình naìo âoï, âæåüc xáy dæûng våïi mäüt kinh phê (âån vë tênh laì triãûu âäöng), thuäüc vãö såí hæîu cuía mäüt chuí nhán, do mäüt chuí tháöu xáy dæûng, vaì âæåüc khåíi cäng xáy tæì mäüt ngaìy naìo âoï. Baíng 6. THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) Mäüt cäng nhán coï thãø tham gia xáy dæûng nhiãöu cäng trçnh, vaì mäüt cäng trçnh cuîng coï nhiãöu cäng nhán tham gia. Khi mäüt cäng nhán tham gia vaìo mäüt cäng trçnh naìo âoï seî âæåüc ghi nháûn laûi ngaìy bàõt âáöu tham gia vaì säú ngaìy tham gia. Baíng 7. THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) Mäüt kiãún truïc sæ coï thãø thiãút kãú nhiãöu cäng trçnh, mäùi cäng trçnh cuîng coï thãø do nhiãöu kiãún truïc sæ cuìng thiãút kãú. Khi mäüt kiãún truïc sæ thiãút kãú mäüt cäng trçnh seî coï mäüt thuì lao tæång æïng. 2. Yãu cáöu 1: Tçm sæû thäng thæång giæîa caïc baíng trong CSDL: CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KTS) THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) CHUTHAU(TEN_THAU, TEL, DCHI_THAU) CHUNHAN(TEN_CHU, DCHI_CHU) 3. Yãu cáöu 2: Måí caïc baíng dæî liãûu âãø xem kiãøu dæî liãûu cuía tæìng træåìng vaì quan saït dæî liãûu cuía tæìng baíng. Giaïo Trçnh Thæûc Haình CSDL - Trang 13
- Tráön Ngán Bçnh 4. Yãu cáöu 3: Haîy viãút cáu lãûnh SQL âãø traí låìi caïc cáu hoíi sau: a. Haîy cho biãút tãn vaì âëa chè caïc cäng trçnh do chuí tháöu Cäng ty xáy dæûng säú 6 thi cäng. Phán têch cáu hoíi: Yãu cáöu cho biãút: TEN_CTR, DCHI_CTR => láúy tæì baíng: CGTRINH Âiãöu kiãûn: TEN_THAU = ‘Cty xd so 6’ =>Trong CSDL, tãn tháöu coï màût åí caí hai baíng CGTRINH vaì CHUTHAU, nãn ta chè cáön âàût ÂK trãn baíng CGTRINH âaî choün åí bæåïc trãn. Læu yï: Sinh viãn cáön phaíi måí baíng CGTRINH âãø xem dæî liãûu thæûc tãú cuía baíng; nhæ trong træåìng håüp naìy tãn tháöu Cäng Ty xáy dæûng säú 6 âæåüc læu træî thaình chuäùi ‘Cty xd so 6’. Cáu truy váún: Select TEN_CTR, DCHI_CTR From CGTRINH Where TEN_THAU = ‘Cty xd so 6’ b.Tçm tãn vaì âëa chè liãn laûc cuía caïc chuí tháöu thi cäng cäng trçnh åí Cáön Thå do kiãún truïc sæ Lã Kim Dung thiãút kãú. Phán têch cáu hoíi: Yãu cáöu cho biãút: TEN_THAU, DCHI_THAU => Láúy tæì baíng: CHUTHAU Âiãöu kiãûn: TINH_THANH = ‘Can tho’ => Âàût ÂK trãn baíng: CGTRINH Vaì HOTEN_KTS = ‘Le Kim Dung’ => Trong CSDL, hoü tãn KTS coï màût åí caí hai baíng KTRUCSU vaìTHIETKE, nhæng ta phaíi choün baíng THIETKE, vç baíng naìy måïi cho biãút KTS naìo thiãút kãú cäng trçnh naìo, vç váûy ta âàût ÂK trãn baíng: THIETKE Nhæ váûy, ta seî truy xuáút 3 baíng: CHUTHAU, CGTRINH, THIETKE. Ta tháúy caïc baíng naìy âãöu liãn thäng våïi nhau, nghéa laì chuïng coï cäüt chung, coï thãø näúi kãút tæû nhiãn âæåüc. Læu yï: Khi cáu truy váún truy xuáút thäng tin tæì nhiãöu baíng thç nhåï phaíi: - Mä taí âáöy âuí caïc âiãöu kiãûn kãút näúi caïc baíng. - Caïc cäüt chung phaíi âàût tãn baíng (hoàûc bê danh nãúu baíng âaî coï bê danh) phêa træåïc tãn cäüt, phán caïch bàòng dáúu cháúm. - Khi âàût bê danh cho baíng coï thãø coï hoàûc khäng coï tæì khoïa AS Cáu truy váún: Select TEN_THAU, DCHI_THAU From CHUTHAU as a, CGTRINH b, THIETKE as c Where a.TEN_THAU = b.TEN_THAU And b.STT_CTR = c.STT_CTR; And TINH_THANH = ‘Can tho’ And HOTEN_KTS = ‘Le Kim Dung’ Giaïo Trçnh Thæûc Haình CSDL - Trang 14
- Khoa CNTT & TT - ÂHCT c. Haîy cho biãút nåi täút nghiãûp cuía caïc kiãún truïc sæ âaî thiãút kãú cäng trçnh Khaïch Saûn Quäúc Tãú åí Cáön Thå. Phán têch cáu hoíi: Yãu cáöu cho biãút: NOI_TN => Láúy tæì baíng: KTRUCSU Âiãöu kiãûn: TEN_CTR = ‘KS Quoc Te’ => Âàût ÂK trãn baíng: CGTRINH Vaì TINH_THANH =’Can Tho’ Nhæ váûy, ta seî truy xuáút 2 baíng: KTRUCSU vaì CGTRINH. Tuy nhiãn, ta tháúy hai baíng naìy khäng liãn thäng nhau hay khäng coï cäüt chung, khäng thãø näúi kãút tæû nhiãn âæåüc. Hay noïi caïch khaïc, hai baíng naìy khäng cho biãút KTS naìo âaî thiãút kãú cäng trçnh Khaïch saûn quäúc tãú. Váûy, ta phaíi thãm vaìo baíng THIETKE trong truy váún. Cáu truy váún: Select NOI_TN From KTRUCSU as a, CGTRINH as b, THIETKE as c Where a.HOTEN_KTS = c.HOTEN_KTS And b.STT_CTR = c.STT_CTR; And TEN_CTR = ‘KS Quoc Te’ And TINH_THANH =’Can Tho’ d.Cho biãút hoü tãn, nàm sinh, nàm vaìo nghãö cuía caïc cäng nhán coï chuyãn män haìn hoàûc âiãûn âaî tham gia caïc cäng trçnh maì chuí tháöu Lã Vàn Sån âaî truïng tháöu. Phán têch cáu hoíi: Yãu cáöu cho biãút: HOTEN_CN, NAMS_CN, NAM_VAO_N => Láúy tæì baíng: CONGNHAN Âiãöu kiãûn: CH_MON = ‘Han’ => Âàût ÂK trãn baíng: CONGNHAN Hoàûc CH_MON = ‘Dien’ Vaì TEN_THAU = ‘Le Van Son’ => Âàût ÂK trãn baíng: CGTRINH Nhæ váûy, ta seî truy xuáút 2 baíng: CONGNHAN vaì CGTRINH. Tæång tæû nhæ cáu c, hai baíng naìy khäng cho biãút cäng nhán naìo âaî tham gia cäng trçnh naìo. Váûy, ta phaíi thãm vaìo baíng THAMGIA trong truy váún. Læu yï: Trong danh saïch caïc âiãöu kiãûn væìa coï AND væìa coï OR, ta phaíi duìng dáúu ngoàûc âãø chè roî thæï tæû kiãøm tra âiãöu kiãûn. Cáu truy váún: Select HOTEN_CN, NAMS_CN, NAM_VAO_N From CONGNHAN a, CGTRINH b, THAMGIA c Where a.HOTEN_CN = c.HOTEN_CN And b.STT_CTR = c.STT_CTR And ( CH_MON = ‘Han’ or CH_MON = ‘Dien’ ) And TEN_THAU = ‘Le Van Son’ Giaïo Trçnh Thæûc Haình CSDL - Trang 15
- Tráön Ngán Bçnh e. Nhæîng cäng nhán naìo âaî bàõt âáöu tham gia cäng trçnh Khaïch saûn Quäúc Tãú åí Cáön Thå trong giai âoaûn tæì ngaìy 15/12/94 âãún ngaìy 31/12/94, säú ngaìy tæång æïng laì bao nhiãu. Phán têch cáu hoíi: Yãu cáöu cho biãút: HOTEN_CN, NGAY_TGIA, SO_NGAY => Ta láúy tæì baíng: THAMGIA (Ta khäng cáön láúy tæì baíng CONGNHAN vç khäng cáön caïc thäng tin khaïc cuía cäng nhán) Âiãöu kiãûn: NGAY_TGIA thuäüc ‘12/15/94’ -> ‘12/31/94’ => Âàût ÂK trãn THAMGIA TEN_CTR = ‘KS Quoc Te’ => Âàût ÂK trãn baíng: CGTRINH Vaì TINH_THANH =’Can Tho’ Nhæ váûy, ta seî truy xuáút 2 baíng: THAMGIA vaì CGTRINH. Læu yï: Cáön læu yï vãö caïch biãøu diãùn ngaìy thaïng maì hãû thäúng âang sæí duûng. Chàóng haûn ‘mm/dd/yy’. An toaìn nháút laì biãøu diãùn thaïng bàòng tãn; vd: ’15 Dec, 1994’ hoàûc ‘Dec 15, 1994’ Cáu truy váún: Select HOTEN_CN, NGAY_TGIA, SO_NGAY From CGTRINH as b, THAMGIA as c Where b.STT_CTR = c.STT_CTR And NGAY_TGIA between ‘Dec 15, 1994’ And ‘Dec 31, 1994’ And TEN_CTR = ‘KS Quoc Te’ And TINH_THANH =’Can Tho’ f. Cho biãút tãn vaì âëa chè cuía cäng trçnh maì cäng nhán Nguyãùn Häng Ván âang tham gia vaìo ngaìy 18/12/94. Phán têch cáu hoíi: Yãu cáöu cho biãút: TEN_CTR, DCHI_CTR => Ta láúy tæì baíng: CGTRINH Âiãöu kiãûn: Âang tham gia vaìo ngaìy 18/12/94 coï nghéa laì: ngaìy 18/12/94 phaíi nàòm trong khoaíng tæì ngaìy bàõt âáöu vaì ngaìy kãút thuïc tham gia (ngaìy kãút thuïc tæïc laì ngaìy bàõt âáöu tham gia + säú ngaìy tham gia). => NGAY_TGIA = ‘12/18/94’ => Âàût ÂK trãn THAMGIA HOTEN_CN = ‘Nguyen Hong Van’ Læu yï: Âãø cäüng ngaìy thaïng trong SQL Server, ta duìng haìm DATEADD. Tham khaío taûi pháön giåïi thiãûu caïc haìm xæí lyï ngaìy thaïng åí trang 6 Cáu truy váún: Select TEN_CTR, DCHI_CTR From CGTRINH as b, THAMGIA as c Where b.STT_CTR = c.STT_CTR And NGAY_TGIA = ‘Dec 18, 1994’ And HOTEN_CN = ‘Nguyen Hong Van’ Giaïo Trçnh Thæûc Haình CSDL - Trang 16
- Khoa CNTT & TT - ÂHCT g. Cho biãút hoü tãn vaì nàm sinh cuía caïc kiãún truïc sæ âaî täút nghiãûp åí thaình phäú Häö Chê Minh vaì âaî thiãút kãú êt nháút mäüt cäng trçnh coï kinh phê âáöu tæ trãn 400 triãûu âäöng. Phán têch cáu hoíi: Yãu cáöu cho biãút: HOTEN_KTS, NAMS_KTS => Láúy tæì baíng: KTRUCSU Âiãöu kiãûn: NOI_TN = ‘TP HCM’ => Âàût ÂK trãn baíng: KTRUCSU Vaì KINH_PHI > 400 => Âàût ÂK trãn baíng: CGTRINH Nhæ váûy, ta seî truy xuáút 2 baíng: KTRUCSU vaì CGTRINH. Tæång tæû cáu c, vç hai baíng naìy khäng liãn thäng nhau nãn ta phaíi thãm vaìo baíng THIETKE trong truy váún. Læu yï: - Vç âån vë tênh cuía kinh phê trong CSDL laì triãûu âäöng nãn 400 triãûu seî laì 400. -Tæì ‘êt nháút mäüt’ trong cáu truy váún coï thãø boí qua vç nãúu mäüt KTS khäng coï cäng trçnh naìo thoaí âiãöu kiãûn thç khi âàût ÂK choün vaì kãút näúi, KTS âoï seî tæû âäüng bë loaûi boí. Quy luáût naìy aïp duûng âuïng cho moüi cáu truy váún. Cáu truy váún: Select HOTEN_KTS, NAMS_KTS From KTRUCSU a, CGTRINH b, THIETKE c Where a.HOTEN_KTS = c.HOTEN_KTS And b.STT_CTR = c.STT_CTR; And NOI_TN = ‘TP HCM’ And KINH_PHI > 400 IV. BAÌI TÁÛP TÆÛ LAÌM: 1. CSDL: Quaín lyï baïo chê (CSDL2) Baíng 1. BAIBAO(STT_BAI, TUA, MA_THLOAI) Mäùi baìi baïo âæåüc âaïnh mäüt säú thæï tæû phán biãût, coï mäüt tæûa baìi vaì cho biãút noï thuäüc thãø loaûi naìo. Baíng 2. BAO_TCHI(MA_BAO_TC, TEN, DCHI_TS, TEL, DINH_KY) Mäùi tåì baïo hoàûc taûp chê coï mäüt maî riãng biãût, coï mäüt tãn, mäüt âëa chè toaì soaûn, mäüt säú âiãûn thoaûi, vaì âæåüc xuáút baín theo mäüt âënh kyì naìo âoï. Baíng 3. THE_LOAI(MA, DGIAI) Mäùi thãø loaûi baìi baïo coï mäüt maî thãø loaûi vaì mäüt diãùn giaíi. Baíng 4. DANG_BAI(MA_BAO_TC, SO_BAO_TC, STT_BAI, TRANG) Mäùi baìi baïo khi âæåüc âàng trong mäüt baïo hoàûc taûp chê naìo âoï, thç âæåüc ghi nháûn laì âaî âàng trong säú baïo hoàûc säú taûp chê naìo vaì âàng taûi trang säú máúy. Baíng 5. PHATHANH(MA_BAO_TC, SO_BAO_TC, NGAY) Mäùi säú baïo hoàûc säú taûp chê khi âæåüc phaït haình seî âæåüc ghi nháûn ngaìy phaït haình. Baíng 6. VIETBAI(STT_BAI, BUT_HIEU) Mäùi baìi baïo âæåüc viãút båíi mäüt taïc giaí maì ta ghi nháûn bàòng buït hiãûu. 2. Yãu cáöu 1: Tçm sæû thäng thæång giæîa caïc baíng trong CSDL2 Giaïo Trçnh Thæûc Haình CSDL - Trang 17
- Tráön Ngán Bçnh 3. Yãu cáöu 2: Måí caïc baíng dæî liãûu âãø xem kiãøu dæî liãûu cuía tæìng træåìng vaì quan saït dæî liãûu cuía tæìng baíng. 4. Yãu cáöu 3: Haîy viãút cáu lãûnh SQL âãø traí låìi caïc cáu hoíi sau: a. Tçm tãn caïc baïo / taûp chê coï âàng baìi cuía taïc giaí Tä Phan. Cho biãút âàng trãn säú naìo? Âæåüc phaït haìng vaìo nhæîng ngaìy naìo? b. Näüi dung cuía taûp chê Kiãún thæïc ngaìy nay säú 156 gäöm nhæîng baìi tæûa gç? Âàng tæì trang naìo? c. Cho biãút tæûa vaì thãø loaûi táút caí caïc baìi baïo do taïc giaí Nguyãùn Troüng Vinh saïng taïc vaì âaî âæåüc âàng trãn caïc baïo / taûp chê xuáút baín haìng tuáön. Cho biãút âäöng thåìi tãn vaì säú cuía tåì baïo / taûp chê tæång æïng mäùi baìi âæåüc âàng. d. Cho biãút caïc säú baïo / taûp chê vaì caïc ngaìy phaït haình tæång æïng trong nàm 1994 cuía tåì baïo Lao âäüng. e. Tåì Tuäøi treí chuí nháût säú 23 coï nhæîng baìi buït kyï naìo? (Cho biãút tæûa cuía chuïng) f. Cho biãút ngaìy âàng, tãn vaì säú cuía tåì baïo / taûp chê âaî âàng baìi “Chuïc vui nàm Låün”. g. Cho biãút tãn, âëa chè vaì säú âiãûn thoaûi cuía tåì baïo taûp chê âaî âàng baìi “Tçm hiãøu cháút âäüc sarin” trong tuáön lãù tæì 23/04/95 âãún 30/04/1995. h. Taïc giaí Haìn Ngoüc Cáøm coï nhæîng truyãûn naìo âaî âæåüc âàng trãn baïo / taûp chê? Cho biãút tæûa cuía chuïng. i. Cho biãút säú læåüng baìi baïo maî taûp chê Kiãún thæïc ngaìy nay âaî âàng trãn táút caí caïc säú baïo. j. Cho biãút thãø loaûi cuía caïc baìi baïo do caïc taïc giaí coï hoü Lã saïng taïc. k. Tçm tæûa caïc baìi thå âaî âæåüc âàng trãn caïc baïo/taûp chê trong tuáön lãù tæì 23/4/95 âãún 30/4/95. l. Tçm tãn caïc taïc giaí âæåüc âàng baìi trãn baïo Cæûu Chiãún Binh. m. Tçm tãn nhæîng baïo/taûp chê coï âang xaî luáûn. In ra tãn caïc baìi xaî luáûn âoï vaì caïc säú baïo/taûp chê tæång æïng. Giaïo Trçnh Thæûc Haình CSDL - Trang 18
- Khoa CNTT & TT - ÂHCT BAÌI 2 I. MUÛC ÂÊCH Luyãûn táûp cáu lãûnh SELECT läöng nhau âãø traí låìi cho caïc cáu hoíi cáön sæí duûng pheïp giao hoàûc pheïp træì. Ngoaìi ra, coìn luyãûn táûp khaí nàng váûn duûng caïc haìm kãút táûp max, min, sum, count, avg. II. LYÏ THUYÃÚT Cáu lãûnh SQL sæí duûng trong baìi naìy: SELECT FROM WHERE ( SELECT FROM [WHERE ] ) [AND | OR ( SELECT FROM [WHERE ] ) [ ... ] ] * Điều kiện chứa select con có các dạng sau đây: Dạng 1. (): ĐK đúng khi giá trị của cột so sánh đúng với giá trị trả về từ select con. Dạng 2. ALL (): ĐK đúng khi giá trị của cột so sánh đúng với tất cả các giá trị trả về từ select con. Dạng 3. ANY|SOME (): ĐK đúng khi giá trị của cột so sánh đúng với bất kỳ một giá trị nào trả về từ select con. Dạng 4. [NOT] IN (): ĐK đúng khi giá trị của cột nằm trong tập hợp các giá trị trả về của select con. Dạng 5. [NOT] EXISTS (): Đk đúng khi kết quả trả về của select con khác rỗng. Các dạng này phải được lựa chọn sử dụng hợp lệ tùy theo kết quả trả về của select con như sau: Select con trả về: Một cột Nhiều cột Một dòng Dạng 1 Dạng 5 Nhiều dòng Dạng 2, 3, 4 Læu yï: - Cáu lãûnh SELECT trong SQL Server 2000 cho pheïp läöng âãún täúi âa laì 32 mæïc. - Mãûnh âãö HAVING coï thãø chæïa SELECT con. Giaïo Trçnh Thæûc Haình CSDL - Trang 19
- Tráön Ngán Bçnh III. BAÌI TÁÛP COÏ HÆÅÏNG DÁÙN: 1. CSDL: Quaín lyï cäng trçnh (CSDL1) Baíng 1. KTRUCSU(HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN, DCHI_LL_KT) Baíng 2. CHUTHAU(TEN_THAU, TEL, DCHI_THAU) Baíng 3. CHUNHAN(TEN_CHU, DCHI_CHU) Baíng 4. CONGNHAN(HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON) Baíng 5. CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI, TEN_CHU, TEN_THAU, NGAY_BD) Baíng 6. THAMGIA(HOTEN_CN, STT_CTR, NGAY_TGIA, SO_NGAY) Baíng 7. THIETKE(HOTEN_KTS, STT_CTR, THU_LAO) Tham khaío trang 12 âãø xem diãùn giaíi cho tæìng baíng. 2. Yãu cáöu 1: Haîy viãút cáu lãûnh SQL âãø traí låìi caïc cáu hoíi sau: a. Cho biãút hoü tãn caïc kiãún truïc sæ væìa thiãút kãú caïc cäng trçnh do Phoìng Dëch vuû Såí Xáy dæûng thi cäng, væìa thiãút kãú caïc cäng trçnh do chuí tháöu Lã Vàn Sån thi cäng. Phán têch cáu hoíi: Coï thãø minh hoüa cáu hoíi naìy bàòng hçnh aính giao nhau cuía hai táûp sau: Hoü tãn caïc KTS Hoü tãn caïc KTS Vuìng giao nhau coï thiãút kãú ctr coï thiãút kãú ctr giæîa hai táûp do chuí tháöu do chuí tháöu chênh laì vuìng ‘Le Van Son’ thi ‘Phoìng dëch vuû so xd’ kãút quaí cáön tçm thi cäng cäng Váûy ta phaíi tçm hai táûp håüp naìy bàòng hai cáu lãûnh SELECT vaì giao chuïng laûi våïi nhau. Tuy nhiãn, vç pheïp giao khäng âæåüc häø tråü træûc tiãúp nãn ta sæí duûng daûng cáu SELECT läöng nhau trong âoï sæí duûng tæì khoïa IN âãø kãút näúi select cha vaì select con våïi nhau (tæïc laì daûng âiãöu kiãûn chæïa select con säú 4 âaî âãö cáûp åí trãn). Læu yï: Caïch nháûn biãút daûng cáu hoíi sæí duûng pheïp GIAO âãø traí låìi: Yãu cáöu tçm mäüt væìa thæûc hiãûn naìy hay såí hæîu mäüt naìy, laûi væìa thæûc hiãûn khaïc hay såí hæîu mäüt khaïc Cáu truy váún: Select distinct HOTEN_KTS From THIETKE a, CGTRINH b Where a.STT_CTR = b.STT_CTR and TEN_THAU = 'phong dich vu so xd' Giaïo Trçnh Thæûc Haình CSDL - Trang 20
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
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