版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQLServer2008數(shù)據(jù)庫創(chuàng)建、建表、查詢語句一、創(chuàng)建數(shù)據(jù)庫1、利用對(duì)象資源管理器創(chuàng)建用戶數(shù)據(jù)庫:選擇“開始”“程序”MicrosoftSQLServer2008SQLServerManagementStudio命令,打開SQLServerManagementStudio。使用Windows身份驗(yàn)證連接到SQLServer2008數(shù)據(jù)庫實(shí)例。(3)展開SQLServer實(shí)例,右擊“數(shù)據(jù)庫”,然后人彈出的快捷菜單中選擇“新建數(shù)據(jù)庫存”命令,打開“新建數(shù)據(jù)庫”對(duì)話框。(4)在“新建數(shù)據(jù)庫”對(duì)話框中,可以定義數(shù)據(jù)庫的名稱、數(shù)據(jù)庫的所有者、是否使用全文索引、數(shù)據(jù)文件和日志文件的邏輯名稱和路徑、文
2、件組、初始大小和增長(zhǎng)方式等。輸入數(shù)據(jù)庫名稱student。2、利用T-SQL語句創(chuàng)建用戶數(shù)據(jù)庫:在SQLServerManagementStudio中,單擊標(biāo)準(zhǔn)工具欄的“新建查詢”按鈕,啟動(dòng)SQL編輯器窗口,在光標(biāo)處輸入T-SQL語句,單擊“執(zhí)行”按鈕。SQL編輯器就提交用戶輸入的T-SQL語句,然后發(fā)送到服務(wù)器執(zhí)行,并返回執(zhí)行結(jié)果。創(chuàng)建數(shù)據(jù)庫student的T-SQL語句如下:CreatedatabasestudentOnprimary(name=student_data,filename=E:SQLServer2008SQLFULL_CHSMicrosoftSQLServerMSSQL10
3、.MSSQLSERVERMSSQLDATAstudent_data.mdf,size=3,maxsize=unlimited,filegrowth=1)Logon(name=student_log,filename=E:SQLServer2008SQLFULL_CHSMicrosoftSQLServerMSSQL10.MSSQLSERVERMSSQLDATAstudent_log.ldf,size=1,maxsize=20,filegrowth=10%)二、創(chuàng)建數(shù)據(jù)表1、利用表設(shè)計(jì)器創(chuàng)建數(shù)據(jù)表:?jiǎn)?dòng)SQLServerManagementStudio,連接到SQLServer2008數(shù)據(jù)庫實(shí)例。
4、展開SQLServer實(shí)例,選擇數(shù)據(jù)庫”student“表”,單擊鼠標(biāo)右鍵,然后從彈出的快捷菜單中選擇“新建表”命令,打開“表設(shè)計(jì)器”。(3)在“表設(shè)計(jì)器”中,可以定義各列的名稱、數(shù)據(jù)類型、長(zhǎng)度、是否允許為空等屬性。(4)當(dāng)完成新建表的各個(gè)列的屬性設(shè)置后,單擊工具欄上的“保存”按鈕,彈出“選擇名稱”對(duì)話框,輸入新建表名stu_info,SQLServer數(shù)據(jù)庫引擎會(huì)依據(jù)用戶的設(shè)置完成新表的創(chuàng)建。2、利用T-SQL語句創(chuàng)建數(shù)據(jù)表:Createtablestu_info(stu_idchar(10)notnull,namenvarchar(20)notnull,birthdaydatenull,s
5、exnchar(2)null,addressnvarchar(20)null,markintnull,majornvarchar(20)null,sdeptnvarchar(20)null);3、樣本數(shù)據(jù)庫student表數(shù)據(jù):學(xué)生信息表(stu_info):或uclnamebirthdaysexaddressmarkm司or112007070101K-張?jiān)?985-10-09男河南鄭州560計(jì)算機(jī)科學(xué)與信2LILI7LI7LI1LI2張紅1985-01-14河南開封565計(jì)算機(jī)科學(xué)與信2LILI7LI7LI1LI3王明1986-07-08男河南洛陽570計(jì)算機(jī)科學(xué)與信2i:iLi7Li7i:
6、ilLi4李偉1986-03-11男河南鄭州564計(jì)算機(jī)科學(xué)與信2007070201鄭瀾1985-12-01河南平頂山567電子商務(wù)信2LILI7LI7LI2LI2趙恒1986-02-03男河南周口566電子商務(wù)信2LILI7LI7LI2LI3張?zhí)m1986-04-06河南許昌571電子商務(wù)信2007080101李偉1985-09-12男河南鄭州578會(huì)計(jì)學(xué)會(huì)2LILI7LI8LI1LI2錨麗1985-11-23河南安陽573會(huì)計(jì)學(xué)會(huì)i2007080201孫楠1986-11-19男河南南陽577財(cái)務(wù)管理會(huì)課程信息表(courseinfo):陋L也匚oursejd匚ourse_ridme匚ours
7、e_type匚ourse_rridrk匚ourse_timepre_course_idBai計(jì)算機(jī)基礎(chǔ)考試350702操作丟統(tǒng)考試斗50701703計(jì)算機(jī)網(wǎng)絡(luò)考試斗50701704數(shù)據(jù)庫原理考查350701706Java考查3斗0704801宏觀經(jīng)濟(jì)學(xué)考試斗50802初級(jí)會(huì)計(jì)考試斗50803財(cái)政學(xué)考試350804會(huì)計(jì)電算化考查3來.wzA/LS.L學(xué)生成績(jī)表(stu_grade):三、完整性與約束數(shù)據(jù)庫中的數(shù)據(jù)是現(xiàn)實(shí)世界的反映,數(shù)據(jù)庫的設(shè)計(jì)必須能夠滿足現(xiàn)實(shí)情況的實(shí)現(xiàn),即滿足現(xiàn)實(shí)商業(yè)規(guī)則的要求,這也是數(shù)據(jù)完整性的要求。在數(shù)據(jù)庫的管理系統(tǒng)中,約束是保證數(shù)據(jù)庫中數(shù)據(jù)完整性的重要方法。1、完整性:數(shù)據(jù)
8、完整性是數(shù)據(jù)庫設(shè)計(jì)方面一個(gè)非常重要的問題,數(shù)據(jù)完整性代表數(shù)據(jù)的正確性、一致性和可靠性。實(shí)施數(shù)據(jù)完整性的目的在于確保數(shù)據(jù)的質(zhì)量。在SQLServer中,根據(jù)數(shù)據(jù)完整性措施所作用的數(shù)據(jù)庫對(duì)象和范圍不同,可以將數(shù)據(jù)完整性分類為實(shí)體完整性、域完整性和參照完整性。實(shí)體完整性把數(shù)據(jù)表中的每行看作一個(gè)實(shí)體,它要求所有的行都具有唯一的標(biāo)識(shí);域完整性要求數(shù)據(jù)表中指定列的數(shù)據(jù)具有正確的數(shù)據(jù)類型、格式和有效的數(shù)據(jù)范圍;參照完整性維持被參照表和參照表之間的數(shù)據(jù)一致性。2、約束:約束是數(shù)據(jù)庫中的數(shù)據(jù)完整性實(shí)現(xiàn)的具體方法。在SQLServe中,包括5種約束類型:primarykey約束、foreignkey約束、uniq
9、ue約束、check約束和default約束。四、數(shù)據(jù)查詢1、查詢語句:查詢就是根據(jù)客戶端的要求,數(shù)據(jù)庫服務(wù)器搜尋出用戶所需要的信息資料,并按用戶規(guī)定的格式進(jìn)行整理后返回給客戶端。查詢語句select在SQLServer中是使用頻率最高的語句,可以說select語句是SQL語言的靈魂。select語句的語法結(jié)構(gòu):selectselect_listintonew_tableFromtable_sourcewheresearch_conditiongroupbygroup_by_expressionhavingsearch_conditionOrderbyorder_expressionasc|d
10、esc參數(shù)說明如下:Select子句:指定由查詢結(jié)果返回的列。Into子句:將查詢結(jié)果存儲(chǔ)到新表或視圖中。From子句:用于指定數(shù)據(jù)源,即使用的列所在的表或視圖。如果對(duì)象不止一個(gè),那么它們之間必用逗號(hào)分開。Where子句:指定用于限制返回的行的搜索條件。如果select語句沒有where子句,dbms假設(shè)目標(biāo)表中的所有行都滿足搜索條件。Groupby子句:指定用來放置輸出行的組,并且如果select子句select_list中包含聚合函數(shù),貝U計(jì)算每組的匯總值。Having子句:指定組或聚合函數(shù)的搜索條件。Having通常與groupby子句一起使用。Orderby子句:指定結(jié)果集的排序方式。
11、ASC關(guān)鍵字表示升序排列結(jié)果,DESC關(guān)鍵字表示降序排列結(jié)果。如果沒有指定任何一個(gè)關(guān)鍵字,那么ASC就是默認(rèn)的關(guān)鍵字。如果沒有orderby子句,DBMS將根據(jù)輸入表中的數(shù)據(jù)的存放位置來顯示數(shù)據(jù)。在這一系列的子句中,select子句和from子句是必需的,其他的子句根據(jù)需要都是可選的。2、簡(jiǎn)單查詢:21、查詢列:(1)查詢指定列:數(shù)據(jù)表中有很多列,通常情況下并不需要查看全部的列,因?yàn)椴煌挠脩羲P(guān)注的內(nèi)容不同。在指定列的查詢中,列的顯示順序由select子句指定與數(shù)據(jù)在表中的存儲(chǔ)順序無關(guān);同時(shí),在查詢多列時(shí)用“,”將各字段隔開。例7-1、查詢所有同學(xué)學(xué)號(hào)、姓名和成績(jī)信息。Selectstu_i
12、d,name,markfromstu_info查詢結(jié)果如下:stu_idnamemark1|2007070101I張?jiān)?6022007070102張紅56532007070103王明57042007070104李偉56452007070201鄭瀾56762007070202趙恒56672007070203張?zhí)m57102007000101李偉57892007030102錢麗573102007000201孫楠577(2)查詢所有列:使用“*”通配符,查詢結(jié)果將列出表中所有列的值,而不必指明各列的列名,這在用戶不清楚表中各列的列名時(shí)非常有用。服務(wù)器會(huì)按用戶創(chuàng)建表格時(shí)聲明列的順序來顯示所有的列。例7-
13、2、查詢所有同學(xué)的所有信息。select*fromstu_info查詢結(jié)果如下:stu_idnamebirthdaysexaddressmarkmajorsdept1|2007070101I張?jiān)?985-10-09男河南鄭州560計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院22007070102張紅1935-01-14玄河南開封565計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院32007070103王明1936-07-00男河南洛陽570計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院42007070104李偉1986-03-11男河南鄭州564計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院52007070201鄭瀾1905-12-01河南平頂山567電子商務(wù)信息學(xué)院62007
14、070202趙恒1936-02-03男河南周口566電子商勢(shì)信息學(xué)院72007070203張?zhí)m1986-04-06玄河南許昌571電子商務(wù)信息學(xué)院02007080101李偉1935-09-12男河南鄭州578會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院92007030102錢麗1935-11-23吉、河南安陽573會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院102007080201孫楠1986-11-19男河南南陽577財(cái)務(wù)管理會(huì)計(jì)學(xué)院使用運(yùn)算列:YEAR為系統(tǒng)函數(shù),獲取指定日期的年份;GEDDATE()為系統(tǒng)函數(shù),獲取當(dāng)前日期和時(shí)間。例7-3、查詢所有同學(xué)的年齡信息。Selectstu_id,name,YEAR(getdate()-YEAR(birt
15、hday)fromstu_info查詢結(jié)果如下:結(jié)哥雷消息stu_idname氏列名1|2007070101I張?jiān)?522007070102張紅2532007070103王明2442007070104李偉2452007070201鄭瀾2562007070202趙恒2472007070203張?zhí)m24S2007080101李偉2592007080102賤麗25102007080201孫楠24改變列標(biāo)題顯示:通常在查詢結(jié)果顯示的列標(biāo)題就是創(chuàng)建表時(shí)所使用的列名,但是,這在實(shí)際使用中往往會(huì)帶來一些不便,因此,可以利用列標(biāo)題列名或列標(biāo)題來根據(jù)需要修改列標(biāo)題的顯示。例7-4、查詢所有同學(xué)的年齡信息。Sele
16、ctnameas姓名,YEAR(getdate()-YEAR(birthday)as年齡fromstu_info查詢結(jié)果如下:姓名年齡1i張?jiān)?252張紅253王明244李偉245鄭瀾256趙恒247張?zhí)m240李偉259錢麗2510孫楠24(5)除去結(jié)果的重復(fù)信息:使用distinct關(guān)鍵字能夠從返回的結(jié)果數(shù)據(jù)集合中刪除重復(fù)的行,使返回的結(jié)果更簡(jiǎn)潔。例7-5、查詢所有的院系信息。Selectdistinctsdeptfromstu_info查詢結(jié)果如下:嚴(yán)結(jié)亙T面消息sdept番諄窿“潔點(diǎn)爭(zhēng)磽”(6)返回查詢的部分?jǐn)?shù)據(jù):在SQLServer2008中,提供了top關(guān)鍵字讓用戶指定返回一定數(shù)量的
17、數(shù)據(jù)。Topn表示返回最前面的n行,n表示返回的行數(shù);topnpercent表示返回前面的n%行。例7-6、查詢前5位同學(xué)的學(xué)號(hào)、姓名和成績(jī)信息。Selecttop5stu_id,name,markfromstu_info查詢結(jié)果如下:stuidnamemark2007070101張?jiān)?60TOC o 1-5 h z2007070102張紅5652007070103王明5702007070104李偉5642007070201鄭瀾567例7-7、查詢60%同學(xué)的學(xué)號(hào)、姓名和成績(jī)信息。Selecttop60percentstu_id,name,markfromstu_info查詢結(jié)果如下:為結(jié)果占
18、消息stu_idnamemark1|2007070101|張?jiān)?6022007070102張紅56532007070103王明57042007070104李偉56452007070201鄭瀾56762007070202趙恒56622、選擇行:Where子句用于指定查詢條件,使得select語句的結(jié)果表中只包含那些滿足查詢條件的記錄。在使用時(shí),where子句必須緊跟在from子句后面。Where子句中的條件表達(dá)式包括算術(shù)表達(dá)式和邏輯表達(dá)式兩種,SQLServe對(duì)Where子句中的查詢條件的數(shù)目沒有限制。(1)使用比較表達(dá)式:例7-8、查詢所有的男同學(xué)學(xué)號(hào)、姓名、生日和性別信息。Selectstu
19、_id,name,birthday,sexfromstu_infowheresex=男查詢結(jié)果如下:匡結(jié)果區(qū)消息stu_idnamebirthdaysex1j2007070101j張?jiān)?985-10-09男22007070103王明1906-07-00男32007070104李偉1986-03-11男42007070202趙恒1906-02-03男52007030101李偉1985-09-12男62007080201孫楠1986-11-19男例7-9、查詢所有的總分大于550分的同學(xué)學(xué)號(hào)、姓名、生日和性別信息。Selectstu_id,name,birthday,sexfromstu_info
20、wheremark550查詢結(jié)果如下:stu_idnamebirthdaysex1|2007070101i張?jiān)?985-10-09男22007070102張紅1985-01-1432007070103王明1986-07-08男42007070104李偉1986-03-11男52007070201鄭瀾1985-12-01玄62007070202趙恒1986-02-03男72007070203張?zhí)m1986-04-0602007000101李偉1985-09-12男92007000102錢麗1985-11-23玄102007030201孫楠1986-11-19男(2)使用邏輯比較表達(dá)式:例7-10、
21、查詢所有總分大于550的男同學(xué)信息Selectstu_id,name,birthday,sexfromstu_infowheremark550andsex=男查詢結(jié)果如下:日結(jié)果血消息stu_idnamebirthdaysex1|2007070101I張?jiān)?905-10-09男22007070103王明1936-07-00男32007070104李偉1986-03-11男42007070202趙恒1936-02-03男52007030101李偉1935-09-12男62007080201孫楠1986-11-19男例7-11、查詢所有總分大于550分或男同學(xué)信息。Selectstu_id,nam
22、e,birthday,sexFromstu_infoWheremark550orsex=男查詢結(jié)果如下:stu_idnam已birthdaysex1|2007070101I張?jiān)?935-10-09男22007070102張紅1905-01-1432007070103王明1906-07-00男42007070104李偉1906-03-11男52007070201鄭瀾1905-12-0162007070202趙恒1906-02-03男72007070203張?zhí)m1936-04-06玄82007030101李偉1905-09-12男92007030102錢麗1905-11-23102007080201
23、孫楠1906-11-19男為了增強(qiáng)程序可讀性,一般采用括號(hào)()來實(shí)現(xiàn)需要的執(zhí)行順序,而不考慮其默認(rèn)的優(yōu)先級(jí)順序。例7-12、查詢所有信息學(xué)院和會(huì)計(jì)學(xué)院并且總分大于550分的同學(xué)信息。select*fromstu_infowhere(sdept=信息學(xué)院orsdept=會(huì)計(jì)學(xué)院)andmark550查詢結(jié)果如下:M結(jié)果的消息stu_idnamebirthdaysexaddr已定markmajorsdept1|2007070101|張?jiān)?905-10-09男河南鄭州560計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院22007070102張紅1905-01-14河南開封565計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院3200707010
24、3王明1906-07-00男河南洛陽570計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院42007070104李偉1906-03-11男河南鄭州564計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院52007070201鄭瀾1935-12-01玄河南平頂山567電子商務(wù)信息學(xué)院62007070202趙恒1906-02-03男河南周口566電子商務(wù)信息學(xué)院72007070203張?zhí)m1906-04-06河南許昌571電子商務(wù)信息學(xué)院82007080101李偉1905-09-12男河南鄭州578會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院92007000102錢麗1905-11-23河南安陽573會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院102007030201孫楠1906-11-19男河南南陽577
25、財(cái)務(wù)管理會(huì)計(jì)學(xué)院空值(null)的判斷:如果在創(chuàng)建數(shù)據(jù)表時(shí)沒有指定notnull約束,那么數(shù)據(jù)表中某些列的值就可以為null。所謂null就是空,在數(shù)據(jù)庫中,其長(zhǎng)度為0。例7-13、查詢所有籍貫為空的同學(xué)信息。select*fromstu_infowhereaddressisnull查詢結(jié)果如下:彈結(jié)禹辰-消息id|門已m已|bithd刖砂addressmarkmajor|sdept(4)限定數(shù)據(jù)范圍:使用between限制查詢數(shù)據(jù)范圍時(shí)同時(shí)包括了邊界值,效果完全可以用含有“=”和“”和“=80Groupbystu_id查詢結(jié)果如下:旨結(jié)果也消息stu_id無列名氏列名龐列名氏列名1j2007
26、070101j9681074392200707010207S3052553200707010491S3091793)分組篩選:如果使用groupby子句分組,則還可用having子句對(duì)分組后的結(jié)果進(jìn)行過濾篩選。Having子句通常與groupby子句一起使用,用于指定組或合計(jì)的搜索條件,其作用與where子句相似,二者的區(qū)別如下:作用對(duì)象不同:where子句作用于表和視圖中的行,而having子句作用于形成的組。Where子句限制查找的行,having子句限制查找的組。執(zhí)行順序不同。若查詢句中同時(shí)有where子句和having子句,執(zhí)行時(shí),先去掉不滿足where條件的行,然后分組,分組后再去掉
27、不滿足having條件的組。Where子句中不能直接使用聚合函數(shù),但having子句的條件中可以包含聚合函數(shù)。例7-27、統(tǒng)計(jì)學(xué)生成績(jī)表中每個(gè)同學(xué)的最高分、最低分、平均分和總分,并輸出平均分大于87分的信息。Selectstu_id,MAX(grade),MIN(grade),AVG(grade),SUM(grade)Fromstu_gradeGroupbystu_idHavingAVG(grade)87查詢結(jié)果如下:皓哥由消息stu_id氏列名比列名氏列名比列名1|20070701049188S3179明細(xì)匯總:使用groupby子句對(duì)查詢數(shù)據(jù)進(jìn)行分組匯總,為每一組產(chǎn)生一個(gè)匯總結(jié)果,每個(gè)組只
28、返回一行,無法看到詳細(xì)信息。使用compute和computeby子句既能夠看到統(tǒng)計(jì)經(jīng)營(yíng)部的結(jié)果又能夠?yàn)g覽詳細(xì)數(shù)據(jù)。例7-28、使用compute子句對(duì)所有學(xué)生的人數(shù)進(jìn)行明細(xì)匯總。select*fromstu_infocomputecount(stu_id)查詢結(jié)果如下:&結(jié)哥S消息stujdnamebirthdaysexaddrmarkmajorsdept1j2007070101i張?jiān)?936-10-09男河南鄭州576計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院22007070102張紅1935-01-14河南開封565計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院32007070103王明1986-07-08男河南洛陽570計(jì)算
29、機(jī)科學(xué)與技術(shù)信息學(xué)院42007070104李偉1906-03-11男河南鄭州564計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院52009070105李瀾1936-12-01吉.河南平頂山567電子商勞信息學(xué)院62009070106趙恒1986-02-03男河南周口566電子商務(wù)信息學(xué)院72009070107張?zhí)m1986-04-06玄河南許昌571電子商務(wù)信息學(xué)院02009070103李偉1935-09-12男河南鄭州573會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院92009070109錢麗1935-11-23河南安陽576會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院102009070110孫楠1986-11-19男河南安陽573會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院在使用compute和com
30、puteby時(shí),需要注意以下幾點(diǎn):八、Computeby子句不能與selectinto子句一起使用。Compute子句中的列必須在select子句的字段列表中出現(xiàn)。Computeby表示按指定的列進(jìn)行明細(xì)匯總,使用by關(guān)鍵字時(shí)必須同時(shí)使用orderby子句,并且computeby中出現(xiàn)的列必須具有與orderby后出現(xiàn)的列相同的順序,且不能跳過其中的列。例7-29、使用computeby子句按照院系對(duì)所有學(xué)生的人數(shù)進(jìn)行明細(xì)匯總。select*fromstu_infoorderbysdeptcomputecount(stu_id)bysdept查詢結(jié)果如下方結(jié)果消息stu_idn已門已birth
31、daysexaddrmarkmajorsdept1|2009070108|李偉1935-09-12男河南鄭州578會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院22009070109賤麗1985-11-23河南安陽576會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院32009070110孫楠1936-11-19男河南安陽573會(huì)計(jì)學(xué)會(huì)計(jì)學(xué)院1ent|3stu_id門31已birthdaysexaddrmarkmajorsdept1j2007070101j張?jiān)?936-10-09男河南鄭州576計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院22007070102張紅1935-01-14玄河南開封565計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院32007070103王明1986-07-08男河南豁陽
32、570計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院42007070104李偉1906-03-11男河南鄭州564計(jì)算機(jī)科學(xué)與技術(shù)信息學(xué)院52009070105李瀾1936-12-01玄河南平567電子商務(wù)信息學(xué)院62009070106趙恒1986-02-03男河南周口566電子商務(wù)信息學(xué)院72009070107張?zhí)m1936-04-06玄河南許昌571電子商務(wù)信息學(xué)院1ent|73、連接查詢:前面介紹的查詢都是針對(duì)單一的表,而在數(shù)據(jù)通庫管理系統(tǒng)中,考慮到數(shù)據(jù)的冗余度低、數(shù)據(jù)一致性等問題,通常對(duì)數(shù)據(jù)表的設(shè)計(jì)要滿足范式的要求,因此也會(huì)造成一個(gè)實(shí)體的所有信息保存在多個(gè)表中。當(dāng)檢索數(shù)據(jù)時(shí),往往在一個(gè)表中不能夠得到想要的信息
33、,通過連接操作,可以查詢出存放在多個(gè)表中同一實(shí)體的不同信息,給用戶帶來很大的靈活性。多表連接實(shí)際上就是實(shí)現(xiàn)如何使用一個(gè)表中的數(shù)據(jù)來選擇另一個(gè)表中的行。而連接條件則主要通過以下方法定義兩個(gè)表在查詢中的關(guān)聯(lián)方式:指定每個(gè)表中要用于連接的列。典型的連接條件在一個(gè)表中的指定外鍵,在另一個(gè)表中指定與其關(guān)聯(lián)的鍵指定比較各列的值時(shí)要使用的比較運(yùn)算符(=、等)。表的連接的實(shí)現(xiàn)可以通過兩種方法:利用select語句的where子句;在from子句中使用join(innerjoin,crossjoin,outerjoin,leftouterjoin,fullouterjoin等)關(guān)鍵字。例7-30、查詢所有選修課
34、程編號(hào)701的同學(xué)學(xué)號(hào)、姓名和成績(jī)。Selectstu_info.stu_id,name,markFromstu_info,stu_gradeWherestu_info.stu_id=stu_grade.stu_idandcourse_id=701查詢結(jié)果如下:N結(jié)果占消息stu_idnamemark1j2007070101i張?jiān)?7622007070102張紅56532007070104李偉564例7-31、查詢所有選修課程的同學(xué)選修課程的成績(jī)。Selectstu_info.stu_id,name,course_name,gradeFromstu_info,stu_grade,course_
35、infoWherestu_info.stu_id=stu_grade.stu_idandcourse_info.course_id=stu_grade.course_id查詢結(jié)果如下:二結(jié)果區(qū)消息stu_idnamecourse_ridrn已grade1|2007070101I張?jiān)?jì)算機(jī)基礎(chǔ)S322007070101張?jiān)僮飨到y(tǒng)8132007070101張?jiān)?jì)算機(jī)網(wǎng)絡(luò)9642007070102張紅計(jì)算機(jī)基礎(chǔ)0552007070102張紅操作系統(tǒng)7462007070102張紅計(jì)算機(jī)網(wǎng)絡(luò)7772007070104李偉計(jì)算機(jī)基礎(chǔ)9182007070104李偉操作系統(tǒng)8892007070101張?jiān)暧^經(jīng)濟(jì)學(xué)91102007070102張紅宏觀經(jīng)濟(jì)學(xué)S3112007070101
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《中學(xué)思想政治課專題》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《學(xué)校德育理論與實(shí)踐》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年二建機(jī)電預(yù)測(cè)A卷講義(可打印版)
- 枸杞種植公司虧損原因分析報(bào)告模板
- 福建師范大學(xué)《山水畫基礎(chǔ)二》2022-2023學(xué)年第一學(xué)期期末試卷
- 浙江省杭州市2018年中考英語真題(含答案)
- 光伏項(xiàng)目承諾書
- 操作系統(tǒng) 課件 第5、6章 存儲(chǔ)管理、文件系統(tǒng)
- 2024年黔東南客運(yùn)資格證題庫
- 2024年西寧客車從業(yè)資格證考試試題答案
- 維修確認(rèn)單(共4頁)
- 高血壓健康教育知識(shí)講座(完整版)
- 河北中小學(xué)學(xué)籍管理
- 四年級(jí)數(shù)學(xué)上冊(cè)脫式計(jì)算100題
- 村鎮(zhèn)銀行防詐騙應(yīng)急預(yù)案及處置流程
- 細(xì)胞標(biāo)準(zhǔn)化纖體資料終打印稿
- DB1310∕T 233-2020 地下管線數(shù)據(jù)規(guī)范
- 特種設(shè)備檢驗(yàn)檢測(cè)人員執(zhí)業(yè)注冊(cè)管理辦法標(biāo)準(zhǔn)版
- 數(shù)字文化產(chǎn)業(yè)園項(xiàng)目可行性研究報(bào)告-完整可修改版
- 少先隊(duì)鼓號(hào)隊(duì)總譜0—10套
- 航空公司投訴抱怨處理技巧訓(xùn)練 空乘人員培訓(xùn)
評(píng)論
0/150
提交評(píng)論