


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)三數(shù)據(jù)庫的查詢和視圖T4.1數(shù)據(jù)庫的查詢1、目的和要求〔1〕掌握SELECT語句的根本語法?!?〕掌握子查詢的表示。〔3〕掌握連接查詢的表示。〔4〕掌握SELECT語句的GROUPBY子句的作用和使用方法?!?〕掌握SELECT語句的ORDERBY子句的作用和使用方法。2、 實(shí)驗(yàn)準(zhǔn)備〔1〕了解SELECT語句的根本語法格式?!?〕了解SELECT語句的執(zhí)行方法。〔3〕了解子查詢的表示方法?!?〕了解連接查詢的表示。〔5〕了解SELECT語句的GROUPBY子句的作用和使用方法。〔6〕了解SELECT語句的ORDERBYF句的作用。3、 實(shí)驗(yàn)內(nèi)容〔1〕SELECT語句的根本使用。-dbo.Employees對(duì)于實(shí)驗(yàn)二給出的數(shù)據(jù)庫表結(jié)構(gòu),查詢每個(gè)雇員的所有數(shù)據(jù)。新建一個(gè)查詢,在“查詢分析器〞-dbo.EmployeesuseYGGLgo-Ise1ect'■useYGGLgo-Ise1ect'■2fromEmployees單擊右鍵空白處,選擇執(zhí)行,在下方會(huì)出現(xiàn)所有結(jié)果。Ellul'U^e^IDEdlxhliulDitLhh羅Vorkftu?i、rliUlljeJHuiLi-IhpiiLtzLIDL!oxmiLK中山路號(hào)-<Fua2£'tiiccoeL3023215S113IE2DC]□王歸]5e2^12-C9]2刃牌機(jī)ItJ-Q-lTES37923^1I4C2CC1Q7^20Q€申山芾蒯肚-己Q34133011&isK-io-iaL3rt3gfti0D-2saiQfitiOttE削1CC2O019eE-C9-2fiL2ttte&--3-10S04706017S?ice^9i碩士19SHLS-iO04屮山培WT-lJE9234672233HlOOflt9T4-J0-01L1輛瑞M-IP30^3410號(hào)?210678l軒Z-G2L2中山北菇筑去日34百7336WL0I3MWEDP-3B?7053914L13C675S葉幾197E:-11=18L2SS30E9O34LZl9^-£9-Ci305衛(wèi)中路1旳044001564【思考與練習(xí)】用SELECT語句查詢Departments表和Salary表中所有信息。
新建一個(gè)查詢,在“查詢分析器〞窗口中輸入如下語句并執(zhí)行。亠dbo.DepartmentsBfli&.YGGL-dbo.Employees 味1useYGGL123-select*4fromDepartment5jSalary單擊右鍵空白處,選擇執(zhí)行,在下方會(huì)出現(xiàn)所有結(jié)果。J結(jié)果」消息Dtpirtnifiiit耳am邑Kot*Eikploy^alDIiiComfrOutCom*1|1財(cái)勞部MULLOCOOOl210C8123.0921財(cái)務(wù)部HULLOlOJOS1G92.6288.0931財(cái)務(wù)部NULL0200102S6O19041財(cái)務(wù)部MULLOEOOIS2347.6B16051財(cái)勢(shì)部MULL1022012569.30165.65S1財(cái)勞部BULL1022031咖10D71HULL1069913259.98201.EE8i財(cái)勞部MULL1110061937.01?S.5891財(cái)勢(shì)部HULL2106782240121101財(cái)勞部HULL邂56^2080.?210.2&査詢已成功執(zhí)杼.在“消息〞中會(huì)發(fā)現(xiàn)總共有 60行受影響。用SECECT語句查詢Employees表中每個(gè)雇員的地址和號(hào)碼。新建一個(gè)查詢,在“查詢分析器〞窗口中輸入如下代碼并執(zhí)行。SQtQLj^ryl.sql?SQtQLj^ryl.sql?f^5E.VGGL〔站(54)}w\PW.YGGL-dbo.Employ?JuseYGGLgo-selectAddress.PhoneNumberfromEmployees5呂d單擊右鍵空白處,選擇執(zhí)行,在下方會(huì)出現(xiàn)所有結(jié)果??碮* FW 口結(jié)果-JmFhorieH'ini'bir1\+i_IjS32-1-5W!833G56081北京東路WON633213213四牌樓1D-0T朗B37929B14中山東路IQ2-2B3413301E^^100-2-im83606608在“消息〞中會(huì)發(fā)現(xiàn)有12仃記錄受影響【思考與練習(xí)】A、用SELECTS句查詢Departments表和Salary表的一列或假設(shè)干行。利用SELECT語句查詢Departments表和Salary表中EmployeelD為000001的記錄,在“查詢分析器〞中輸入以下代碼。123456useYGGL8°Eselect*fromSalary;DepartnentswhereEmployeel[>='900B91'gd執(zhí)行后在下方會(huì)出現(xiàn)所有 EmployeeID=000001的記錄E3結(jié)果一?消息EmpLdyeelDIxiCoiheOxltCOnrieDepairtmeiLtlDBepar eNote1Idooodi1^ioa.e12309l財(cái)務(wù)郁NULL2OOOOOl2100.fi123.092人力資憑韶NULL3□000012100.C123.09G經(jīng)理加公室HULL4OOOOai2100E123.094硏岌部HULL5 000001 ZlOO.fc123.09 5 市場(chǎng)部 HULLB、查詢Employees表中部門號(hào)和性別 ,要求使用DISTINCT消除重復(fù)行。對(duì)表只選擇某些行時(shí),可能會(huì)出現(xiàn)重復(fù)行。此時(shí)就需要使用 DISTINCT關(guān)鍵字消除結(jié)果中的重復(fù)行。此時(shí)使用 DISTINCT消除在Employees中查詢到的部門號(hào)和性別的重復(fù)行,具體代碼如下。1useYGGL1useYGGL2SO2go3-select]Depar七rnwr-亡工總x3:selectdistinctDepartnentLD,Sex4fromEnploye&s4fromEmployees5go5goDISTINCT關(guān)鍵字,下面就是兩種的結(jié)果的上面代碼分別是使用了DISTINCT和沒有使用比照。直結(jié)果山消息1Bepirtm&iLtlDMamsuj■am ■■■a^ii■iuuni11Sewi□21i32i430E31可以從上面的執(zhí)行結(jié)果中看出使用了了。DISTINCT關(guān)鍵字,結(jié)果集中的重復(fù)行就被消除查詢EmployeelD為000001的雇員的地址和YGGLga1=1selectAddress3PhoneNumber節(jié)「口“EmployeeswhereEmployeeID='000001百go“執(zhí)行〞,結(jié)果中只會(huì)出現(xiàn)一行記錄,EmployeelD鼠標(biāo)右鍵單擊在彈出的菜單窗口中選擇為000001“執(zhí)行〞,結(jié)果中只會(huì)出現(xiàn)一行記錄,EmployeelD通結(jié)果Q肖息A.idr巴生s FlioineHumber■■uatil??■■■*■■■■■!>?■■■aaui■■1 |中山路亞-ITOS:S33S5C6S【思考與練習(xí)】A、查詢?cè)率杖敫哂?000元的職工號(hào)碼。只需要查詢職工號(hào)碼,條件為月收入高于 2000元職工,那么至于要Salary表就行。用T-SQL命令在表Salary表中查詢?cè)率杖敫哂?2000元的職工代碼如下。useYGSLuseYGSLgo[-selectEmployeelDfromSalarywhereInCcme>2909go口結(jié)果扁消息1jaQQOQl2020C1.0302001341022015108991廬科審型執(zhí)行“在結(jié)果欄中顯示〔9行受影響〕,說明月收入高于2000的職工共有9人,如上截圖所示,將所有月收入高于2000的職工的職工號(hào)碼輸出。B、查詢1970年以后出生的職工的和地址。通過分析職工信息,跟職工年齡、、地址相關(guān)的只有表 Employees表,所以只需要在一張表中查詢即可,具體T-SQL查詢命令如下。23423456useYGGLgoselectflame.AddressfromEnployeeswhereBirthday>'1970-01-0r勺詰果內(nèi)消息HomeA.d.dlress1『憶薛[北京 100-2,至訴劉明四牌^10-0-108補(bǔ)敏張石兵中山3310-3-10E無敕路詔-1~203m ? ■ ■j&訥腳做:亍.在結(jié)果欄中消息顯示〔7行受影響〕,說明1970年以后出生有7人,如上截圖所示,將局部1970年以后出生職工、地址輸出顯示。C查詢所有財(cái)務(wù)部的職工的號(hào)碼和。通過分析的,需要知道財(cái)務(wù)部與職工的號(hào)碼和,財(cái)務(wù)部只存在于 Departments表中,職工和號(hào)碼只存在于Employees表中。因此需要在表Departments表和Employees表中進(jìn)行查詢。利用T-SQL命令查詢代碼如下。12356123567a9丄011useYGGLeoFselectName^PhoneNumber■FromEmployeeswhereDer?artn色ntIDi")1selectDepartmentIDfromDepdrtireitiwhereDepartmentName^部'曲結(jié)果恥肖息NameFkonelTumber1[6332^212‘63792361383413301在結(jié)果欄中顯示3行受影響,從上面截圖中可以看出所有財(cái)務(wù)部職工有 3人,并且查詢顯示其、 號(hào)碼。查詢Employees表中女雇員的地址和 ,使用AS子句將結(jié)果中各列的標(biāo)題分別指地址中山東路S3413K1中山SgiO-3-lOS漢中路12Q-4-12B334G722定為地址、 。12m12m45go-selectAddressAS地址}PhonehumberASfromEmployeeswhereSex=0從上面結(jié)果的截圖發(fā)現(xiàn)Address變?yōu)榈刂?,PhoneNumber變?yōu)?。【思考與練習(xí)】查詢Employees表中男職工的和出生日期,要求各列標(biāo)題用中文表示。通過分析此查詢屬于單表查詢,只需要用到 Employees表,使用AS子句就能夠使結(jié)果3結(jié)杲』出牛日期1注林:1360^1-£32197&-03-ZS31&32-12-D&41972-10-1B國盍角已就1扔旨〔9行受影響〕〔9行受影響〕說明,職工中useYGGLgoHselectMarneAS姓名』irthdayAS出生曰期fromEmployeeswhereSex=l從上面結(jié)果的截圖發(fā)現(xiàn)各列標(biāo)題都是中文。從消息中顯示男性有9人,并且全部男性的和出生日期都已經(jīng)查詢顯示出。查詢Employees表中職工的和性別,要求Sex值為1時(shí)顯示為"男〞,為0時(shí)顯示為“女〞。t^ft.VGGL亠dbo^alary p^ft.VGGL-dbo.Departin1uset^ft.VGGL亠dbo^alary p^ft.VGGL-dbo.Departin1useYGGL60ElselectNanie姓名,casewhenSex=lthenwhenS^x=0thenerdAS性£11from23結(jié)果冷消息1I王就|畀2〔五窖華3里4李冊(cè)=3童詢已物執(zhí)行.【思考與練習(xí)】查詢Employees職工的、住址和收入水平, 2000元以下顯示為低收入, 2000~3000元顯示為中等收入,3000元以上顯示高收入。經(jīng)過分析需要查詢職工的、住址和收入水平,需要在 Employees表和Salary表中進(jìn)行查詢,并且將Salary表中職工的InCome進(jìn)行分類需要用到AS子句。利用T-SQL命令進(jìn)行多表查詢語句如下。^.,YGGL-dbo.Salary -dbo.Departments -dbo.EmpioyeesuseYGGLgoNam&A5姓名,Address萌ffiStjirCome少收1入?casewhenIrCome<2000then'低收入'when2000<InComeandInCome<3000then"中等收入,whenInCome>3000then'高lit入'-endAS收入水平|fromEmployee5.Salary16whereEmployees*EmployeeID=Salary.EmployeelD11_ |執(zhí)行上面截圖中代碼,在結(jié)果欄中出現(xiàn)職工的,住址和收入水平。消息中顯示 12行受影響,Employees表中所有職工信息都已經(jīng)查詢輸出。結(jié)果力消息姓名住址收入收入水平1汪林j中山賂32-L-5C82100.3中WfcA2 歷窖華北足東蹈100-21562沱低收入3 壬向容四牌1^10-0-10828604WA4 李麗中山東?102-22347.38中等收入計(jì)算每個(gè)雇員的實(shí)際收入 。經(jīng)過分析需要職工的收入以及職工號(hào)碼和職工,就需要在 Employees表和Salary表中SQLQueryZ^I-陳聰潭GGL(sa(54})*SQLQueryZ^I-陳聰潭GGL(sa(54})*XESB^VGGL-dbc.SahryJSSB^YGGL-dbonDepartuseYGGLgo _:-selectEmployees.Empl&yeelDjMam&jS際收入三TMom乜-OutSniE?: fromSalaryjEmployees-5 wtiereSalary.EmployeeLD=Emplo/Aes.EmployecID結(jié)果欄中就會(huì)顯示EmployeelD,Name,實(shí)際收入這三項(xiàng)。1EmployeelDjooocoiITsmft]王林買際收入1977.712□1D008伍蓉華1494.593020010王口曆2^2注意:在上面T-SQL命令中EmployeeID如果不指明為哪個(gè)表中的 EmployeeID,代碼就會(huì)報(bào)錯(cuò)"EmployeeID不明確〞,改為或者都行。
【思考與練習(xí)】使用SELECT語句進(jìn)行簡(jiǎn)單的計(jì)算。在這里我將使用SELECT語句計(jì)算出Employees表中工齡三年以上的人數(shù),并且查詢職工號(hào)碼,,工齡。12useYGGLgoEmploye工齡3E)selectEmployeeIDjNamejWorkYearas工離1 :OOOODL王林84fromEmployees2 O2t?L865where3 1OB99L乍愉44 50420?5獲得職工總數(shù)。經(jīng)分析得需要得到職工總數(shù),只需要在 Employees表內(nèi)使用內(nèi)置函數(shù)COUNT就行。利用T-SQL命令執(zhí)行操作如下。1useYGGL2go國結(jié)果4消息3r-1selectcount(')ms罠工算皴尿?qū)OS)4fromEmployees【思考與練習(xí)】A、計(jì)算Salary表中職工月收入的平均數(shù)。1useYGGL□結(jié)果仏消懇2go工資平坡3EselectWG(InCome)d5工資平均:237E.FSee6S66fig7kir'OmSalaryB、獲得Employees表中最大的職工號(hào)碼。3Eselect ;EmployeeIDas最丈員工號(hào)阿最大央工弓碼4fromEmployees陌04圈9 [結(jié)果一」消息useYGGLgoC計(jì)算Salary表中所有職工的總支出。"EYGGLg0 口結(jié)杲比消息□selectSUM(Outcome)恥總支出fromSalary1 \1874IS!D、查詢財(cái)務(wù)部雇員的最高和最低實(shí)際收入。經(jīng)過分析需要查詢財(cái)務(wù)部雇員的最高和最低實(shí)際收入,涉及到 Employees表、Departments表和Salary表,需要在三張表中進(jìn)行查詢。首先確定DepartmentName為"財(cái)務(wù)部〞的DepartmentID。其次在Employees表中確定DepartmentID為財(cái)務(wù)部的雇員的EmployeelD。最后在Salary表中通過EmployeeID查詢財(cái)務(wù)部雇員的InCome和Outcome,在最后的輸出時(shí)候用InCome-OutCome的結(jié)果為實(shí)際收入。
bs£,yggl-北陽諒弓 ^,yggl-1useYGGL2go3FlselectMAX(InCone-OutConea5最高實(shí)樂收入,4MIN(InComeOutcome;x最低室際收入5fronSalaryelwhereEmployeelDin■ 7「(8selectEmployeelD9fromEmployees10whereDepartrnentlDin111(12lDepartments*Dep^rtmentID13fromDepartments14whereDepartmentNanie='財(cái)務(wù)部"15l)ie\1)1執(zhí)行后在結(jié)果欄中看到財(cái)務(wù)部雇員的最高實(shí)際收入和最低實(shí)際收入??诮Y(jié)果.弓消息最高實(shí)際收入滋掘最低實(shí)際收入1494.63⑧找出所有姓王的雇員的部門號(hào)。"巳VGGLgoDepartmentIDHameDepartmentIDHame\s i王林1 王向容fromEmployeeswhereNamelike'王【思考與練習(xí)】A、找出所有地址中含有“中山〞的雇員的號(hào)碼及部門號(hào)。SQLQuErYS.Eql-疑吃衛(wèi)15ifSQLQuErYS.Eql-疑吃衛(wèi)15if、*、S.Tft.¥GGL-dbo.Salary1u&cYGGL?滬3-tEnploy?aIDfDepartrr冒ntIDpAddr?isfromEiwloy好$51whereAddresslike?燭山貳|注意:%代表著任意長度的字符串〔長度可以為□舗一皿息Sixdzvfe-sIDD^irtricttlDi^ddr-cas1 ;oimcill :2申ill flfl? Q他詢 L申ill布SS】QM3 』軸剛 3申lUjgUHUIB4 Pl騎期 30〕,“%中山%〞表示中山前面和后面都能夠有任意長度字符串,用來表示地址中含有“中山〞二字。B、后面都能夠有任意長度字符串,用來表示地址中含有“中山〞二字。B、查找職工號(hào)碼中倒數(shù)第2個(gè)數(shù)字為0的職工的、地址和學(xué)歷。useYGGLgoI-selectEmplayecID,MamejAddre^FducatiartfpomEnployeeswhereEn^loyeetDlike,3?_'|上呼]呼?前D貫<|?申山^32-1-500尺址.!:ig尢專il-nrnniBL.....」壬林D1D0E6豐科IQ^DI豐科ID曲08牌櫃E—3-LZ1BIIUU車科押益誦注意:數(shù)字占單個(gè)字符,所以通配符“ _〞只有一個(gè),“%0_〞表示倒數(shù)第二位為0。⑨找出所有收入在2000~3000元的職工號(hào)碼。注意:數(shù)字占單個(gè)字符,所以通配符“ _〞只有一個(gè),“%0_〞表示倒數(shù)第二位為0。⑨找出所有收入在2000~3000元的職工號(hào)碼。LuseWGLgol-selectEmployeeIDfromSalarywhereInCome 2000and3000(【思考與練習(xí)】找出所有在部門“1〞或“2〞工作的雇員的號(hào)碼。1 J淌息EmployeelV1:OOQOOl20200103020013-J——? - -FluseYGGLFheEifiHHnLrr2go1 1B33E5669E 3-dselectPhone'Jumber2 333212214 fromEmployees3 837K236JwhereDeDarTme|,,tID='1'orDepartmentID=r2r4 3341330110使用INTO子句,由表Salary創(chuàng)立“收入在1500元以上的職工〞表,包括編號(hào)和收入。12
入
斗56useYGGLgoFlselectEmployeelDas^^-.InCorneas收入
into收入在1500元以上的員工■f>omSalarywhereInCome>15061i-JVML田ca血庫關(guān)垂圄ajstl±.J葢臥歳It_JFleTibli^i匕dhoOrpflrtnirntiT-dbo.EmluymH二dbo.^^larvl±二dootJ?.&15CX>75X:在左邊對(duì)象資源管理器的YGGL數(shù)據(jù)庫的表中刷新,會(huì)發(fā)現(xiàn)多了表“收入在 1500元以上的職工〞?!舅伎寂c練習(xí)】使用INTO子句,由表Employees創(chuàng)立“男職工〞表,包括編號(hào)和。1useYGGL23EiselectEmp>lt>yeeIDas編號(hào)川呂低as姓名4into男員工5f?omEmployees6wher已5ex=l匚」表+」+i丄FileTablw+J二dbo.Departments~|二dbo.EmplcyeE±)二]dbo.SdkryI兇nubo.男員工]sMdbo.JlZAaiSOQTEtLt〔2〕子查詢的使用。查找在財(cái)務(wù)部工作的雇員的情況。查詢財(cái)務(wù)部工作的雇員情況,需要用到 Department表和Employees表進(jìn)行多表查詢。首先,在Department表中查詢DepartmentName為“財(cái)務(wù)部〞的DepartmentID。然后,將DepartmentID拿到表Employees表中查詢所有DepartmentID為財(cái)務(wù)部的雇員的所有信息。利用T-SQL命令查詢代碼如下。ESK.YGGL-血.入在巧逝IXt的員工SQLQuery3.5ql?^.YGGL(葩口?〞X1useYGGL5618910g°3&elect-fromEmployeeswhereDepartmentlD^(selectDepartnwntIDfromDepartmentswtiereDepartmentMame^'在結(jié)果欄中顯示所有工作部門為“財(cái)務(wù)部〞的雇員的詳細(xì)信息。EmployeelDIdacaticiT!Eirthidaji"ikdil「電弓占rhrm&ftjJTibferDerartnentll)1'01CKO8[伍咨華19/6-03-G3I3北京樂賂:叱9332132112oaxio王向容碩士1932-1£nQ91£E3J}S^i0-0-109陽詫⑹13O^C'1830?CHO7-?)S巾山※豁噸8311330117結(jié)果消息【思考與練習(xí)】用子查詢的方法查找所有收入在 2500元以下的雇員的情況。進(jìn)分析需要用到工資表 Salary和職工信息表Employees進(jìn)行查詢。首先,在表Salary中查詢InCome<2500元的雇員的EmployeelD。然后,利用得到的EmployeelD在表Employees中行選,查詢所有符合 EmployeelD的雇員的情況。SQLQuery3,^|-陳聰畀GGL〔沖(54))*減制&M3GL-dbo^alary 陳-dbo^D^part13二56789102宕YGGLgo-select*■fromEmployeeswhereEmployeelDin(selectEmployeelD]fromSa1arywhereInCome<250O注:上面截圖中代碼第 5行,假設(shè)改為“whereEmployeelD=〞就會(huì)出現(xiàn)如下錯(cuò)誤□鮭果A消息消息□春級(jí)別it-狀冼和第[行子?xùn)嗽兎祷氐闹挡恢巩?dāng)子?xùn)唆狩{在入i<:、g兒〉■之后.或子登詢用作丟週躋這利f況呈不代許的。表示返回值不止一個(gè),并且現(xiàn)在子查詢后面接的是的,所以就會(huì)出現(xiàn)如上所示的錯(cuò)誤。解決方法只需要將返回值不止一個(gè)和“=〞的沖突。執(zhí)行上面T-SQL語句,在結(jié)果欄中顯示出現(xiàn)結(jié)果。234568234568910111213141516171819202122selectDepartnentlDfromDepartmentswhereDeipartmentMam?=' ')日ndBirthday>allselectbirthdayfromEmployees]whereDepartmentIDinselectDepartmentlDfromDepartmentswher*€DepartmeritNanie='研發(fā)部'同結(jié)果-J涓息EmployetLD£due?.ti?nBlzthdiyStxVor>I?*rThe電伽b電f11000001大咅1966-01-231B審山関32T-5D8S335G6682ZO1W0Q197^-05-^1393321321I3O2CM18大專1960-07-3006中l(wèi)lj東路102T&3413301L410220S領(lǐng)士1965-0G-2912牌機(jī)巷G-Al能0470£6175C111006張石斥本科1974-lt-Ol11跚路出T-^35455341356210678夫?qū)?9??-04-0212巾山批腫-35&346T53537bU4£0?05漢中B120-4^2S44bt:lttlI查找財(cái)務(wù)部年齡不低于研發(fā)部雇員年齡的雇員的。分析得,ALL指定表達(dá)是要與子查詢結(jié)果集中每個(gè)值都進(jìn)行比擬,當(dāng)表達(dá)式與每個(gè)值都滿足比擬是關(guān)系時(shí),才返回 TRUE否那么返回FALSESQLQuery3.sql■^.YGGL(話(54))*XESK.YGGL-SQLQuery3.sql■^.YGGL(話(54))*XuseYGGLgoI-selectNamefromEmployeeswhereDepartfiwntlt)in執(zhí)行結(jié)果會(huì)發(fā)現(xiàn)只查詢到1人滿足這樣的條件。1inaaj同樣我們也能夠通過查詢Employees表得到。財(cái)務(wù)部只有"王向容〞1人符合年齡不小于〔大于〕研發(fā)部雇員年齡。oi?oe0X010OSKrlS£SH*la卻isnFMra-zi1H3-134M!1謝也皿Fifce2百PUHMrQMM中Sift皿2BTizTJZIBmZKlSM133&1iicean■-匸:??TtkS逵杜厝259OZZCB^.9.Oct2建喪部mi0E>B470SB1TSicnmpyioJRSLjlBf3-1W5flldMOTZEJmCWm1曾■?漕勺115?1D576Tnif?中U內(nèi)巧BU673163sazMe*?IBIHfl-EW-ZO???3Jfe£zSfrJ3t]-lMF7fi5Wl4a197141-11Trve2Mjoawi45CM?CIM95S^H^D-4-12彳注:在書上源碼第12行“Birthday!>all〞查詢到的是“李麗〞,年齡小于所有研發(fā)部的,所有書本上源碼表示的是“財(cái)務(wù)部雇員年齡不大于研發(fā)部雇員年齡〞與題目中“不低于〞沖突。所以書上源碼有誤,將源碼改成上面截圖中第 12行即可?!舅伎寂c練習(xí)】用子查詢的方法查找研發(fā)部比所有財(cái)務(wù)部雇員收入都高的雇員的。分析:首先在Employees表里找到EmployeeName為“研發(fā)部〞的雇員的和查找雇員的EmployeelD,其次這樣的EmployeelD還需要滿足InCome大于所有的DepartmentName為財(cái)務(wù)部〞的雇員的InCome,滿足條件返回True,select到滿足這樣條件的雇員的Name,否那么返回FALSEWhere子查詢中嵌套使用。SQLQueryl.&ql- SQLQueryl.&ql- L(sa(56))*X□5CYGGLs-electMamefrcwEmployee吝whereDepe^tnentlD丄(胡己ct冊(cè)繪部收入比財(cái)…¥GGL(sa(55)]selectOesartr^ntlDfromDep-artmentswhere rt?ntteE='andEmplcyeelDinselectEnrlo.fron^alarj.wtiercirrcc-~eall(selectincomefromSalarywhereE(npla?eeZDinseLettiinplQyetiQ■frcrtnEnploy?sDeparTmentlDirselectCep-arLnentlDVroinDecartmentswhrreDepartment?ame=hSl^sC'執(zhí)行T-SQL命令后在結(jié)果欄中顯示只有 1人滿足。%皓果込消息李玉琨〔3〕連接查詢的使用。①查詢每個(gè)雇員的情況及其薪水情況。SQLQueryisql-SQLQueryisql-輙¥GGL⑼(55)1*X^.YGGL-dbo^Salary 勰AGGL-d噸YGGLgoHdselectEnplo/e^s.,Salary.■1 frornEmployeaSjSalarywhef'e ?Em?loyeeID-Salary.EmployeelD
執(zhí)行之后,將Employees表和Salary表中所有職工的根本情況進(jìn)行輸出。缺乏之處就是EmployeelD這一列有重復(fù)??谂喙鸍1:as賈an*BilGHti『■>9jilidqrfqrliY*?rAdlwsrh<ripffmb#TD^plTtHrnllDTHOuirm*1IEWD01:和丈專l^rQl-23J 6中11^32-4-535前弼礙2men2100.512t.Werne田答華詠P3-231 3卄劑溷4J01co膽@103卜1st1^-12-0912]QEQ&W26珂IW4DgQpLfilafiti-OKMD 64:岀如切1ofrnifi2-34?aasanE10@仙陽?陽im肅MS10CTP卵睹HlAE更dAA1BI5aw±1355-0?-^1 F耐TOF17E胃B0JDEIIQTiHlA-inj J.—i±liSSjnr-AMR1-JP翊㈱TRIJW三已我幕三訂行岸專門1:HlTVIj【思考與練習(xí)】查詢每個(gè)雇員的情況及其工作部門的情況?!?58-YGGL-dbo.SalaryKB&.YGGL-dbo.EmployeesSQLQuery2.iqJ-除庭VGGL已曰£558-YGGL-dbo.SalaryKB&.YGGL-dbo.Employees1useYGGLgoFselectdistinctwfromEmployeeSjSalary^Departmentswh^reE.Emplo-yeel^Salary?Employ年已IDandEmployees.DepartmentID=[>epartmentjs.DepartmentID執(zhí)行后將每個(gè)雇員的根本情況、工資情況、工作部門情況輸出。LhhftEbitk-anVLfelMv陽Fb*i肉陽<li暫押L叩泗DC*#Mi1 匸A*IWHOL-5]4-R叩廚龍-TH24IHM.£!■?0£M冊(cè)番H31H OEOinB建韶13“桶I0MBT3FI.3S1D03DUWHEE£E陽(C]tw^r-nm.S CCCtLO玉諂il±isse-js^bi2I3ffin-ff-JflftIaniw1口髓H.OL4 (ticoieHEd4■山dOME■UMS47.4B1UL峪 |A£?|]B:|9rM0?5filiQT7?衛(wèi)E.ID^OI羞毋Eti:|S£i£EjMfl]Utti2Ei[e.jeAjifflUXh5戶JhttAL1L叱44中避IAJ-]購3a?hS9JK3諷“竝HJiLit iitro^11 q11]?Hmi■■!qMJHHUMvauRtTMiM②使用內(nèi)連接的方法查詢名字為“王林〞的職工的所在部門。4use4useY6GL21-select Departib?htMpidfromDcpartncnts Eri^Lo/ccs5ONDep^rtrnsrit.DepArtfl^ntTD-Eivplay^es.DepartraentlD&whereEniployces.Nan?e-'王林'口結(jié)果山消息WarneDepartntHimE1、到…人力滾源部【思考與練習(xí)】A、使用內(nèi)連接方法查找出不在財(cái)務(wù)部工作的所有職工信息。內(nèi)連接是指定了關(guān)鍵字INNER的連接,內(nèi)連接按照ON所指定的連接條件合并兩個(gè)表,返回滿足條件的行。此處 INNER關(guān)鍵字能夠省略。查找所有不在財(cái)務(wù)部工作的職工的信息,就需要使用職工根本信息表 Employees和部門信息表Department進(jìn)行查詢。T-SQL命令語句如下。執(zhí)行結(jié)果包含表Employees和表Department的所有字段,不去除重復(fù)字段〔DepartmentID〕。U"YG^LgotselectEmployees.'?Departments.*fromDepartmentsJOINEnployeesONDepartruents,DepartmentlD^Employees+DepartmentIDwhereDepartmentName!■=*財(cái)務(wù)■部[
Zda:itLan.BLrthdlx/■便If力berWsjTTm沁口站:址trmildtFieri.xNaj?1:COOTJ創(chuàng)184*UMJS-1-SM閔愷吹32mra1汕迅?!?P1L^-iO-]013ETH*MULL3ID埜?jìng)?cè)**B±LM-0H3121血口2L訊斟燒』T5MU^iaIQEffll社l時(shí)n4中iLiatlD-3-M33I1LCJW1]6EMVU.£卻憶侶J2中JJ1^74^36華3壬兩衛(wèi)左IUCL□日代/皿忸污.r?>B、使用外連接方法查找出所有職工的月收入。外連接為指定了關(guān)鍵字OUTER關(guān)鍵字的連接,外連接包括以下三種連接。左外連接〔LEFTOUTERJOIN結(jié)果表中除了包括滿足連接條件的行外,還包括左表的所有行。右外連接〔RIGHTOUTERJOIN:結(jié)果表中除了包括滿足連接條件的行外,還包括右表的所有行。完全外連接〔FULLOUTERJOIN結(jié)果表中除了包括滿足連接條件的行外,還包括兩個(gè)表的所有行。在這里將表Employees和表Salary做右連接查詢,結(jié)果表中除了包括連接條件外,還將包括右表〔Salary表〕中的所有行〔InCome和Outcome〕SQLQuery2.5ql-i^.YGGL(sa仃5擴(kuò)XEH^YGGL-dtxj.Salary S^.YGC1ug?YGGL23EselectEmployees."SlriConiTAfromErnplayeesLEFTOUTERJOI'1Salary5OHEmployees.Employe&ID^Salary-EmployeelD執(zhí)行代碼結(jié)果如下。£dueitianS&JE丄3亞奮匸豊tkAiLflEiinlidrln£^n?1[UUUUUL]g杲昭b酩冊(cè)221JX.J201DOO日豐稈197&-C3-2E:]3北京茅齬e33£L32L11532.S23ceooio王向=81E口牌揺m-o-i倜斷鮭S肌J2^34(MKNJie**19^0-07-%ng中山Mios-a834133011產(chǎn)47asCLOSSDL劉明]38?o?oe茶罰豁初"已成功換查找財(cái)務(wù)部收入在2000元以上的雇員及其薪水情況。分析得需要財(cái)務(wù)部收入2000元以上雇員和薪水情況,涉及雇員根本信息的 Employees表、部門信息Department表和薪水信息Salary表。此時(shí)就用到where語句里面多表查詢將三張表做自然連接。|E5W.VGGL-dbo.Salary PJig.YGGL-HHo,Empic餐置1□seYGGL2go3LJseleCtMarnejInCome,OutCone4fromEmployeesjDepartment^jSalary5where6mridEmployees.DepartmentID=Departments.DepartmentID1andDepartmentNane=' 部’S^ndInCome>2000執(zhí)行上面截圖中代碼,在下面結(jié)果欄中顯示財(cái)務(wù)部工資在 2000元以上的雇員的和薪水
情況?!踅Y(jié)果占消息Nwn電 InComtQutComft1j壬向容j26601362李麗 £347.60130【思考與練習(xí)】查詢研發(fā)部在1976年以前出生的雇員及其薪水情況。232345618F5electNamejInCome;0urtComefnomErnplayoGS-jDepartmentsJSalarywhereEmployees,EmployeeID=Salary.EmployeelDandEm^loy&es;.DepartmentID=Departments.D&partmentlDandDepartrientNaine='研發(fā)部"andBirthdays'197G'將三張表做自然連接后查詢滿足條件的雇員的、收入和支出。□結(jié)杲力消息TdCqih^ O^tCi^ine1葉凡1L.r—i,,!-??ir-i-?圧別,陽139.00〔4〕聚合函數(shù)的使用①求財(cái)務(wù)部雇員的平均收入。新建一個(gè)查詢,在“查詢分析器〞窗口中輸入如下語句并執(zhí)行。|陣聡川GGL'dbo-Salary ff^.YGGL十db□.Employees1useYGGL2g°3EselectAVG(InCome)as■財(cái)務(wù)部平均收入/4fromSalary5whereEmployeelDinr7selectEmployeelD8FromEmployees9WhereDepartmentlDin10(11selectDepartmentID12fromDepartments13whereDepartmentName='部,14)15!)執(zhí)行截圖中代碼,結(jié)果欄中顯示才而不平均收入。勺結(jié)黒比消息1 (22S3.43333333333\
【思考與練習(xí)】查詢財(cái)務(wù)部雇員的最高收入和最低收入。查詢最高和最低收入,將用到聚合函數(shù)表中的 MAX〔求最大值〕和MIN〔求最小值〕。[fJSfe.YGGL■dbo.Saary F^SS.VGGL-dbo.Employees1useYGGL2go3-select InCome〕白s'財(cái)務(wù)部最高牧入'0鞏〔止5磋〕as'財(cái)務(wù)部:最低收入'4567fromSalarywhereEmployeelDinIselectEmployeelD8gfro(nEmployeeswhereDepartmentIDin10(11selectDepartmentID12fromDepartments13whereDepartmentName=1部’14)15)執(zhí)行上面截圖中T-SQL命令,在結(jié)果欄中顯示財(cái)務(wù)部雇員最高收入和最低收入??诮Y(jié)果消息財(cái)務(wù)部最訓(xùn)入1 2S&0“財(cái)務(wù)部最低收入1ES2.62■上②求財(cái)務(wù)部雇員的平均實(shí)際收入。新建一個(gè)查詢,在“查詢分析器〞窗口中輸入如下語句并執(zhí)行。SQLCliiery5,5ql-I^.YGGL(sa XuseVGGL12SQLCliiery5,5ql-I^.YGGL(sa XuseVGGL1234567g9101112131415eobselectAVG;Intone-Outcome■as' 員平均實(shí)際收入'fromSalarywhen&EmployeelDin(selectEmployeelD■fconEmployeeswhereDepartmentIDinxselectDepartmentID-FromDepartmentsuh&reDepartmentllame=*)執(zhí)行上面截圖中的T-SQL命令,在結(jié)果欄中顯示財(cái)務(wù)部雇員平均實(shí)際收入?!舅伎寂c練習(xí)】查詢財(cái)務(wù)部雇員的最高和最低實(shí)際收入。需要財(cái)務(wù)部實(shí)際收入需要用表 Salary中的InCome字段和Outcome字段。其次用到聚合函數(shù)MAX和MIN。最后在用where子查詢找到DepartmentName為"財(cái)務(wù)部〞的雇員的EmployeelD。備:你H■dbnJJ-丄YGGL1god-selactInLome-OutCerna)asM務(wù)部喪弓命為實(shí)際收入°』4MINTnCont-OutCjiie'''as'財(cái)■務(wù)部雇貝最低實(shí)師皮人,5fronSalary67iNhtre[ppi口擴(kuò)eeIDi-ia\selectEmployeelDy+r"Ombimploy&es10whereDepd-'t-n^rtID1i11(17spIpet rm^ntTr13fremDepji^tw-nts14jjbere1>艸好4m5腫盧="財(cái)務(wù)St"15)16|)1執(zhí)行上面截圖中的T-SQL命令,在結(jié)果欄中顯示財(cái)務(wù)部雇員最高和最低實(shí)際收入。|觀結(jié)果|空淸忌_ |財(cái)務(wù)邵雇員最高實(shí)際收入財(cái)勞卻雇員最低戛際收入|EG6E1404.50〔5〕GROUPBYORDERBY子句的使用。①查找Employees表中男性和女性人數(shù)SQLQMry5珅SQLQMry5珅-im.YGGL(ss臣勺孑X|1useYGGL2go3LSelectSex,COLHJT(Sex:4froniEmployees5groupbySex【思考與練習(xí)】SQLQjeryS.sql-R^.YGGLg[55FSQLQjeryS.sql-R^.YGGLg[55F<1應(yīng)VGGL23-selectEnployees.DepartmentlD,斗COUJT(Employees-departmentIDas"部J人5from^mpio'/eei,DepartmentsgroupbyEmployees. "tForrtlDA、按部門列出在該部門工作的職工的人數(shù)。B按職工的學(xué)歷分組,排列出本科、大專和碩士的人數(shù)。SQLG呵気SQLG呵気sql-陳的GGL罰〔$那X區(qū)1useYGGL2go3.selectEducatian,COUNT(Education)4fromEmployees5groupbyEducation|匸結(jié)果j消息衛(wèi)ducationi;輛:52 喪I3 碩士3②查找職工數(shù)超過2的部門名稱和職工數(shù)量。 eYGGL E 1go1=;selectDepjrtm^n+s.Depar+mentNametCOUNTp "人數(shù)"fromEmployeesjDertment5i4i電廣總Ehplcy^5.DepartmentID=Departments.DepartmentlDgroupbyDepartmerts,Departmenthlame1[ havingC0UNT{*)>2執(zhí)行上面截圖中代碼,在結(jié)果欄中顯示職工數(shù)超過 2的部門名稱以及人數(shù)?!踅Y(jié)果消息DejartnisiitNsffiie人敎i :財(cái)辯p32 市場(chǎng)部33 研發(fā)部3d克詢bj黝執(zhí)丘 |【思考與練習(xí)】按照職工的工作年份分組,統(tǒng)計(jì)各個(gè)工作年份的人數(shù),例如,工作 1年的多少人,工作2年的多少人。分析只需要Employees表就能夠完成,通過GROUPB對(duì)WorkYear進(jìn)行分組,并統(tǒng)各個(gè)年份的人數(shù)。1useYGGLS°3456-s-electWorkYearx■工作年份COUNT(WorkYear)菲■人數(shù)?from3456③將各個(gè)雇員的情況按收入由低到高排列。新建一個(gè)查詢,在“查詢分析器〞窗口中輸入如下語句并執(zhí)行。IE53&.YCGL-dbc.Ssl^ry EJ^SS.YGGL-dbo.Employeesu弦YGGLgoQselectEmployees.?^Salary?*-fromEmployees,SalarywhereEmployees.Employe^rD-SalaryrEmployeelD6 byInCome需要對(duì)雇員的收入情況進(jìn)行排序,就需要使用到謂詞 ORDERBY謂詞ORDERBY后面能夠接多個(gè)排序的變量名,第一個(gè)變量為主序,下面依次類推。每一個(gè)排序列名后面可用限定詞ASC〔升序〕或者DES〔降序〕聲明排序的方式 ,缺省為升序〔如果不接限定詞系統(tǒng)默認(rèn)的為ASC〔升序〕〕。下面為執(zhí)行上面截圖中T-SQL下面為執(zhí)行上面截圖中T-SQL命令,在結(jié)果欄中顯示的查詢結(jié)果。可以觀察雇員的基本信息是按照InCome升序排列〔由低到高〕。-U*jlifeestneTiEtrD^4rtr.?ri.tIJ'F.jldyiMilDJdCw*LhrtCcfte]:0LO90B鄧曲EW15死EifiLOC"!99321391I0J-3ML02塹3!C3Z咤吟wtL*匪-HF?12M70W17耳LOCML^QIE3ILIDDE]1犧^341$&13J006冋Cl]TP田4號(hào)函呻05製押l:flFIF4njBfi詣號(hào)pixud||L?S6h|3]-S?3]S1racuiOD]?3Q0H】ntwELOC7B大t[9??HCW-Le3¥03囪恥3£1067&【思考與練習(xí)】A、將職工信息按照出生時(shí)間從小到大排列。£QLQuery5.SHl-眛聰.¥£GL(諂x|1useYGGL2go3EselectEmployees*■"4fromEnployees]5orderbyBirthdayasc6執(zhí)行上面截圖中的T-SQL命令,在下面結(jié)果欄中顯示雇員信息根據(jù)出生日期從小到大排列。二結(jié)果’_i消息foplojniLlDEducationBirthdayS?xWcrkYtwXd>ir?s5FhDiuNimbflrDfepmftnantlllIiczooie196O-O7-3Q06中U|$*inz^634133J1I2JUZZUt鎖士1炒6b-W-!^1E牌樓巷Z-LUti&4108m?b3OOOODl王茹1966-01-23)8中山路湮T-6」86335563824和更陡5;科19S6-O9-2D13IMH&20J-3eewbSBi斗5SO420&大專1969-(0-03D5滾申囂⑵T-12B44B81S84觀苣為己底色或行?C在ODERBY子句中使用子查詢,查詢職工,性別和工齡信息,要求按照實(shí)際收入從大到小排序。經(jīng)分析將表Employees和表Salary根據(jù)EmployeelD相同做自然連接,其次根據(jù)實(shí)際收入〔InCome-OutCome〕進(jìn)行ORDERBY*序。最后,由于是根據(jù)實(shí)際收入〔InCome-OutCome〕從大到小進(jìn)行排序,那么接在 ORDERBY后面的謂詞就需要換成DESCSQLQutryScal- (ca(55})*劇■Th?Sk呼 WVG3L?dbc.Employe 碾WGL〞SQLQutryScal- (ca(55})*useYGGLgouselectfJaneas+蛙\5ex陽 .WorkYear站■工齢電OutCeno藥■艮際以入'二 f^oniEHpL[)y&££j5 wiere Cnployeei.EmployeLary.EnplD、忙亡IDb Qi"iderbyIntorie-'Ikrt匸ciniE根據(jù)上面截圖中T-SQL命令,在結(jié)果欄中顯示根據(jù)實(shí)際收入進(jìn)行排序輸出雇員的,性別和工齡信息。結(jié)果J消息1姓名 性別j伍容華!13實(shí)瞬收入.1494.BS2朱俊 121彌03乘石眞111907.434陸林琳0號(hào)1966.155壬林 11??7,71企郴頁 121192亙置三成加工T4.1視圖的使用1、 目的和要求〔1〕熟悉視圖的概念和作用?!?〕掌握視圖的創(chuàng)立方法?!?〕掌握如何查詢和修改視圖。2、 實(shí)驗(yàn)準(zhǔn)備〔1〕了解視圖的概念〔2〕了解創(chuàng)立視圖的方法。〔3〕了解并掌握對(duì)視圖的操作。3、 實(shí)驗(yàn)內(nèi)容〔1〕創(chuàng)立視圖。創(chuàng)立YGGL數(shù)據(jù)庫上的視圖DS_VIEW視圖包含Departments表的全部列。SQLQueryl.sql-lo...ost.¥GGL(Sa(52))*| 0createVIEWD5_VIEWasselect!1- fromDepartments新建“查詢分析器〞窗口,在其中輸入以上 T-SQL命令,點(diǎn)擊執(zhí)行按鈕。在YGGL數(shù)據(jù)庫的視圖中進(jìn)行刷新,就會(huì)顯示創(chuàng)立的 DS_VIEW視圖,如下所示。3□dbo.SalaryBU視劊+iQldbo,DSVlEW創(chuàng)立YGGL數(shù)據(jù)庫上的視圖Employees_view,視圖包含職工號(hào)碼、和實(shí)際收入 3列。使用如下T-SQL命令進(jìn)行操作。204-19.YGGLdbo.DS.VlEWEQLQweryl.sql 伽(52))*日亡廣色nt色VIEW EmployeeID, .ReallnCom^Jas□ selectEmployees? NainiE」In匸口厲亡-0口七€口血己L fromEmployee&HhSalary執(zhí)行上面截圖中代碼,在YGGL數(shù)據(jù)庫的視圖中進(jìn)行刷新,顯示視圖Employees_view,如下所示。3二dbc.Salary日LJ視蹙aZJ崇統(tǒng)觀凰a回FF1[JIdbo.Employees_view【思考與練習(xí)】A、 在創(chuàng)立視圖時(shí)SELECT!哪些限制?用來創(chuàng)立視圖的SELECT語句,可在SELECT語句中查詢多個(gè)表或者視圖,以說明新創(chuàng)的視圖所參照的表或視圖。B、 在創(chuàng)立視圖時(shí)有哪些注意點(diǎn)?只有在當(dāng)前數(shù)據(jù)庫中才能夠創(chuàng)立視圖。視圖的命名必須遵循標(biāo)識(shí)符命名規(guī)那么,不能夠與表同名。不能夠把規(guī)那么、默認(rèn)值或觸發(fā)器與視圖相關(guān)聯(lián)。C創(chuàng)立視圖,包含職工號(hào)碼、、所在部門名稱和實(shí)際收入這幾列。SQLQuery^^ql-loH,o$t.YGGL<嗣 2W-19.YGGL?dbo.Empiayees.viewSQLQueryZ.RcreateviewEmployees_view(EmployeeID?Name^ReallnCome)assele匚tEmployees.DepartmentID』Name,In匚ome-OutcomefromEmployees,SalarywhereEmploy^QG.EmployeeID=SaLary_EmployeelD在數(shù)據(jù)庫YGGL的視圖中刷新,會(huì)顯示剛剛創(chuàng)立的視圖 test_view,包含職工號(hào)碼、、職工部門名稱和實(shí)際收入這幾列。結(jié)果如以下圖所示。曰二視圖d□轂觀圖£因Idbn.DS_VlEW+QIdbo.EmpIoyees_vieEJ岡dbo,test_view〔2〕查詢視圖從視圖DS_VIEW中查詢部門號(hào)為3的部門名稱。々QLQMryZjql?1。亠吐¥"硏L(*■螢5})葉泌JA¥GGL-dtw?D£_廂町useYGGLgoEselect甌哪J釀0址回嗟fromDSVIEWLwhene 卿曲[了*注:在上面代碼下是顯示錯(cuò)誤,但是代碼邏輯都正確,而且也能夠正確執(zhí)行,并且輸出正確的結(jié)果?!膊恢朗鞘裁丛颉?/p>
H結(jié)杲島消息I_C^uartnientrJamei "〞…~i11rn^i■■ir-r?11■mr②從視圖Employees_view中查詢?yōu)?王林〞的職工的實(shí)際收入。SQLQuery^.sc|l-lo...ostVGGL(sa(53J)1 2H4-15.VGGL曲結(jié)果血消創(chuàng) [1eeIe匚七N-srne,RealInComefromEmplcy&&sviewwhere 王科'NameR?iInCome1「至荻〞〞:1377.71Rl'an■■“*【思考與練習(xí)】A、假設(shè)視圖關(guān)聯(lián)了某表中的所有字段,而此時(shí)該表中添加了新的字段,視圖中能否查詢到該字段?首先建立視圖Employees_view并且關(guān)聯(lián)表Employees中的所有字段。&QLQuery1,sql〞fS^YGGL(田(53)fX-createVIEWEmployees_wiei^EmployeelDjNamejReallnCome|asuseYGGLgo^select*fromEmployeesviei<whereEmploveeID="060000'selectEmployees.EmployeelDjName;InCome-OutcomefromEmployees!SalaryuseYGGLgo^select*fromEmployeesviei<whereEmploveeID="060000'胖疽i11曲g韓副口:4-I.' S44附和4□00000幀呻im-w-OTTrue1口學(xué) 1111HH11■磁ffWtLWUWfUWit NlHlwit最后在“查詢分析器〞中查詢EmployeeID等于“000000〞的雇員的所有信息。然后在表Employees中插入一行新的數(shù)據(jù)。SQLQuery2,Eql-B^.VGGL[sa(54爐x陳聰.¥GGL-dbo£mployeeE SQLQueryl.sq12EmplLoyieeZDName:RealJn£one口結(jié)杲J消息45100%*從上面的T-SQL命令可以看出,當(dāng)視圖關(guān)聯(lián)的表中添加新的字段時(shí),視圖中是無法查詢到該字段的,必須重新創(chuàng)立視圖才能夠查詢到新添加的字段。B、自己創(chuàng)立一個(gè)視圖,并查詢視圖中的字段。利用T-SQL命令創(chuàng)立一個(gè)視圖Employees_view,該視圖包含雇員EmployeelD、Name和RealInCome〔實(shí)際收入〕,并且查詢?cè)撘晥D中為“王林〞的雇員的根本情況。具體 T-SQL命令代碼如下。
SQLQuery!sql-臨SdLQueryZsql*hK.YGGL(sa SSSS.YGGLSQLQuery!sql-臨1234□createVIEWEmployees^iewfEmployselDjNamejRsallnComeas1234selectEmployees.EmployeelD,Name,In匚cowOutcomefromEmployeesjSalarywhereEmployees.EmployeeID=5alary*EmployeeID|查詢?cè)撘晥D中為“王林〞的雇員的根本情況。1mbYGGLgo弓匚t-^rcm viCm汕1mbYGGLgo弓匚t-^rcm viCm汕〞亡I皚E"1工耕'[二結(jié)杲一i消忌1EnploytelS000001iAeallnConi*1977.?1〔3〕更新視圖。在更新視圖前需要了解可更新視圖的概念,了解什么視圖時(shí)不可以進(jìn)行修改的。更新視圖真正更新的是和視圖關(guān)聯(lián)額表。①向DS_VIEW中插入一行數(shù)據(jù)“6,廣告部,廣告業(yè)務(wù)〞。-[insertintoD5VIEW|■ ftiArtTCftiiWWW[ wduE5〔'6‘J廣告部’J廣告業(yè)務(wù)J當(dāng)在“查詢分析器〞中輸入上面代碼時(shí),會(huì)出現(xiàn)這樣的錯(cuò)誤。消息513,般刖16,狀盍6第1行列的橘入或更新與先帝的7^E^IERU1E語旬所指定的規(guī)炳宗生沖突。該語旬已終止。諳句已鎮(zhèn)止。規(guī)那么已經(jīng)和Departments。DepartmentID綁定,只需要解除綁定就行了。那么就將前面的T-SQL修改為這樣就行了。時(shí)聘WGL-dbo,DS_VIEW 測(cè)dcW■尿1綁)11礙3EXECsp_unbindruleTDepartments,DepartmentID';EinsertintoDSVIEW[ 〔苗’J廣告部■J廣告業(yè)務(wù)J當(dāng)再次執(zhí)行時(shí)就會(huì)發(fā)現(xiàn),Departments.DepartmentID已經(jīng)沒有了規(guī)那么,也就說明第一次執(zhí)行時(shí)規(guī)那么已經(jīng)解除綁定。同樣當(dāng)再次執(zhí)行時(shí)會(huì)出字段字段已經(jīng)出現(xiàn),不能夠重復(fù)輸入primarykey相同的記錄。消息1523S,級(jí)昜|1自狀態(tài)「過程sp—unbhdrtli第陽行洼反了PSMYKEY約頁“阻應(yīng)⑺加血J>不能在肘象“血』印申猶入重亙臥重復(fù)謹(jǐn)值為怡〕?語句已終11。繼續(xù)在視圖中刷新重新翻開“編輯前 200行〞就會(huì)發(fā)現(xiàn)字段已經(jīng)插入。6廣尋〞*廣吉峻■NULLNULLNULL修改視圖DS_VIE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨幣挖礦合同范本
- 企業(yè)正規(guī)合同范本
- 別墅購銷合同范本
- 信用擔(dān)保貸款合同范本
- 制作人合同范本
- 單位房屋租用合同范本
- 中介用代管合同范本
- 農(nóng)藥國際銷售合同范本
- 關(guān)于工地買賣合同范例
- 制作安裝勞務(wù)合同范本
- 2024-2027年中國網(wǎng)絡(luò)安全評(píng)估行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略研究報(bào)告
- 失智老年人照護(hù)X證書制度試點(diǎn)工作養(yǎng)老護(hù)理職業(yè)和失智老人照護(hù)員工種的發(fā)展講解
- 2025年湖南食品藥品職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 企業(yè)數(shù)字化轉(zhuǎn)型戰(zhàn)略-深度研究
- 新種子法律法規(guī)培訓(xùn)講解
- 2025年東營科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025-2030年中國民用通信天線行業(yè)發(fā)展趨勢(shì)規(guī)劃研究報(bào)告
- 《幼小銜接家長會(huì)》課件
- 浙江省金華市婺城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末數(shù)學(xué)試卷(含答案)
- Unit 4 A glimpse of the future 說課稿-2023-2024學(xué)年高二下學(xué)期英語外研版(2019)選擇性必修第三冊(cè)001
- 萬達(dá)廣場(chǎng)籌備期項(xiàng)目管理規(guī)范
評(píng)論
0/150
提交評(píng)論