版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
28.
數(shù)據(jù)庫:抽出部門,平均工資,規(guī)定按部門的字符串順序排序,不能具有"humanresource"部門,employee結(jié)構(gòu)如下:employee_id,employee_name,depart_id,depart_name,wage答:?selectdepart_name,avg(wage)?fromemployee(cuò)wheredepart_name<>'humanresource'
groupbydepart_nameorderbydepart_name--------------------------?29.
給定如下SQL數(shù)據(jù)庫:Test(numINT(4))請(qǐng)用一條SQL語句返回num的最小值,但不許使用記錄功能,如MIN,MAX等答:
selecttop1numfromTestorderbynum-------------------------
33.一個(gè)數(shù)據(jù)庫中有兩個(gè)表:
一張表為Customer,含字段ID,Name;?一張表為Order,含字段ID,CustomerID(連向Customer中ID的外鍵),Revenue;?寫出求每個(gè)Customer的Revenue總和的SQL語句。建表createtablecustomer?(IDintprimarykey,Namechar(10))gocreatetable[order]?(IDintprimarykey,CustomerID
intforeignkeyreferencescustomer(id),Revenuefloat)go--查詢?selectCustomer.ID,sum(isnull([Order].Revenue,0))
fromcustomerfulljoin[order]on([order].customerid=customer.id)
groupbycustomer.idselectcustomer.id,sum(order.revener)fromorder,customerwherecustomer.id=customeridgroupbycustomer.idselectcustomer.id,sum(order.revener)fromcustomerfulljoinorderon(order.customerid=customer.id)groupbycustomer.id5數(shù)據(jù)庫(10)at(yī)abelcalled“performance”contain:nameandscore,please用SQL語言表述如何選出score最high的一個(gè)(僅有一個(gè))僅選出分?jǐn)?shù),Selectmax(score)fromperformance僅選出名字,即選出名字,又選出分?jǐn)?shù):selecttop1score,namefromperorderbyscoreselectname1,scorefromperwherescorein/=(selectmax(score)fromper).4有關(guān)系s(sno,sname)c(cno,cname)sc(sno,cno,grade)
1問上課程"db"的學(xué)生noselectcount(*)fromc,scwhereame='db'andc.cno=oselectcount(*)fromscwherecno=(selectcnofromcame='db')
2成績最高的學(xué)生號(hào)selectsnofromscwheregrade=(selectmax(grade)fromsc)
3每科大于90分的人數(shù)selectc.cname,count(*)fromc,scwherec.cno=oandsc.grade>90groupbyc.cname
selectc.cname,count(*)fromcjoinsconc.cno=sc.cnoandsc.grade>90ame
HYPERLINK""
數(shù)據(jù)庫筆試題
*?建表:
dept:?
deptno(primarykey),dname,loc?emp:?
empno(primarykey),ename,job,mgr,sal,deptno
*/1列出emp表中各部門的部門號(hào),最高工資,最低工資?selectmax(sal)as最高工資,min(sal)as最低工資,deptnofromempgroupbydeptno;2列出emp表中各部門job為'CLERK'的員工的最低工資,最高工資?selectmax(sal)as最高工資,min(sal)as最低工資,deptnoas部門號(hào)fromempwherejob='CLERK'groupbydeptno;3對(duì)于emp中最低工資小于1000的部門,列出job為'CLERK'的員工的部門號(hào),最低工資,最高工資?selectmax(sal)as最高工資,min(sal)as最低工資,deptnoas部門號(hào)fromempasb
wherejob='CLERK'and1000>(selectmin(sal)fromempasawherea.deptno=b.deptno)groupbyb.deptno4根據(jù)部門號(hào)由高而低,工資有低而高列出每個(gè)員工的姓名,部門號(hào),工資
selectdeptnoas部門號(hào),enameas姓名,salas工資fromemporderbydeptnodesc,salasc5寫出對(duì)上題的另一解決方法?(請(qǐng)補(bǔ)充)6列出'張三'所在部門中每個(gè)員工的姓名與部門號(hào)?selectename,deptnofromempwheredeptno=(selectdeptnofromempwheree(cuò)name='張三')7列出每個(gè)員工的姓名,工作,部門號(hào),部門名
selectename,job,emp.deptno,dept.dnamefromemp,deptwhereemp.deptno=dept.deptno8列出emp中工作為'CLERK'的員工的姓名,工作,部門號(hào),部門名?selectename,job,dept.deptno,dnamefromemp,deptwheredept.deptno=emp.deptnoandjob='CLERK'9對(duì)于emp中有管理者的員工,列出姓名,管理者姓名(管理者外鍵為mgr)?selecta.enameas姓名,b.enameas管理者fromempasa,empasbwherea.mgrisnotnullanda.mgr=b.empno10對(duì)于dept表中,列出所有部門名,部門號(hào),同時(shí)列出各部門工作為'CLERK'的員工名與工作
selectdnameas部門名,dept.deptnoas部門號(hào),enameas員工名,jobas工作fromdept,emp?wheredept.deptno*=emp.deptnoandjob='CLERK'11對(duì)于工資高于本部門平均水平的員工,列出部門號(hào),姓名,工資,按部門號(hào)排序?selecta.deptnoas部門號(hào),a.enameas姓名,a.salas工資fromempasa
wherea.sal>(selectavg(sal)fromempasbwherea.deptno=b.deptno)orderbya.deptno12對(duì)于emp,列出各個(gè)部門中平均工資高于本部門平均水平的員工數(shù)和部門號(hào),按部門號(hào)排序
selectcount(a.sal)as員工數(shù),a.deptnoas部門號(hào)fromempasa?wherea.sal>(selectavg(sal)fromempasbwherea.deptno=b.deptno)groupbya.deptnoorderbya.deptno13對(duì)于emp中工資高于本部門平均水平,人數(shù)多與1人的,列出部門號(hào),人數(shù),按部門號(hào)排序
selectcount(a.empno)as員工數(shù),a.deptnoas部門號(hào),avg(sal)as平均工資fromempasa
where(selectcount(c.empno)fromempascwherec.deptno=a.deptnoandc.sal>(selectavg(sal)fromempasbwherec.deptno=b.deptno))>1?groupbya.deptnoorderbya.deptno14對(duì)于emp中低于自己工資至少5人的員工,列出其部門號(hào),姓名,工資,以及工資少于自己的人數(shù)
selecta.deptno,a.ename,a.sal,(selectcount(b.ename)fromempasbwhereb.sal<a.sal)as人數(shù)fromempasa?where(selectcount(b.ename)fromempasbwhereb.sal<a.sal)>5數(shù)據(jù)庫筆試題及答案第一套一.選擇題1.下面敘述對(duì)的的是CCBAD___(dá)___。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)B、算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)C、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)環(huán)節(jié)之后終止D、以上三種描述都不對(duì)2.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______(dá)。A、隊(duì)列B、線性表C、二叉樹D、棧3.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______(dá)。A、8B、16C、32D、154.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是____(dá)__(dá)。A、使用順序、選擇和反復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表達(dá)程序的控制邏輯B、模塊只有一個(gè)入口,可以有多個(gè)出口C、注重提高程序的執(zhí)行效率D、不使用goto語句5.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖牵達(dá)____。A、對(duì)象B、繼承C、類D、過程調(diào)用6.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是___(dá)BDBCA___(dá)。A、可行性分析B、需求分析C、具體設(shè)計(jì)D、程序編碼7.在軟件開發(fā)中,下面任務(wù)不屬于設(shè)計(jì)階段的是_____(dá)_。A、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)B、給出系統(tǒng)模塊結(jié)構(gòu)C、定義模塊算法D、定義需求并建立系統(tǒng)模型8.?dāng)?shù)據(jù)庫系統(tǒng)的核心是_____(dá)_。A、數(shù)據(jù)模型B、數(shù)據(jù)庫管理系統(tǒng)C、軟件工具D、數(shù)據(jù)庫9.下列敘述中對(duì)的的是__(dá)____。A、數(shù)據(jù)庫是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)C、數(shù)據(jù)庫技術(shù)的主線目的是要解決數(shù)據(jù)共享的問題D、數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致10.下列模式中,可以給出數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是______(dá)。A、內(nèi)模式B、外模式C、概念模式D、邏輯模式11.VisualFoxPro數(shù)據(jù)庫文獻(xiàn)是__DCBAA____。A、存放用戶數(shù)據(jù)的文獻(xiàn)B、管理數(shù)據(jù)庫對(duì)象的系統(tǒng)文獻(xiàn)C、存放用戶數(shù)據(jù)和系統(tǒng)的文獻(xiàn)D、前三種說法都對(duì)12.SQL語句中修改表結(jié)構(gòu)的命令是______。A、MODIFYTABLEB、MODIFYSTRUCTUREC、ALTERTABLED、ALTERSTRUCTURE13.假如要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)組分組報(bào)表,第一個(gè)分組表達(dá)式是"部門",第二個(gè)分組表達(dá)式是"性別",第三個(gè)分組表達(dá)式是"基本工資",當(dāng)前索引的索引表達(dá)式應(yīng)當(dāng)是_____(dá)_。A、部門+性別+基本工資B、部門+性別+STR(基本工資)C、STR(基本工資)+性別+部門D、性別+部門+STR(基本工資)14.把一個(gè)項(xiàng)目編譯成一個(gè)應(yīng)用程序時(shí),下面的敘述對(duì)的的是___(dá)__(dá)_。A、所有的項(xiàng)目文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)B、所有項(xiàng)目的包含文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)C、所有項(xiàng)目排除的文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)D、由用戶選定的項(xiàng)目文獻(xiàn)將組合為一個(gè)單一的應(yīng)用程序文獻(xiàn)15.?dāng)?shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS三者之間的關(guān)系是______。A、DBS涉及DB和DBMSB、DBMS涉及DB和DBSC、DB涉及DBS和DBMSD、DBS就是DB,也就是DBMS16.在"選項(xiàng)"對(duì)話框的"文獻(xiàn)位置"選項(xiàng)卡中可以設(shè)立_BAABA_____。A、表單的默認(rèn)大小B、默認(rèn)目錄C、日期和時(shí)間的顯示格式D、程序代碼的顏色17.要控制兩個(gè)表中數(shù)據(jù)的完整性和一致性可以設(shè)立"參照完整性",規(guī)定這兩個(gè)表___(dá)__(dá)_。A、是同一個(gè)數(shù)據(jù)庫中的兩個(gè)表B、不同數(shù)據(jù)庫中的兩個(gè)表C、兩個(gè)自由表D、一個(gè)是數(shù)據(jù)庫表另一個(gè)是自由表18.定位第一條記錄上的命令是_____(dá)_。A、GOTOPB、GOBOTTO(shè)MC、GO6D、SKIP19.在關(guān)系模型中,實(shí)現(xiàn)"關(guān)系中不允許出現(xiàn)相同的元組"的約束是通過____(dá)__。A、候選鍵B、主鍵C、外鍵D、超鍵20.設(shè)當(dāng)前數(shù)據(jù)庫有10條記錄(記錄未進(jìn)行任何索引),在下列三種情況下,當(dāng)前記錄號(hào)為1時(shí);EOF()為真時(shí);BOF()為真時(shí),命令?RECN()的結(jié)果分別是_____(dá)_。A、1,11,1B、1,10,1C、1,11,0D、1,10,021.下列表達(dá)式中結(jié)果不是日期型的是__CCBBA____。A、CTOD("2023/10/01")B、{^99/10/01}+365C、VAL("2023/10/01")D、DATE()22.只有滿足聯(lián)接條件的記錄才包含在查詢結(jié)果中,這種聯(lián)接為___(dá)___。A、左聯(lián)接B、右聯(lián)接C、內(nèi)部聯(lián)接D、完全聯(lián)接23.索引字段值不唯一,應(yīng)當(dāng)選擇的索引類型為__(dá)____。A、主索引B、普通索引C、候選索引D、唯一索引24.執(zhí)行SELECT0選擇工作區(qū)的結(jié)果是___(dá)__(dá)_。A、選擇了0號(hào)工作區(qū)B、選擇了空閑的最小號(hào)工作區(qū)C、關(guān)閉選擇的工作區(qū)D、選擇已打開的工作區(qū)25.從數(shù)據(jù)庫中刪除表的命令是______。A、DROPTABLEB、ALTERTABLEC、DELETETABLED、USE26.DELETEFROMSWHERE年齡>60語句的功能是_BBCCB_____(dá)。A、從S表中徹底刪除年齡大于60歲的記錄B、S表中年齡大于60歲的記錄被加上刪除標(biāo)記C、刪除S表D、刪除S表的年齡列27.SELECT-SQL語句是___(dá)___。A、選擇工作區(qū)語句B、數(shù)據(jù)查詢語句C、選擇標(biāo)準(zhǔn)語句D、數(shù)據(jù)修改語句28.SQL語言是__(dá)____語言。A、層次數(shù)據(jù)庫B、網(wǎng)絡(luò)數(shù)據(jù)庫C、關(guān)系數(shù)據(jù)庫D、非數(shù)據(jù)庫29.在SQL中,刪除視圖用___(dá)___。A、DROPSCHEMA命令B、CREATETABLE命令C、DROPVIEW命令D、DROPINDEX命令30.以下屬于非容器類控件的是__(dá)____。A、FormB、LabelC、pageD、Container31.將查詢結(jié)果放在數(shù)組中應(yīng)使用__d____短語。A、INTOCURSORB、TOARRAYC、INTOTABLED、INTOARRAY32.在命令窗口執(zhí)行SQL命令時(shí),若命令要占用多行,續(xù)行符是__(dá)d__(dá)__。A、冒號(hào)(:)B、分號(hào)(;)C、逗號(hào)(,)D、連字符(-)33.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)于圖書管理數(shù)據(jù)庫,查詢0001號(hào)借書證的讀者姓名和所借圖書的書名。SQL語句對(duì)的的是______。SELECT姓名,書名FROM借閱,圖書,讀者WHERE;借閱.借書證號(hào)="0001"AND;____(dá)______(dá)a__(dá)A、圖書.總編號(hào)=借閱.總編號(hào)AND;讀者.借書證號(hào)=借閱.借書證號(hào)B、圖書.分類號(hào)=借閱.分類號(hào)AND;讀者.借書證號(hào)=借閱.借書證號(hào)C、讀者.總編號(hào)=借閱.總編號(hào)AND;讀者.借書證號(hào)=借閱.借書證號(hào)D、圖書.總編號(hào)=借閱.總編號(hào)AND;讀者.書名=借閱.書名34.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)于圖書管理數(shù)據(jù)庫,分別求出各個(gè)單位當(dāng)前借閱圖書的讀者人次。下面的SQL語句對(duì)的的是__(dá)____。SELECT單位,____(dá)__FROM借閱,讀者WHERE;借閱.借書證號(hào)=讀者.借書證號(hào)a___(dá)___A、COUNT(借閱.借書證號(hào))GROUPBY單位B、SUM(借閱.借書證號(hào))GROUPBY單位C、COUNT(借閱.借書證號(hào))ORDERBY單位D、COUNT(借閱.借書證號(hào))HAVING單位35.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)于圖書管理數(shù)據(jù)庫,檢索借閱了《現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)》一書的借書證號(hào)。下面SQL語句對(duì)的的是___(dá)___。SELECT借書證號(hào)FROM借閱WHERE總編號(hào)=;__(dá)____bA、(SELECT借書證號(hào)FROM圖書WHERE書名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")B、(SELECT總編號(hào)FROM圖書WHERE書名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")C、(SELECT借書證號(hào)FROM借閱WHERE書名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")D、(SELECT總編號(hào)FROM借閱WHERE書名="現(xiàn)代網(wǎng)絡(luò)技術(shù)基礎(chǔ)")二、填空題36.算法的復(fù)雜度重要涉及______復(fù)雜度和空間復(fù)雜度。37.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的_____(dá)_。38.若按功能劃分,軟件測試的方法通常分為白盒測試方法和______測試方法。39.假如一個(gè)工人可管理多個(gè)設(shè)施,而一個(gè)設(shè)施只被一個(gè)工人管理,則實(shí)體"工人"與實(shí)體"設(shè)備"之間存在_____(dá)_聯(lián)系。40.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算涉及選擇、連接和_____(dá)_。41.命令?LEN("THISISMYBOOK")的結(jié)果是___(dá)___。42.SQLSELECT語句為了將查詢結(jié)果存放到臨時(shí)表中應(yīng)當(dāng)使用__(dá)____(dá)短語。43.多欄報(bào)表的欄目數(shù)可以通過__(dá)____來設(shè)立。44.在打開項(xiàng)目管理器之后再打開"應(yīng)用程序生成器",可以通過按ALT+F2鍵,快捷菜單和"工具"菜單中的____(dá)__。45.數(shù)據(jù)庫系統(tǒng)的核心是__(dá)____。46.查詢設(shè)計(jì)器中的"聯(lián)接"選項(xiàng)卡,可以控制______選擇。47.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))用SQL的CREATE命令建立借閱表(字段順序要相同),請(qǐng)對(duì)下面的SQL語句填空:______48.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)圖書管理數(shù)據(jù)庫,查詢由"清華大學(xué)出版社"或"電子工業(yè)出版社"出版,并且單價(jià)不超過20元的書名。請(qǐng)對(duì)下面的SQL語句填空:SELECT書名,出版單位,單價(jià)FROM圖書;WHERE___(dá)___(dá)_AND;__(dá)_____49.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)圖書管理數(shù)據(jù)庫,求共借出多少種圖書。請(qǐng)對(duì)下面的SQL語句填空:SELECT___(dá)___(dá)_FROM借閱第一套題答案選擇題1-5CCBAD6-10BDBCA11-15DCBAA16-20BAABA21-25CCBBA26-30BBCCB31-35DDAAB填空題36.時(shí)間37.模式或邏輯模式38.黑盒39.一對(duì)多或1對(duì)多或一對(duì)n或1:N或1:n或1:n或1:N或一對(duì)m或1:M或1:m或1:m或1:N40.投影41.1542.Intocursor或Intocursorcursorname43.頁面設(shè)立或列數(shù)44.應(yīng)用程序生成器45.數(shù)據(jù)庫管理系統(tǒng)或DBMS46.聯(lián)接類型或聯(lián)接條件47.CREATETABLE借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))或CREATABL借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))或CREATETABLE借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D)或CREATABL借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D)48.單價(jià)<=20或(出版單位="清華大學(xué)出版社"OR出版單位="電子工業(yè)出版社")或(出版單位="電子工業(yè)出版社"OR出版單位="清華大學(xué)出版社")或(出版單位='清華大學(xué)出版社'OR出版單位='電子工業(yè)出版社')與(出版單位="清華大學(xué)出版社"OR出版單位="電子工業(yè)出版社")或(出版單位='清華大學(xué)出版社‘)49.COUNT(DISTINCT總編號(hào))或COUN(DISTINCT總編號(hào))或COUNT(DIST總編號(hào))或COUN(DIST總編號(hào))第二套題一、選擇題1.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是__(dá)__(dá)__。A、隊(duì)列B、線性表C、二叉樹D、棧2.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。A、可行性分析B、需求分析C、具體設(shè)計(jì)D、程序編碼3.結(jié)構(gòu)化程序設(shè)計(jì)重要強(qiáng)調(diào)的是______。A、程序的規(guī)模B、程序的易讀性C、程序的執(zhí)行效率D、程序的可移植性4.在軟件生命周期中,能準(zhǔn)確地?cái)M定軟件系統(tǒng)必須做什么和必須具有哪些功能的階段是______。A、概要設(shè)計(jì)B、具體設(shè)計(jì)C、可行性分析D、需求分析5.下列關(guān)于棧的敘述中對(duì)的的是___(dá)___。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進(jìn)先出的線性表D、棧是先進(jìn)后出的線性表6.下面不屬于軟件設(shè)計(jì)原則的是______。A、抽象B、模塊化C、自底向上D、信息隱蔽7.對(duì)長度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為______。A、N+1B、NC、(N+1)/2D、N/28.視圖設(shè)計(jì)一般有3種設(shè)計(jì)順序,下列不屬于視圖設(shè)計(jì)的是_____(dá)_。A、自頂向下B、由外向內(nèi)C、由內(nèi)向外D、自底向上9.下列有關(guān)數(shù)據(jù)庫的描述,對(duì)的的是______。A、數(shù)據(jù)庫是一個(gè)DBF文獻(xiàn)B、數(shù)據(jù)庫是一個(gè)關(guān)系C、數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D、數(shù)據(jù)庫是一組文獻(xiàn)10.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是_____(dá)_。A、數(shù)據(jù)結(jié)構(gòu)B、數(shù)據(jù)操作C、數(shù)據(jù)查詢D、數(shù)據(jù)約束11.在下面的VisualFoxPro表達(dá)式中,運(yùn)算結(jié)果是邏輯真的是__(dá)____。A、EMPTY(.NULL.)B、LIKE('acd','ac?')C、AT('a','123abc')D、EMPTY(SPACE(2))12.表達(dá)式VAL(SUBS("奔騰586",5,1))*Len("visualfoxpro")的結(jié)果是______。A、13.00B、14.00C、45.00D、65.0013.以下關(guān)于自由表的敘述,對(duì)的的是___(dá)___。A、所有是用以前版本的FOXPRO(FOXBASE)建立的表B、可以用VisualFoxPro建立,但是不能把它添加到數(shù)據(jù)庫中C、自由表可以添加到數(shù)據(jù)庫中,數(shù)據(jù)庫表也可以從數(shù)據(jù)庫中移出成為自由表D、自由表可以添加到數(shù)據(jù)庫中,但數(shù)據(jù)庫表不可從數(shù)據(jù)庫中移出成為自由表14.下面關(guān)于數(shù)據(jù)環(huán)境和數(shù)據(jù)環(huán)境中兩個(gè)表之間的關(guān)系的陳述中,_____(dá)_是對(duì)的的。A、數(shù)據(jù)環(huán)境是對(duì)象,關(guān)系不是對(duì)象B、數(shù)據(jù)環(huán)境不是對(duì)象,關(guān)系是對(duì)象C、數(shù)據(jù)環(huán)境是對(duì)象,關(guān)系是數(shù)據(jù)環(huán)境中的對(duì)象D、數(shù)據(jù)環(huán)境和關(guān)系均不是對(duì)象15.在"報(bào)表設(shè)計(jì)器"中,可以使用的控件是____(dá)__(dá)。A、標(biāo)簽、域控件和線條B、標(biāo)簽、域控件和列表框C、標(biāo)簽、文本框和列表框D、布局和數(shù)據(jù)源16.用二維表數(shù)據(jù)來表達(dá)實(shí)體及實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為______(dá)。A、實(shí)體--聯(lián)系模型B、層次模型C、網(wǎng)狀模型D、關(guān)系模型17.用來指明復(fù)選框的當(dāng)前選中狀態(tài)的屬性是______。A、SelectedB、CaptionC、ValueD、ControlSource18.使用菜單操作方法打開一個(gè)在當(dāng)前目錄下已經(jīng)存在的查詢文獻(xiàn)zgjk.qpr后,在命令窗口生成的命令是____。A、OPENQUERYzgjk.qprB、MODIFYQUERYzgjk.qprC、DOQUERYzgjk.qprD、CREATEQUERYzgjk.qpr19.可以隨著著表的打開而自動(dòng)打開的索引是______。A、單一索引文獻(xiàn)(IDX)B、復(fù)合索引文獻(xiàn)(CDX)C、結(jié)構(gòu)化復(fù)合索引文獻(xiàn)D、非結(jié)構(gòu)化復(fù)合索引文獻(xiàn)20.在數(shù)據(jù)庫設(shè)計(jì)器中,建立兩個(gè)表之間的一對(duì)多聯(lián)系是通過以下索引實(shí)現(xiàn)的______(dá)。A、"一方"表的主索引或候選索引,"多方"表的普通索引B、"一方"表的主索引,"多方"表的普通索引或候選索引C、"一方"表的普通索引,"多方"表的主索引或候選索引D、"一方"表的普通索引,"多方"表的候選索引或普通索引21.下列函數(shù)中函數(shù)值為字符型的是___(dá)___。A、DATE()B、TIME()C、YEAR()D、DATETIME()22.下面對(duì)控件的描述對(duì)的的是___(dá)___。A、用戶可以在組合框中進(jìn)行多重選擇B、用戶可以在列表框中進(jìn)行多重選擇C、用戶可以在一個(gè)選項(xiàng)組中選中多個(gè)選項(xiàng)按鈕D、用戶對(duì)一個(gè)表單內(nèi)的一組復(fù)選框只能選中其中一個(gè)23.?dāng)M定列表框內(nèi)的某個(gè)條目是否被選定應(yīng)使用的屬性是___(dá)___。A、ValueB、ColumnCountC、ListCountD、Selected24.設(shè)有關(guān)系R1和R2,通過關(guān)系運(yùn)算得到結(jié)果S,則S是___(dá)___。A、一個(gè)關(guān)系B、一個(gè)表單C、一個(gè)數(shù)據(jù)庫D、一個(gè)數(shù)組25.DBAS指的是____(dá)__。A、數(shù)據(jù)庫管理系統(tǒng)B、數(shù)據(jù)庫系統(tǒng)C、數(shù)據(jù)庫應(yīng)用系統(tǒng)D、數(shù)據(jù)庫服務(wù)系統(tǒng)26.設(shè)X="ABC",Y="ABCD",則下列表達(dá)式中值為.T.的是______。A、X=YB、X==YC、X$YD、AT(X,Y)=027.在表結(jié)構(gòu)中,邏輯型、日期型、備注型字段的寬度分別固定為_____(dá)_。A、3,8,10B、1,6,4C、1,8,任意D、1,8,428.在標(biāo)準(zhǔn)SQL中,建立視圖的命令是_____(dá)_。A、CREATESCHEMA命令B、CREATETABLE命令C、CREATEVIEW命令D、CREATEINDEX命令29.有關(guān)SCAN循環(huán)結(jié)構(gòu),敘述對(duì)的的是__(dá)__(dá)__。A、SCAN循環(huán)結(jié)構(gòu)中的LOOP語句,可將程序流程直接指向循環(huán)開始語句SCAN,一方面判斷EOF()函數(shù)的真假B、在使用SCAN循環(huán)結(jié)構(gòu)時(shí),必須打開某一個(gè)數(shù)據(jù)庫C、SCAN循環(huán)結(jié)構(gòu)的循環(huán)體中必須寫有SKIP語句D、SCAN循環(huán)結(jié)構(gòu),假如省略了子句\FOR和WHILE條件子句,則直接退出循環(huán)30.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)于圖書管理數(shù)據(jù)庫,要查詢所藏圖書中,各個(gè)出版社的圖書最高單價(jià)、平均單價(jià)和冊數(shù),下面SQL語句對(duì)的的是______。SELECT出版單位,_____(dá)_,______,_____(dá)_;FROM圖書管理!圖書____(dá)__出版單位A、MIN(單價(jià))AVGAGE(單價(jià))COUNT(*)GROUPBYB、MAX(單價(jià))AVG(單價(jià))COUNT(*)ORDERBYC、MAX(單價(jià))AVG(單價(jià))SUM(*)ORDERBYD、MAX(單價(jià))AVG(單價(jià))COUNT(*)GROUPBY31.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))對(duì)于圖書管理數(shù)據(jù)庫,求CIE單位借閱圖書的讀者的人數(shù)。下面SQL語句對(duì)的的是__(dá)___(dá)_。SELECT__(dá)___(dá)_FROM借閱WHERE;借書證號(hào)_______(dá)A、COUNT(DISTINCT借書證號(hào))IN(SELECT借書證號(hào)FROM讀者WHERE單位="CIE")B、COUNT(DISTINCT借書證號(hào))IN(SELECT借書證號(hào)FROM借閱WHERE單位="CIE")C、SUM(DISTINCT借書證號(hào))IN(SELECT借書證號(hào)FROM讀者WHERE單位="CIE")D、SUM(DISTINCT借書證號(hào))IN(SELECT借書證號(hào)FOR借閱WHERE單位="CIE")32.查詢訂購單號(hào)(字符型,長度為4)尾字符是"1"的錯(cuò)誤命令是__(dá)____。A、SELECT*FROM訂單WHERESUBSTR(訂購單號(hào),4)="1"B、SELECT*FROM訂單WHERESUBSTR(訂購單號(hào),4,1)="1"C、SELECT*FROM訂單WHERE"1"$訂購單號(hào)D、SELECT*FROM訂單WHERERIGHT(訂購單號(hào),1)="1"33.在關(guān)系模型中,為了實(shí)現(xiàn)"關(guān)系中不允許出現(xiàn)相同元組"的約束應(yīng)使用______(dá)。A、臨時(shí)關(guān)鍵字B、主關(guān)鍵字C、外部關(guān)鍵字D、索引關(guān)鍵字34.根據(jù)"職工"項(xiàng)目文獻(xiàn)生成emp_sys.exe應(yīng)用程序的命令是____(dá)__。A、BUILDEXEemp_sysFROM職工B、BUILDAPPemp_sys.exeFROM職工C、LIKEEXEemp_sysFROM職工D、LIKEAPPemp_sys.exeFROM職工35.當(dāng)前盤當(dāng)前目錄下有數(shù)據(jù)庫:學(xué)院.dbc,其中有"教師"表和"學(xué)院"表。"教師"表:"學(xué)院"表:有SQL語句:SELECTDISTINCT系號(hào)FROM教師WHERE工資>=;ALL(SELECT工資FROM教師WHERE系號(hào)="02")與如上語句等價(jià)的SQL語句是____(dá)__。A、SELECTDISTINCT系號(hào)FROM教師WHERE工資>=;(SELECTMAX(工資)FROM教師WHERE系號(hào)="02")B、SELECTDISTINCT系號(hào)FROM教師WHERE工資>=;(SELECTMIN(工資)FROM教師WHERE系號(hào)="02")C、SELECTDISTINCT系號(hào)FROM教師WHERE工資>=;ANY(SELECT工資FROM教師WHERE系號(hào)="02")D、SELECTDISTINCT系號(hào)FROM教師WHERE工資>=;SOME(SELECT工資FROM教師WHERE系號(hào)="02")二、填空題36.若按功能劃分,軟件測試的方法通常分為白盒測試方法和______測試方法。37.數(shù)據(jù)庫系統(tǒng)的三級(jí)模式分別為___(dá)___模式、內(nèi)部級(jí)模式與外部級(jí)模式。38.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為______。39.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對(duì)象的______性來實(shí)現(xiàn)的。40.關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有______、增長、刪除和修改四種操作。41.要把幫助文獻(xiàn)設(shè)立為復(fù)制到硬盤上的Foxhelp.chm文獻(xiàn),需要在"選項(xiàng)"對(duì)話框的______(dá)選項(xiàng)卡上設(shè)立。42.TIME()的返回值的數(shù)據(jù)類型是____(dá)__(dá)類型。43.在定義字段有效性規(guī)則中,在規(guī)則框中輸入的表達(dá)式中類型是___(dá)_____(dá)。44.設(shè)計(jì)報(bào)表通常涉及兩部分內(nèi)容:___(dá)___和布局。45.______(dá)是指只有滿足聯(lián)接條件的記錄才包含在查詢結(jié)果中。46.設(shè)有圖書管理數(shù)據(jù)庫:圖書(總編號(hào)C(6),分類號(hào)C(8),書名C(16),作者C(6),出版單位C(20),單價(jià)N(6,2))讀者(借書證號(hào)C(4),單位C(8),姓名C(6),性別C(2),職稱C(6),地址C(20))借閱(借書證號(hào)C(4),總編號(hào)C(6),借書日期D(8))檢索書價(jià)在15元至25元(含15元和25元)之間的圖書的書名、作者、書價(jià)和分類號(hào),結(jié)果按分類號(hào)升序排序。SELECT書名,作者,單價(jià),分類號(hào)FROM圖書;WHERE______;ORDERBY___(dá)___;47.設(shè)有如下關(guān)系表R、S和T:R(BH,XM,XB,DWH)S(SWH,DWM)T(BH,XM,XB,DWH)實(shí)現(xiàn)R∪T的SQL語句是___(dá)____。48.設(shè)有如下關(guān)系表R:R(NO,NAME,SEX,AGE,CLASS)主關(guān)鍵字是NO其中NO為學(xué)號(hào),NAME為姓名,SEX為性別,AGE為年齡,CLASS為班號(hào)。寫出實(shí)現(xiàn)下列功能的SQL語句。插入"95031"班學(xué)號(hào)為30,姓名為"鄭和"的學(xué)生記錄;_______。49.設(shè)有如下關(guān)系表R:R(NO,NAME,SEX,AGE,CLASS)主關(guān)鍵字是NO其中NO為學(xué)號(hào)(數(shù)值型),NAME為姓名,SEX為性別,AGE為年齡,CLASS為班號(hào)。寫出實(shí)現(xiàn)下列功能的SQL語句。刪除學(xué)號(hào)為20的學(xué)生記錄;___(dá)___。第二套題答案1-5CBBDD6-10CBBCC11-15DDCCA16-20DCBCA21-25BBDAC26-30CDCBD31-35ACBBA36.黑盒37.概念或概念級(jí)38.n(n-1)/239.封裝40.查詢41.文獻(xiàn)位置42.字符或C43.邏輯表達(dá)式44.數(shù)據(jù)源45.內(nèi)部聯(lián)接46.單價(jià)BETWEEN15AND25或單價(jià)BETW15AND25或單價(jià)BETWE15AND25或單價(jià)>=15and單價(jià)<=25或單價(jià)>=15and單價(jià)=<25或單價(jià)=>15and單價(jià)<=25或單價(jià)=>15and單價(jià)=<25與分類號(hào)ASC或分類號(hào)47.SELECT*FROMRUNIONSELECT*FROMT或SELE*FROMRUNIOSELE*FROMT或SELECT*FROMRUNIOSELECT*FROMT或SELE*FROMRUNIONSELE*FROMT48.INSERTINTO(shè)R(NO,NAME,CLASS)VALUES(30,"鄭和","95031")或INSEINTOR(NO,NAME,CLASS)VALUES(30,"鄭和","95031")49.DELETEFROMRWHERENO=20或DELEFROMRWHERENO=20或DELEFROMRWHERNO=20或DELETEFROMRWHERNO=20
12:存在表T(a,b,c,d),要根據(jù)字段c排序后取第21—30條記錄顯示,請(qǐng)給出sqlcreat(yī)etablet(anumber(,bnumber(,cnumber(,dnumber();?/
begin
foriin1..300loop?insertintotvalues(mod(i,2),i/2,dbms_random.value(1,300),i/4);?endloop;?end;?/
select*from(selectc.*,rownumasrnfrom(select*fromtorderbycdesc)c)wherernbetween21and30;
/
select*from(select*fromtestorderbycdesc)xwhererownum<30minus
select*from(select*fromtestorderbycdesc)ywhererownum<20orderby3desc題目內(nèi)容如下
*?一表TB
Id
字段為編號(hào),遞增不一定連續(xù).
M
字段為區(qū)段路費(fèi),比如從家到哈爾濱是60元,從哈爾濱到長春是70元,數(shù)值類型.?S
字段站點(diǎn)名稱.
現(xiàn)有500元錢,從家先經(jīng)哈爾濱出發(fā),能走多遠(yuǎn)?
(例:60+70+80+50+90+75=42560+70+80+50+90+75+80=505所以答案應(yīng)當(dāng)是6武漢)Id
M
S
1
60
哈爾濱?2
70
長春
3
80
沈陽?4
50
北京
5
90
鄭州
6
75
武漢
7
80
長沙?8
90
廣東規(guī)定,請(qǐng)用一句SQL語句實(shí)現(xiàn)?*/?--創(chuàng)建表
CreateTableTB
(?
Id
IntIdentity(1,1)NotNull,
M
Int,?
S
varchar(50)
)?--測試數(shù)據(jù)?InsertIntoTBValues(60,'哈爾濱')?InsertIntoTBValues(70,'長春')
InsertIntoTBValues(80,'沈陽')?InsertIntoTBValues(50,'北京')
InsertIntoTBValues(90,'鄭州')
InsertIntoTBValues(75,'武漢')?InsertIntoTBValues(80,'長沙')
InsertIntoTBValues(90,'廣東')--------------------------實(shí)現(xiàn)方法兩種?1.?SELECTTOP1B.id,b.s,sum(A.m)s_sum
FROMTBA,?
TBB?
WHEREA.ID<=B.ID?
GROUPBYb.id,?
b.s?HAVINGsum(a.m)<=500?
ORDERBYb.idDESC?2.?SELECTTOP1ID,S,M_SUM
FROM(SELECT*,
(SELECTSUM(M)
FROMTB?
WHEREID>=1
ANDID<=A.ID)ASM_SUM?
FROMTBA)B?
WHEREM_SUM<=500?
ORDERBYIDDESC?
SQL面試題(二)有一張工資表,包含三列:員工編號(hào)(ID),部門編號(hào)(GROUPS),工資(SALARY)1..找到每個(gè)部門工資最高的人(涉及并列第一)2.找到每個(gè)部門工資最高的人(只選一個(gè))SQL語句如下:1.select*from工資表asawherea.工資=(selectmax(b.工資)from工資表asbwherea.部門編號(hào)=b.部門編號(hào))--2select*from工資表asawherea.工資=(selectmax(b.工資)from工資表asbwherea.部門編號(hào)=b.部門編號(hào))anda.員工編號(hào)=(selectmax(c.員工編號(hào))from工資表ascwherea.部門編號(hào)=c.部門編號(hào))selectmin(員工編號(hào))as員工編號(hào),部門編號(hào),工資from工資表asawherea.工資=(selectmax(b.工資)from工資表asbwherea.部門編號(hào)=b.部門編號(hào))groupby部門編號(hào),工資SQL面試題(一)有一個(gè)張員工工資表(SALARY),表有三列:員工編號(hào)(ID),工資(SALARY)1.查詢id反復(fù)記錄select*from工資表asawhere((selectcount(*)from工資表asbwherea.員工編號(hào)=b.員工編號(hào))>1)SELECT*FROM工資表WHERE員工編號(hào)IN(SELECT員工編號(hào)FROM工資表GROUPBY員工編號(hào)HAVINGCOUNT(*)>1)2.刪除id反復(fù)記錄,只保存第一條(說明,不需要考慮表中存在完全相同紀(jì)錄的情況)SQL語句如下:CREATETABLESALARY(
IDINTNOTNULL,
SALARYMONEYNOTNULL)INSERTINTOSALARYSELECT1,1000UNIONALLSELECT1,800UNIONALLSELECT2,1200UNIONALLSELECT3,1100UNIONALLSELECT3,1200UNIONALLSELECT3,1300SELECT*FROMSALARY--1SELECT*FROMSALARYWHEREIDIN(SELECTIDFROMSALARYGROUPBYIDHAVINGCOUNT(*)>1)--2DELETETFROMSALARYTWHEREEXISTS(SELECT1FROMSALARYWHERET.ID=IDANDSALARY>T.SALARY)四、設(shè)計(jì)題(本大題共2小題,每小題10分,共20分)2、學(xué)生表:Student學(xué)生表(學(xué)號(hào),姓名,性別,年齡,組織部門)
Course課程表(編號(hào),課程名稱)
Sc選課表(學(xué)號(hào),課程編號(hào),成績)表結(jié)構(gòu)如下:(1).寫一個(gè)SQL語句,查詢選修了’計(jì)算機(jī)原理’的學(xué)生學(xué)號(hào)和姓名(2).寫一個(gè)SQL語句,查詢’周星馳’同學(xué)選修了的課程名字(3).寫一個(gè)SQL語句,查詢選修了5門課程的學(xué)生學(xué)號(hào)和姓名
(1)selectsno,snamefromstudentwheresnoin(selectsnofromscwherecno=(selectcnofromcoursewherecname='計(jì)算機(jī)原理'))
(2)
selectcnamefromcoursewherecnoin(selectcnofromscwheresno=(selectsnofromstudentwheresname='周星馳'))
(3)selectsno,snameFromstudentWheresnoin(selectsnofromscgroupbysnohavingcount(sno)=5)
一道凊華同方的SQL面試題?已知一個(gè)表的結(jié)構(gòu)為:
姓名科目成績
張三語文20?張三數(shù)學(xué)30
張三英語50?李四語文70?李四數(shù)學(xué)60?李四英語90
如何通過select語句把他變成以下結(jié)構(gòu):
姓名語文數(shù)學(xué)英語?張三203050
李四706090在Mysql上測試通過:
usetest;
droptableifexistsstudentscore;
createtablestudentscore(idintauto_incrementprimarykey,姓名varchar(20),科目varchar(20),成績varchar(20))defaultcharset=utf8;createviewteststudentasselectA.姓名,A.成績as語文,B.成績as數(shù)學(xué),C.成績as英語fromstudentscoreA,studentscoreB,studentscoreCwhereA.姓名=B.姓名andB.姓名=C.姓名andA.科目='語文'andB.科目='數(shù)學(xué)'
andC.科目='英語';
(2)金蝶的一道SQL筆試題,上個(gè)周六的時(shí)候去金蝶面試,出了這樣一道SQL題,共享之
給下面這樣的一個(gè)表記錄:?------
購物人
商品名稱
數(shù)量
A
甲
2
B
乙
4
C
丙
1
A
丁
2?B
丙
5?給出所有購入商品為兩種或兩種以上的購物人記錄usetest;?droptableifexistsproduct;?createtableproduct(idintauto_incrementprimarykey,購物人varchar(20),商品名稱varchar(20),數(shù)量varchar(20));
insertintoproduct(id,購物人,商品名稱,數(shù)量)values
(1,'A','甲','2');?insertintoproduct(id,購物人,商品名稱,數(shù)量)values
(2,'B','乙','4');?insertintoproduct(id,購物人,商品名稱,數(shù)量)values
(3,'C','丙','1');
insertintoproduct(id,購物人,商品名稱,數(shù)量)values
(4,'A','丁','2');
insertintoproduct(id,購物人,商品名稱,數(shù)量)values
(5,'B','丙','5');?select*fromproductgroupby購物人havingcount(商品名稱)>=2;錯(cuò)誤,由于結(jié)果是這樣的:A
甲
2
B
乙
4?
select*fromproductwhere購物人in(select購物人fromproductgroupby購物人havingcount(商品名稱)>=2)對(duì)的A
甲
2?B
乙
4?A
丁
2?B
丙
5?
sql語言實(shí)現(xiàn)查找成績排名10到20的學(xué)生
sql語句實(shí)現(xiàn):?查詢成績表中10名至20名的學(xué)生方法?selecttop11*fromscorewheresnonotin(selecttop9snofromscoreorderbyscdesc)orderbyscdesc補(bǔ)充說明:score,sc,sno
分別為成績表,成績和學(xué)號(hào)。這道冥思苦想了N久的題目本來只用一個(gè)top就搞定了,真是狂汗,看來還要看書。
HYPERLINK""
用一句SQL取出第m條到第n條記錄的方法
從Table
表中取出第
m
條到第
n
條的記錄:(Not
In
版本)
SELECT
TOP
n-m+1
*
FROM
Table
WHERE
(id
NOT
IN
(SELECT
TOP
m-1
id
FROM
Table
))
?
--從TABLE表中取出第m到n條記錄
(Exists版本)?
SELECT
TO(shè)P
n-m+1
*
FROM
TABLE
AS
a
WHERE
Not
Exists?
(Select
*
From
(Select
Top
m-1
*
From
TABLE
order
by
id)
b
Where
b.id=a.id
)
Order
by
id?
?
--m為上標(biāo),n為下標(biāo),例如取出第8到12條記錄,m=8,n=12,Table為表名
?
Select
Top
n-m+1
*
From
Table
Where
Id>(Select
Max(Id)
From
(Select
Top
m-1
Id
From
Table
Order
By
Id
Asc)
Temp)
Order
By
Id
Asc
直接取得數(shù)據(jù)庫中的分頁記錄前提是表中必須有主鍵
?取得第M條記錄之后的N條記錄:?SELECTTOPN*FROM[TABLE]WHERE(IDNOTIN(SELECTTOPMidFROM[TABLE]ORDERBY[ORDER]))ORDERBY[ORDER]?
Oracle中的實(shí)現(xiàn),取得第M到N條記錄:SELECT*FROM?(SELECT*,ROWNUMASCONFROM(SELECT*FROM[TABLE]ORDERBY[ORDER])WHEREROWNUM<=N)WHERECON>=M;查詢表中連續(xù)的某幾條記錄不要傳任何列的條件參數(shù),查詢表中連續(xù)的某幾條記錄?如:表A,id列為主鍵
idnamesexage?-----------
1luoyimale21?2yayafemale20?3lilifemale22?4wuyongmale25?...........?
這個(gè)表的記錄尚有很多,假如我想取第二、第三條記錄,不為別的,我就想要這兩條,這不僅在編程中會(huì)用到,并且在一些公司面試時(shí)也有類似考題(呵呵,我沒有碰到過),在oracle和mssqlserver中SQL代碼分別為:
?二、mssqlserver?在server中沒有minus,只能用類似于oracle的第二種方法
select*from(selecttop3*fromA)asbwhereb.idnotin(selecttop1idfromA)?三、繪制出來的結(jié)果為:
idnamesexage
---------------?2yayafemale20
3lilifemale22特點(diǎn):一次查詢,數(shù)據(jù)庫只返回一頁的數(shù)據(jù)。而不是取出所有的數(shù)據(jù)。
說明:??pagesize:每頁顯示記錄數(shù)
cureentpage:當(dāng)前頁數(shù)?
select*from(selectTO(shè)Ppagesize*FROM(SELECTTOPpagesize*cureentpage*fromuser_tableORDERBYidASC)asaSysTableORDERBYidDESC)asbSysTableORDERBYidASC
??例子說明:
假如數(shù)據(jù)庫表如下:
user_table:?id:主鍵,自增
username:字符?password:字符?
假設(shè)有80條記錄,每頁顯示10條記錄,id從1到80現(xiàn)在按照id升序排列取出第三頁的數(shù)據(jù)應(yīng)當(dāng)為:所取得記錄的id應(yīng)當(dāng)為21到30。這時(shí)該語句應(yīng)當(dāng)為:??select*from(selectTOP10*FROM(SELECTTO(shè)P30*fromuser_tableORDERBYidASC)asaSysTableORDERBYidDESC)asbSysTableORDERBYidASC??原理如下:?先按照id從小到大升序取出30條記錄(3*10),也就是:id在1-30之間的記錄(SELECTTOP30*fromuser_tableORDERBYidASC)然后按照ID降序排列這30條記錄,得到記錄為id在:從30到1然后在這些30條記錄中取出前10條記錄:取得的記錄為:id在30-21之間。這就是我們需要的數(shù)據(jù),但這時(shí)是按照降序排列的,不符合規(guī)定。最后在重新排序得到最終我們需要的數(shù)據(jù)。id在21-30之間。隨機(jī)取出若干條記錄的SQL語句
Sqlserver:
selecttop20*from表orderbynewid()A、B兩個(gè)表擁有同樣的表結(jié)構(gòu),都以id為主鍵,如何將A表中存在而B表中不存在的記錄插入到B表中。
表結(jié)構(gòu)如下:createtableA(idintprimarykey,namevarchar(20),passwordvarchar(20))?A表記錄:ID
NAME
PASSWORD--1
Tom
1234
2
Mary
1234?3
Lucy
1234
4
Billy
1234
5
Henry
1234
B表記錄:ID
NAME
PASSWORD-----------1
Tom
1234?2
Mary
1234
3
Lucy
1234
SQL語句一(通過notin實(shí)現(xiàn)):
insertintoBselect*fromAwhereidnotin(selectidfromB)Sql語句二(通過notexists實(shí)現(xiàn)):insertintoBselect*fromAanotexists(select*fromBbwherea.id=b.id)
若兩表的記錄不同,如下:A表記錄:ID
NAME
PASSWORD-----1
Tom
1234
2
Mary
1234?3
Lucy
1234?4
Billy
2548?5
Henry
1234
B表記錄:ID
NAME
PASSWORD-----------1
Jojoy
1234?2
Mary
1234
3
Lucy
1234?4
Billy
1234
5
Henry
1234
找出兩表中的不同記錄,以下兩條SQL語句都能實(shí)現(xiàn)。
select*frombwherenamenotin(selectnamefroma)orpasswordnotin(selectpasswordfroma)
select*frombwherenotexists(select*fromawherea.name=b.nameanda.password=b.password)select*frombwherenotexists(select*fromawherea.name=b.nameanda.password=b.password)HYPERLINK""SQLServer不同行列相減實(shí)例解析
昨天技術(shù)主管面試新人時(shí)出了道數(shù)據(jù)庫編程題,自己也是新人,所以順便拿過來研究一下,題目如下:
數(shù)據(jù)庫表TEST,表結(jié)構(gòu)及數(shù)據(jù)如下:
CREATETABLETEST(IDchar(10)PRIMARYKEY,NAMEchar(10),AMOUNTnumeric(9))
ID
NAME
AMOUNT---101
dr
100
102
cr
200?101
cr
50
102
dr
150?101
dr
300
103
dr
300?103
cr
300?104
cr
345?104
dr
355?104
dr
225
105
dr
225105
cr
500用一條SQL語句得出以下查詢結(jié)果(規(guī)定SQL的查詢性能和效率為最高):ID
AMOUNT-----101
350?102
-50
103
0?104
235
105
-275要得出以上結(jié)果,先得分析一下,可以看出是將ID相同并且NAME為dr的AMOUNT減去NAME為cr的AMOUNT得出。
在不考慮效率的情況下,可使用以下SQL語句:selectid,amount=(selectsum(amount)fromtestwherename='dr'andid=t.id)-(selectsum(amount)fromtestwherename='cr'andid=t.id)fromtestt
groupbyid但這條語句還是有問題,例如:當(dāng)去掉ID
NAME
AMOUNT-----105
cr
500這條記錄后,查詢結(jié)果如下:ID
AMOUNT-101
350?102
-50?103
0
104
235
105
NULL
出現(xiàn)了一條空值,由于ID='105'的記錄只有一條,沒有與之相匹配的記錄。再看下面的語句:selectid,sum((casename
WHEN'dr'THEN1ELSE-1END)*amount)asamountfromtestgroupbyidselectid,sum(casename
WHEN'dr'THENamountELSE-amountEND)asamountfromtestgroupbyid這兩條語句的效率和查詢結(jié)果等同,也是我們所要的SQL語句。其實(shí)要獲得高效率的SQL語句,解題的思緒很重要,這里運(yùn)用SQLServer的CASE函數(shù)實(shí)現(xiàn)將AMOUNT字段的值根據(jù)NAME的不同賦不同的值(加個(gè)負(fù)號(hào)),再用sum函數(shù)實(shí)現(xiàn)數(shù)據(jù)的相減??碱}:現(xiàn)有兩張表,以下為表結(jié)構(gòu)createtabledep(depidintidentityprimarykey,--部門號(hào)depnamevarchar(20)
--部門名稱)createtableemp(empidintidentityprimarykey,empnamevarchar(20),salarymoney,depidint)問題:1、請(qǐng)用一條sql語句查詢出各部門的平均工資。結(jié)果顯示為如下形式:
部門號(hào)
平均工資
------------
1
2500.4521
2
2845.0121這個(gè)比較簡樸,但是有幾種方式。正解1:?selectdepid部門號(hào),avg(salary)平均工資fromempgroupbydepid正解2:?selectt1.depid部門號(hào),avg(t2.salary)平均工資fromdept1innerjoinempt2ont1.depid=t2.depidgroupbyt1.depid正解3:?select部門號(hào)=depid,平均工資=avg(salary)fromempgroupbydepid2、請(qǐng)列出工資大于本部門平均工資的員工姓名和部門號(hào)以及記錄此部門的人數(shù)。結(jié)果顯示為如下形式:
EMPNAME
DEPID
部門人數(shù)?
-------------
ZHANGSAN
1
15
LISI
2
10這個(gè)有點(diǎn)難度,我試了半天都沒解決。正解1:SELECTT1.empname,T1.depid,T2.部門人數(shù)FROMdbo.empT1INNERJOIN(selectt1.depid,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度大型運(yùn)動(dòng)會(huì)安防系統(tǒng)合同
- 2024年度大數(shù)據(jù)分析服務(wù)合同標(biāo)的明細(xì)
- 2024年專用:租賃合同保證金條款匯編
- 2024年度居民住宅鋁合金門窗安裝工程合同
- 2024年廢舊物資回收協(xié)議
- 2024工程合規(guī)審查中的黑白合同問題探討
- 04版智能硬件研發(fā)與制造分包合同
- 2024年國際貨運(yùn)代理及倉儲(chǔ)物流合作合同
- 2024年度5G基站建設(shè)與運(yùn)營合作協(xié)議
- 2024年一年級(jí)數(shù)學(xué)老師家長會(huì)
- 模擬法庭案例腳本:校園欺凌侵權(quán)案 社會(huì)法治
- 05 03 第五章第三節(jié) 投身崇德向善的道德實(shí)踐
- 安徽省合肥市第四十五中學(xué)2022-2023學(xué)年九年級(jí)上學(xué)期數(shù)學(xué)期中考試卷
- 樁基礎(chǔ)工程施工組織方案
- 供水運(yùn)營管理實(shí)施方案(4篇)
- 水土保持工程質(zhì)量評(píng)定表
- 水電站基本構(gòu)造原理與類型ppt版(共67)
- 秦朝統(tǒng)一PPT課件教學(xué)
- 《民族團(tuán)結(jié)》- 完整版課件
- 醫(yī)院 交班站位圖
- 第七章 森林植被恢復(fù)與重建理論
評(píng)論
0/150
提交評(píng)論