Khoa CNTT & TT - HCT Giaùo Trỗnh Thổỷc Haỡnh CSDL - Trang 1 PHệN 1. C BAN Vệ SQL SERVER 2000 I. GIẽI THIU 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ớ m u ọỳ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 Analyze r Sau khi choỹn OK, thỗ cổớa sọứ Query Analyzer seợ xuỏỳt hióỷn nhổ hỗnh 2: CSDL hióỷn haỡnh H ióứn thở cổớa sọứ Object Browser Hỗnh 2. Giao dióỷn SQL Query Analyzer Tráưn Ngán Bçnh Giạo Trçnh Thỉûc Hnh CSDL - Trang 2 2. Cå såí dỉỵ liãûu trong SQL Server: SQL Server lỉu trỉỵ CSDL dỉåïi dảng file, mäüt CSDL bao gäưm: - 1 hồûc nhiãưu data file: 1 file dỉỵ liãûu chênh (*.mdf ) v khäng hồûc nhiãưu file dỉỵ liãûu phủ (*.ndf). - 1 hồûc nhiãưu log file (*.ldf): âáy chênh l nháût k giao tạc trãn CSDL. SQL Server qun l cng lục nhiãưu CSDL, chia lm hai loải: - CSDL hãû thäúng (system databases): dng âãø lỉu trỉỵ thäng tin qun l ton bäü hãû thäúng SQL Server. Cọ bäún CSDL hãû thäúng, âọ l: master, model, tempdb, msdb - CSDL ngỉåìi dng (user databases): l CSDL do ngỉåìi dng tảo ra. Cọ 2 CSDL máùu sàơn cọ sau khi ci âàût l: Northwind v pubs 3. Chn hay måí CSDL lm viãûc: Vç hãû thäúng qun l nhiãưu CSDL nãn khi lm viãûc våïi SQL Server, âiãưu âáưu tiãn l phi chn CSDL no âãø lm viãûc trãn âọ. Cọ 2 cạch: Cạch 1: Nháúp chn CSDL tỉì danh sạch xäø xúng ca combo box trãn thanh cäng củ (xem hçnh 2) Cạch 2: Thỉûc thi lãûnh: USE <Tãn CSDL> 4. Cạc kiãøu dỉỵ liãûu thäng dủng trong SQL: Tãn kiãøu Gii thêch Biãøu diãùn hàòng Bit Säú ngun 0 hồûc 1 0, 1 Int Säú ngun tỉì -2 31 (-2.147.483.648) âãún 2 31 - 1 (2.147.483.647) -1000, 23455 SmallInt Säú ngun tỉì -2 15 ( - 32.768) âãún 2 15 - 1 (32.767) 32124, -764 TinyInt Säú ngun tỉì 0 âãún 255 31, 45 Decimal/ Numeric Cạc säú tháûp phán tỉì -10 38 - 1 âãún 10 38 - 1 1894.1204 Money Tiãưn tãû tỉì -2 63 âãún 2 63 - 1 234, -87.65 $12, $542023.14 SmallMoney Tiãưn tãû tỉì -214.748,3648 âãún 214.748,3647 -$45.56 -34.54 Float Säú thỉûc tỉì -1,79 E +308 âãún 1,79 E +308 101.5E5 0.5E-2 Real Säú thỉûc tỉì -3.40 E + 38 âãún 3.40E + 38 245.21E-10 DateTime Ngy giåì tỉì 1/1/1753 âãún 31/10/9999 'April 15, 1998' , '15 April, 1998' , '980415' , '04/15/98' SmallDateTime Ngy giåì tỉì 1/1/1900 âãún 06/6/2079 như DateTime Char K tỉû cọ âäü di ä nhåï cäú âënh v täúi âa l '50% complete.' 'O''Brien' Khoa CNTT & TT - ÂHCT Giạo Trçnh Thỉûc Hnh CSDL - Trang 3 8000 kê tỉû (khäng häù tråü Unicode) "O'Brien" nchar K tỉû cọ âäü di ä nhåï cäú âënh v täúi âa l 4000 kê tỉû (häù tråü Unicode) ‘Nguyễn Văn Minh’ ‘Lương Tâm’ varchar K tỉû cọ âäü di ä nhåï khäng cäú âënh v täúi âa l 8000 kê tỉû (khäng häù tråü Unicode) '50% complete.' 'O''Brien' "O'Brien" nvarchar K tỉû cọ âäü di ä nhåï khäng cäú âënh v täúi âa l 4000 kê tỉû (häù tråü Unicode) ‘Nguyễn Văn Minh’ ‘Lương Tâm’ 5. Quan sạt CSDL bàòng Object Browser: a. Quan sạt lỉåüc âäư CSDL: Âãø cọ thãø truy váún trãn mäüt CSDL no âọ, âiãưu quan trng l ta phi biãút lỉåüc âäư ca CSDL âọ. Ta cọ thãø quan sạt lỉåüc âäư ca cạc CSDL m SQL Server âang qun l bàòng cạch nháúp vo biãøu tỉåüng trãn thanh cäng củ hồûc nháún F8. Khi âọ s cọ mäüt cỉía säø dc Object Browser xút hiãûn åí bãn trại nhỉ hçnh 3 cho phẹp ta quan sạt cáúu trục ca cạc bng trong CSDL nhỉ sau: Tãn CSDL Tãn Bng Tãn C ä ü t K iãøu cäü t R ng büc Hçnh 3. Cỉía säø Object Browser. Tráưn Ngán Bçnh Giạo Trçnh Thỉûc Hnh CSDL - Trang 4 b. Måí bng dỉỵ liãûu: Âãø cọ thãø truy váún âỉåüc chênh xạc, ngoi viãûc quan sạt lỉåüc âäư CSDL, ta cn phi quan sạt dỉỵ liãûu trong tỉìng bng. Ta cọ thãø xem bng bàòng Object browser nhỉ hçnh 4. Hçnh 4. Måí bng dỉỵ liãûu Nháúp phêm phi vo tãn bng trong cỉía säø Object Browser. => Menu xäø xúng xút hiãûn => Chn mủc Open => Bng dỉỵ liãûu s hiãøn thë åí cỉía säø bãn phi. 6. Soản tho v 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 vo menu File -> Connect. Khi âọ cỉía säø kãút näúi s xút hiãûn nhỉ hçnh 1 åí trang on page 1. Sau khi kãút näúi thç xút hiãûn mäüt cỉía säø cho phẹp soản tho cáu truy váún nhỉ hçnh 5. Thỉûc thi cáu lãûnh (táûp lãûnh) Kiãøm tra cụ phạp Cỉía säø nháûp truy váún Cỉía säø hiãøn thë kãút qu Cỉía Säø thäng bạo H çnh 5. Soản tho v thỉûc thi truy váún Khoa CNTT & TT - ÂHCT Giạo Trçnh Thỉûc Hnh CSDL - Trang 5 Trong quạ trçnh thao tạc, cọ thãø måí thãm nhiãưu táûp tin truy váún bàòng cạch vo menu File -> New hồûc nháún Ctrl + N, hồûc click vo biãøu tỉåüng trãn thanh cäng củ. a. Kiãøm tra cụ phạp cáu lãûnh Sau khi g cáu lãûnh vo pháưn nháûp cáu lãûnh, cọ thãø kiãøm tra cụ phạp cáu lãûnh bàòng cạch nháúp vo biãøu tỉåüng 5 trãn thanh cäng củ (xem hçnh 5) hồûc nháún Ctrl + F5. Nãúu cáu lãûnh khäng cọ läùi cụ phạp thç cỉía säø nh bãn phi dỉåïi s hiãøn thë cáu: The command(s) completed successfully. Nãúu cáu lãûnh cọ läùi cụ phạp thç läùi s âỉåüc hiãøn thë. b. Thỉûc thi cáu lãûnh: Thỉûc thi táút c cạc cáu lãûnh trong táûp tin script hiãûn hnh bàòng cạch nháúp vo nụt trãn thanh cäng củ (xem hçnh 5) hồûc nháún F5. Nãúu chè mún thỉûc thi mäüt hồûc mäüt säú cáu lãûnh no thäi thç bäi âen cạc lãûnh âọ v nháún F5. c. Ghi chụ trong SQL Query Analyzer: Khi cáưn ghi chụ thêch hồûc tảm âọng khäng thỉûc thi mäüt âoản lãûnh no âọ, ta cọ thãø sỉí dủng kê hiãûu ghi chụ nhỉ sau: o Ghi chụ mäüt dng: Âàût dáúu trỉåïc dng ghi chụ o Ghi chụ nhiãưu dng: Âàût ghi chụ trong càûp dáúu /* */ d. Lỉu lải truy váún trong táûp tin lãûnh (script): (*.sql) Sau khi nháûp vo cạc cáu truy váún (nhỉ hçnh 5), cạc cáu lãûnh truy váún cọ thãø âỉåüc lỉu lải dỉåïi dảng file text (*.sql) bàòng cạch chn File > Save hồûc nháún Ctrl + S. Táûp tin ny sau khi lỉu vo âéa cọ thãø âỉåüc måí lãn lải âãø thỉûc thi bàòng cạch vo File > Open. 7. Mäüt säú hm thäng dủng trong SQL Server: a. Xỉí l chùi: Lỉu : SQL Server khäng phán biãût chỉỵ hoa v chỉỵ thỉåìng. Vç váûy: âiãưu kiãûn: lower(ten_ctr)='khach san QUOC TE' => váùn cho ra kãút qu Mäüt säú hm xỉí l chùi thäng dủng: LEN(<chùi>): Tr vãư chiãưu di chùi LOWER(<chùi>): âäøi <chùi> sang dảng chỉỵ thỉåìng VD: Select LOWER(“Tran PHI phap”) => “tran phi phap” UPPER(<chùi>): âäøi <chùi> sang dảng chỉỵ hoa VD: Select UPPER(“Tran PHI phap”) => “TRAN PHI PHAP” LEFT(<chùi>, <säú n>): tr vãư chùi måïi gäưm n k tỉû bãn trại ca <chùi> Trỏửn Ngỏn Bỗnh Giaùo Trỗnh Thổỷc Haỡnh CSDL - Trang 6 VD: Select LEFT(Tin Hoc, 3) => Tin RIGHT(<chuọựi>, <sọỳ n>): traớ vóử chuọựi mồùi gọửm n kyù tổỷ bón phaới cuớa <chuọựi> SUBSTRING(<chuọựi>, <sọỳ n> ,<sọỳ m>): traớ vóử chuọựi con bũng caùch lỏỳy tổỡ <chuọựi> m kyù tổỷ tổỡ vở trờ n. VD: Select SUBSTRING(Tin Mồùi Hoỹc, 5, 3) => Mồùi STUFF(<chuọựi 1>, <sọỳ n>, <sọỳ m>, <chuọựi 2>): thay m kyù tổỷ trong <chuọựi 1> tổỡ vở trờ n bũng <chuọựi 2>. 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 ( <chuọựi 1> , <chuọựi 2> [ , <sọỳ n>] ): 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 ( <'%mỏựu tỗm kióỳm%'> , <chuọựi>): 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:Select PATINDEX(%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 / nm/ giồỡ / phuùt / giỏy / phỏửn trióỷu cuớa giỏy . - óứ traùnh nhũm lỏựn: nón mọ taớ nm 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(<thaỡnh phỏửn>, <ngaỡy>): Traớ vóử giaù trở cuớa <thaỡnh phỏửn> trong <ngaỡy>. 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 Nm Quarter qq, q Quờ Month mm, m Thaùng Dayofyear dy, y Ngaỡy cuớa nm (1-> 366) Day dd, d Ngaỡy cuớa thaùng (1 -> 31) Khoa CNTT & TT - HCT Giaùo Trỗnh Thổỷc Haỡnh CSDL - Trang 7 Week wk, ww Tuỏửn trong nm (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 (<thaỡnh phỏửn>,<sọỳ n>, <ngaỡy>): cọỹng vaỡo <thaỡnh phỏửn> cuớa <ngaỡy> 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 (<thaỡnh phỏửn> , <ngaỡy bừt õỏửu>, <ngaỡy kóỳt thuùc>): 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(<thaỡnh phỏửn>, <ngaỡy>): Traớ vóử tón cuớa <thaỡnh phỏửn> trong <ngaỡy>. VD: Select DATENAME (month, 5 Aug, 2006) => August Select DATENAME (weekday, 5 Aug, 2006) => Saturday c. Caùc haỡm xổớ lyù sọỳ FLOOR(<sọỳ>): Cho kóỳt quaớ laỡ sọỳ nguyón gỏửn nhỏỳt nhoớ hồn hoỷc bũng <sọỳ> VD: SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45) => 123 -124 123.0000 CEILING(<sọỳ>): Cho kóỳt quaớ laỡ sọỳ nguyón gỏửn nhỏỳt lồùn hồn hoỷc bũng <sọỳ> VD: SELECT CEILING(123.45), CEILING(-123.45), CEILING($123.45) => 124 -123 124.0000 d. Haỡm chuyóứn õọứi kióứu CAST (<dổợ lióỷu> AS <kióứu>): Traớ vóử <dổợ lióỷu> vồùi <kióứu> mồùi. VD: SELECT 10 + cast ('34.5' as float) => 44.5 SELECT right(CAST(124 AS char(4)) , 2) => 4 Trỏửn Ngỏn Bỗnh Giaùo Trỗnh Thổỷc Haỡnh CSDL - Trang 8 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 <tón cọỹt> WHEN <giaù trở 1> THEN <kóỳt quaớ 1> [WHEN <giaù trở 2> THEN <kóỳt quaớ 2> ] [ ELSE <kóỳt quaớ ngoaỷi lóỷ> ] 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 <bióứu thổùc õióửu kióỷn 1> THEN <kóỳt quaớ traớ vóử 1> [WHEN <bióứu thổùc õióửu kióỷn 2> THEN <kóỳt quaớ traớ vóử 2> ] [ ELSE <kóỳt quaớ traớ vóử ngoaỷi lóỷ> ] END VD: Select CASE When 10 > 2 THEN 'DUNG' When 10 = 3 THEN 'SAI' END => DUNG Khoa CNTT & TT - ÂHCT Giạo Trçnh Thỉûc Hnh CSDL - Trang 9 II. CẠC LÄÙI THỈÅÌNG GÀÛP TRONG SQL 1. Tãn cäüt khäng tçm tháúy trong bng: Thäng bạo läùi: Invalid column name <tãn cäüt>. Khi gàûp läùi ny hy xem lải tãn cäüt (cn gi l tãn thüc tênh/ tãn trỉåìng) trong cáu lãûnh â âụng chỉa. 2. Tãn bng khäng tçm tháúy: Thäng bạo läùi: Invalid object name <tãn bng>. Khi gàûp läùi ny hy xem lải tãn bng trong cáu lãûnh â âụng chỉa. 3. Läùi cụ phạp: Thäng bạo läùi: Incorrect Syntax near <tỉì gáưn läùi nháút>. Khi gàûp läùi ny hy xem lải cụ phạp trong cáu lãûnh â âụng chỉa, cọ thãø sai tỉì khọa (g sai cạc tỉì SELECT, FROM, WHERE, ), hồûc thiãúu dáúu ngồûc ca hm hồûc ca select con, 4. Tãn cäüt cọ màût åí nhiãưu bng Thäng bạo läùi: Ambiguous column name <tãn cäüt> Khi gàûp läùi ny hy xem lải <tãn cäüt> gáy läùi trong cáu lãûnh â cọ âàût tãn bng hồûc bê danh âỉïng trỉåïc chỉa. Cụ phạp: <tãn bng hồûc bê danh>.MA_HANG 5. Phẹp so sạnh khäng tỉång thêch kiãøu Thäng bạo läùi: Error converting data type hồûc Syntax error converting Khi gàûp läùi ny hy xem lải trong cáu lãûnh â cọ phẹp toạn so sạnh no âọ khäng tỉång thêch kiãøu dỉỵ liãûu. Tráưn Ngán Bçnh Giạo Trçnh Thỉûc Hnh CSDL - Trang 10 III. HỈÅÏNG DÁÙN THỈÛC HNH 1. Måí Query Analyzer âàng nháûp vo SQL Server trãn mạy ch. 2. Quan sạt CSDL: Sỉí dủng Object Browser âãø xem cáúu trục ca cạc bng cng nhỉ dỉỵ liãûu ca tỉìng trỉåìng v måí tỉìng bng dỉỵ liãûu âãø quan sạt nhỉ hỉåïng dáùn åí mủc I.5 åí trang 3 . Khi quan sạt CSDL cáưn lỉu : - Sỉû liãn thäng giỉỵa cạc bng dỉỵ liãûu. Täút nháút l v så âäư liãn thäng lãn giáúy nhạp âãø cọ thãø tham kho trong quạ trçnh truy váún thäng tin tỉì nhiãưu bng. - Kiãøu dỉỵ liãûu ca tỉìng trỉåìng, âãø âàût âiãưu kiãûn trãn cạc cäüt cho âụng kiãøu hồûc ạp dủng cạc hm xỉí l dỉỵ liãûu ph håüp. 3. Måí CSDL mún truy váún: Nhỉ â hỉåïng dáùn åí mủc I.3 åí trang 2 4. Soản tho v thỉûc hiãûn cáu truy váún. Nhỉ â hỉåïng dáùn åí mủc I.6 åí trang 4 5. Quan sạt kãút qu v kiãøm chỉïng. Cáưn phi kiãøm tra lải kãút qu truy váún xem cọ âụng hay khäng bàòng cạch måí lải cạc bng âãø kiãøm tra xem kãút qu âảt âỉåüc cọ âụng nhỉ mong mún. 6. Lỉu lải cạc cáu truy váún vo táûp tin *.sql. IV. CẠCH LỈU V XỌA BNG TẢM: Trong khi thỉûc hiãûn mäüt säú truy váún, thènh thong ta cáưn lỉu lải nhỉỵng kãút qu truy váún tảm thåìi vo mäüt bng no âọ bàòng mãûnh âãư INTO trong cáu lãûnh SELECT. Trong quạ trçnh thỉûc táûp, CSDL s âỉåüc âàût trãn server v cạc mạy client chè âỉåüc quưn truy xút (âc) cạc bng m khäng âỉåüc quưn ghi, nãn trong trỉåìng håüp mún lỉu thäng tin tảm vo bng thç ta s lỉu vo bng tảm (l nhỉỵng bng cọ tãn bàõt âáưu bàòng dáúu #), cạc bng ny s âỉåüc tảo trong CSDL tempdb ca hãû thäúng SQL Server. Khi client ngỉng kãút näúi våïi Server thç cạc bng ny s tỉû âäüng bë xọa. VD: Select STT_CTR, count(*) As TongSoCN Into #CAU_3E From THAMGIA Group by STT_CTR Trong khi client váùn cn âang kãút näúi thç nhỉỵng bng tảm ny váùn cn trong CSDL tempdb. Chàóng hản, sau khi chảy xong cáu VD trãn, nãúu ta chảy lải cáu lãûnh ny thç SQL s bạo läùi l bng tảm ny â täưn tải. Vç váûy, ta phi xọa bng tảm ny trỉåïc khi mún chảy lải cáu lãûnh trãn bàòng lãûnh xọa DROP TABLE <tãn bng>. VD: DROP TABLE #CAU_#E [...]... 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 Nhiều dòng Dạng 1 Dạng 2, 3, 4 Dạng 5 Lỉu : - Cáu lãûnh SELECT trong SQL Server 2000 cho phẹp läưng âãún täúi âa l 32 mỉïc - Mãûnh âãư HAVING cọ thãø chỉïa... 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... táûp kh nàng váûn dủng cạc hm kãút táûp max, min, sum, count, avg II L THUÚT Cáu lãûnh SQL sỉí dủng trong bi ny: 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... cọ dảy hồûc chè cọ tảm ỉïng), âáy l âiãưu ta khäng mún, hồûc cọ nhỉỵng ngỉåìi khäng cọ dảy cng khäng hãư tảm ỉïng cng phi xút ra kãút qu Vç váûy, åí âáy ta phi sỉí dủng kãút näúi måí räüng Lỉu : SQL Server 2000 häø tråü kãút näúi måí räüng vãư mäüt phêa bàòng cạch dng tỉì khọa left / right outer join Cáu hi truy váún : Select MAGV, Sum( Case When SISO Âàût ÂK trãn THAMGIA HOTEN_CN = ‘Nguyen Hong Van’ Lỉu : Âãø cäüng ngy thạng trong SQL Server, ta dng hm DATEADD Tham kho tải pháưn giåïi thiãûu cạc hm xỉí l ngy thạ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... Select thỉï nháút s âỉa kãút qu vo bng #TAM bàòng mãûnh âãư INTO Lỉu : Cạc bng cọ tãn bàõt âáưu bàòng dáúu # s âỉåüc lỉu vo CSDL tempdb Âáy l CSDL nhạp, vç váûy, sau khi ta âọng kãút näúi våïi SQL Server thç cạc bng ny s bë xọa Cáu select thỉï nháút hon ton tỉång tỉû nhỉ cáu h åí trãn Vç mäùi dng trong bng THAMGIA chè cho biãút cäng nhán no tham gia cäng trçnh no, nãn âãø tçm âỉåüc nhỉỵng càûp... ÂHCT BI 3 I MỦC ÂÊCH: Luûn táûp cáu lãûnh SELECT cọ GROUP BY, HAVING cọ kãút håüp våïi cạc dảng SELECT â thỉûc táûp åí cạc bi trỉåïc II L THUÚT: Cáu lãûnh SQL sỉí dủng trong bi ny: SELECT , FROM [ WHERE ] GROUP BY [, [, ]] HAVING III BI TÁÛP CỌ HỈÅÏNG DÁÙN 1 CSDL: Qun... HOTEN Like ‘% Van %’ Group By b.MA_GV Having count(NGAY_TA) > 1 f Cho biãút h tãn cạc giạo viãn â tảm ỉïng trong thạng 1 nàm 2006 ? Cáu Truy Váún: Select HOTEN, NGAY_TA From GIAOVIEN a, TAMUNG b Where a.MAGV = b.MAGV And DatePart(month, NGAY_TA) = 1 And DatePart(year, NGAY_TA) = 2006 g Cho biãút h tãn cạc giạo viãn â tảm ỉïng trong 3 thạng gáưn âáy? Cáu Truy Váún: Select HOTEN, NGAY_TA From GIAOVIEN a,...Khoa CNTT & TT - ÂHCT V CHẸP CSDL: 1 Sao lỉu lải CSDL: Cọ thãø chẹp CSDL tỉì mạy ny sang mạy khạc bàòng cạch sỉí dủng lãûnh sao lỉu CSDL ca SQL Server Âãø sao lỉu mäüt CSDL ta thỉûc hiãûn cạc bỉåïc sau: a Måí CSDL mún sao lỉu bàòng lãûnh: USE b.Tả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 . PHệN 1. C BAN Vệ SQL SERVER 2000 I. GIẽI THIU 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 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ồỡ. Analyzer Tráưn Ngán Bçnh Giạo Trçnh Thỉûc Hnh CSDL - Trang 2 2. Cå såí dỉỵ liãûu trong SQL Server: SQL Server lỉu trỉỵ CSDL dỉåïi dảng file, mäüt CSDL bao gäưm: - 1 hồûc nhiãưu data file: 1