版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、頁腳SQL常用語句,子查詢整理常用語句,子查詢整理一、SQL 子查詢語句1、單行子查詢selectename,deptno,salfromempwheredeptno=(selectdeptnofromdeptwhereloc=NEWYORK);2、多行子查詢SELECTename,job,salFROMEMPWHEREdeptnoin(SELECTdeptnoFROMdeptWHEREdnameLIKEA%);3、多列子查詢SELECTdeptno,ename,job,salFROMEMPWHERE(deptno,sal)IN(SELECTdeptno,MAX(sal)FROMEMPGROU
2、PBYdeptno;)4、聯(lián)視圖子查詢(1) SELECTename,job,sal,rownumFROM(SELECTename,job,salFROMEMPORDERBYsal);(2) SELECTename,job,sal,rownumFROM(SELECTename,job,salFROMEMPORDERBYsal)WHERErownum(SELECTsalFROMEMPWHEREename=MARTIN);6、連接左連接右連接舉例;selectsys_user.user_id,sys_user.user_codefromsys_userinnerjoinXZFW_BANJIEons
3、ys_user.user_id=XZFW_BANJIE.userid小例子:selecttop10*fromsys_userwhereuser_codenotin(selectuser_codefromsys_userwhereuser_codelike%yzj%)selecttop2*from(selecttop2*fromtd.usersorderbyus_usernamedesc)usersorderbyus_usernamedesc頁腳7、刪除約束語句:altertabledbo.XZFW_SYS_USERdropCONSTRAINTFK1772E1891324F6788、記錄數(shù)查詢s
4、electcount(user_pass)fromsys_userselectcount(*)fromsys_userwhereuser_code!=admin9、在圍之間取值(between.and.用法)selectsys_user.user_id,sys_user.user_name,xzfw_shoujian.caseidfromsys_userinnerjoinxzfw_shoujianonsys_user.user_id=xzfw_shoujian.useridwhereuser_idbetween5and100或 select*fromsys_userwhereuser_id1二
5、、SQL 基本語句下列語句部分是 Mssql 語句,不可以在 access 中使用。SQL 分類:DDL數(shù)據(jù)定義語言(Create,Alter.Drop,DECLARE)DML 一數(shù)據(jù)操縱語言(Select.Delete,Update,Insert)DCL數(shù)據(jù)控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,簡要介紹基礎(chǔ)語句:1、說明:創(chuàng)建數(shù)據(jù)庫CreateDATABASEdatabase-name2、說明:刪除數(shù)據(jù)庫dropdatabasedbname3、說明:備份 sqlserver-創(chuàng)建備份數(shù)據(jù)的 deviceUSEmasterEXECsp_addumpdevic
6、edisk,testBack,c:mssql7backupMyNwind_1.dat-開始備份BACKUPDATABASEpubsTOtestBack4、說明:創(chuàng)建新表createtabletabname(col1type1notnullprimarykey,col2type2notnull,.)根據(jù)已有的表創(chuàng)建新表:A:createtabletab_newliketab_old(使用舊表創(chuàng)建新表)B:createtabletab_newasselectcoll,col2fromtab_olddefinitiononly5、說明:刪除新表 droptabletabname6、說明:增加一個列A
7、ltertabletabnameaddcolumncoltype 注: 列增加后將不能刪除。 DB2 中列加上后數(shù)據(jù)類型也不能改頁腳變,唯一能改變的是增加 varchar 類型的長度。7、說明:添加主鍵:Altertabletabnameaddprimarykey(col)說明:刪除主鍵:Altertabletabnamedropprimarykey(col)8、說明:創(chuàng)建索弓丨:createuniqueindexidxnameontabname(col.)刪除索弓丨:dropindexidxname注:索弓是不可更改的,想更改必須刪除重新建。9、說明:創(chuàng)建視圖:createviewviewn
8、ameasselectstatement 刪除視圖:dropviewviewname10、說明:幾個簡單的基本的 sql 語句選擇:select*fromtablelwhere 圍插入:insertintotable1(field1,field2)values(value1,value2)刪除:deletefromtable1where圍更新:updatetable1setfield1 二 value1where 圍查找:select*fromtable1wherefield1like%value1%like 的語法很精妙,查資料!排序:select*fromtable1orderbyfiel
9、d1,field2desc總數(shù):selectcount*astotalcountfromtable1 求和:selectsum(field1)assumvaluefromtable1 平均:selectavg(field1)asavgvaluefromtable1 最大:selectmax(field1)asmaxvaluefromtable1最?。簊electmin(field1)asminvaluefromtable111、說明:幾個高級查詢運算詞A:UNION 運算符UNION運算符通過組合其他兩個結(jié)果表(例如TABLE1和TABLE2)并消去表中任何重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL
10、 隨 UNION 一起使用時(即 UNIONALL),不消除重復(fù)行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。B:EXCEPT 運算符EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 EXCEPT 一起使用時(EXCEPTALL),不消除重復(fù)行。C:INTERSECT 運算符INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 INTERSECT起使用時(INTERSECTALL),不消除重復(fù)行。注:使用
11、運算詞的幾個查詢結(jié)果行必須是一致的。12、說明:使用外連接 A、leftouterjoin:左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。SQL:selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.cB:rightouterjoin:右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。C:fullouterjoin:全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。其次,大家來看一些不錯的 sql 語句1、 說明: 復(fù)制表 (只復(fù)制結(jié)構(gòu), 源表名: a 新表名: b)(A
12、ccess 可用) 法一: select*intobfromawhere11法二:selecttop0*intobfroma2、說明:拷貝表(拷貝數(shù)據(jù),源表名:a 目標(biāo)表名:b)(Access 可用)insertintob(a,b,c)selectd,e,ffromb;3、說明:跨數(shù)據(jù)庫之間表的拷貝(具體數(shù)據(jù)使用絕對路徑)(Access 可用)insertintob(a,b,c)selectd,e,ffrombin具體數(shù)據(jù)庫where 條件例子:.frombin&Server.MapPath(.)&data.mdb&where.頁腳4、說明:子查詢(表名 1:a 表名
13、2:b)selecta,b,cfromawhereaIN(selectdfromb)或者:selecta,b,cfromawhereaIN(1,2,3)5、說明:顯示文章、提交人和最后回復(fù)時間 selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b6、說明:外連接查詢(表名 1:a 表名 2:b)selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c7、說明:在線視圖查詢(表名 1:
14、a)select*from(Selecta,b,cFROMa)Twheret.a1;8、說明:between 的用法,between 限制查詢數(shù)據(jù)圍時包括了邊界值,notbetween 不包括select*fromtable1wheretimebetweentime1andtime2selecta,b,c,fromtable1whereanotbetween 數(shù)值 1and 數(shù)值 29、說明:in 的使用方法select*fromtable1whereanotin(值 1,值 2,值 4,值 6)10、說明:兩關(guān)聯(lián)表,刪除主表中已經(jīng)在副表中沒有的信息deletefromtable1wheren
15、otexists(select*fromtable2wheretable1.field1=table2.field1)11、說明:四表聯(lián)查問題:select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.dwhere12、說明:日程安排提前五分鐘提醒SQL:select*from 日程安排 wheredatediff(minute,f 開始時間,getdate()513、說明:一條 sql 語句搞定數(shù)據(jù)庫分頁selecttop10b.*from(selecttop20 主鍵字段,排序字段 from 表
16、名 orderby 排序字段 desc)a,表名bwhereb.主鍵字段二 a.主鍵字段 orderbya.排序字段14、說明:前 10 條記錄selecttop10*formtable1where 圍15、 說明: 選擇在每一組 b 值相同的數(shù)據(jù)中對應(yīng)的 a 最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績排名,等等.)selecta,b,cfromtablenametawherea=(selectmax(a)fromtablenametbwheretb.b=ta.b)16、 說明: 包括所有在 TableA 中但不在 TableB 和 TableC
17、中的行并消除所有重復(fù)行而派生出一個結(jié)果表(selectafromtableA)except(selectafromtableB)except(selectafromtableC)17、說明:隨機(jī)取出 10 條數(shù)據(jù)頁腳selecttop10*fromtablenameorderbynewid()18、說明:隨機(jī)選擇記錄 selectnewid()19、說明:刪除重復(fù)記錄Deletefromtablenamewhereidnotin(selectmax(id)fromtablenamegroupbycol1,col2,.)20、說明:列出數(shù)據(jù)庫里所有的表名selectnamefromsysobje
18、ctswheretype=U21、說明:列出表里的所有的selectnamefromsyscolumnswhereid=object_id(TableName)22、說明:列示 type、vender、pcs 字段,以 type 字段排列,case 可以方便地實現(xiàn)多重選擇,類似 select 中的 case。selecttype,sum(casevenderwhenAthenpcselse0end),sum(casevenderwhenCthenpcselse0end),sum(casevenderwhenBthenpcselse0end)FROMtablenamegroupbytype顯示結(jié)
19、果:typ venderpcs電腦A1電腦A1光盤B2光盤A2手機(jī)B 3手機(jī) C323、說明:初始化表 tablelTRUNCATETABLEtable124、說明:選擇從 10 到 15 的記錄selecttop5*from(selecttop15*fromtableorderbyidasc)tabl 別_名 orderbyiddesc隨機(jī)選擇數(shù)據(jù)庫記錄的方法(使用 Randomize 函數(shù),通過 SQL 語句實現(xiàn))對存儲在數(shù)據(jù)庫中的數(shù)據(jù)來說,隨機(jī)數(shù)特性能給出上面的效果,但它們可能太慢了些。你不能要求 ASP“找個隨機(jī)數(shù)”然后打印出來。實際上常見的解決方案是建立如下所示的循環(huán):Randomi
20、zeRNumber=Int(Rnd*499)+1WhileNotobjRec.EOFIfobjRec(ID)=RNumberTHEN.這里是執(zhí)行腳本.endifobjRec.MoveNextWend頁腳這很容易理解。首先,你取出 1 到 500 圍之的一個隨機(jī)數(shù)(假設(shè) 500 就是數(shù)據(jù)庫記錄的總數(shù))。然后,你遍歷每一記錄來測試 ID 的值、檢查其是否匹配 RNumber。滿足條件的話就執(zhí)行由 THEN 關(guān)鍵字開始的那一塊代碼。假如你的 RNumber 等于 495,那么要循環(huán)一遍數(shù)據(jù)庫花的時間可就長了。雖然 500 這個數(shù)字看起來大了些,但相比更為穩(wěn)固的企業(yè)解決方案這還是個小型數(shù)據(jù)庫了,后者通
21、常在一個數(shù)據(jù)庫就包含了成千上萬條記錄。這時候不就死定了?采用SQL, 你就可以很快地找出準(zhǔn)確的記錄并且打開一個只包含該記錄的recordset,如下所示:RandomizeRNumber=Int(Rnd*499)+1SQL=Select*FROMCustomersWhereID=&RNumbersetobjRec=ObjConn.Execute(SQL)Response.WriteRNumber&=&objRec(ID)&objRec(c_email)不必寫出 RNumber 和 ID,你只需要檢查匹配情況即可。只要你對以上代碼的工作滿意,你自可按需操作“隨機(jī)”
22、記錄。Recordset 沒有包含其他容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時間。再談隨機(jī)數(shù)現(xiàn)在你下定決心要榨干 Random 函數(shù)的最后一滴油,那么你可能會一次取出多條隨機(jī)記錄或者想采用一定隨機(jī)圍的記錄。把上面的標(biāo)準(zhǔn) Random 示例擴(kuò)展一下就可以用 SQL 應(yīng)對上面兩種情況了。為了取出幾條隨機(jī)選擇的記錄并存放在同一 recordset,你可以存儲三個隨機(jī)數(shù), 然后查詢數(shù)據(jù)庫獲得匹配這些數(shù)字的記錄:SQL=Select*FROMCustomersWhereID=&RNumber&orID=&RNumber2&orID=&RNumber
23、3假如你想選出 10 條記錄(也許是每次頁面裝載時的 10 條的列表),你可以用 BETWEEN 或者數(shù)學(xué)等式選出第一條記錄和適當(dāng)數(shù)量的遞增記錄。這一操作可以通過好幾種方式來完成,但是 Select語句只顯示一種可能(這里的 ID 是自動生成的):SQL=Select*FROMCustomersWhereIDBETWEEN&RNumber&AND&RNumber&+9注意:以上代碼的執(zhí)行目的不是檢查數(shù)據(jù)庫是否有 9 條并發(fā)記錄。隨機(jī)讀取若干條記錄,測試過Access 語法:Selecttop10*From 表名 orDERBYRnd(id)Sqlserver:s
24、electtopn*from 表名 orderbynewid()mysqlelect*From 表名 orderByrand()LimitnAccess 左連接語法(最近開發(fā)要用左連接,Access 幫助什么都沒有,網(wǎng)上沒有 Access 的 SQL 說明,只有自己測試,現(xiàn)在記下以備后查)語法electtable1.fd1,table1,fd2,table2.fd2Fromtable1leftjointable2ontable1.fd1,table2.fd1where.使用 SQL 語句用.代替過長的字符串顯示語法:SQL 數(shù)據(jù)庫:selectcasewhenlen(field)頁腳10thenleft(field,10)+.elsefieldendasnews_name,news_idfromtablenameAccess 數(shù)據(jù)庫:Selectiif(len(field)2,left(field,2)+.,field)FROMtablename;Conn.Execute 說明Execute 方法該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度電動汽車定點維修與充電設(shè)施建設(shè)合同
- 二零二五年度車輛共享平臺合伙投資合同
- 二零二五年度石灰粉產(chǎn)品國際認(rèn)證與市場準(zhǔn)入合同
- 2025年度城市中心地段高端合租公寓管理合同
- 二零二五年度現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園合同終止協(xié)議
- 2025年度養(yǎng)老護(hù)理雇傭保姆合同二零二五年度全方位照顧老人服務(wù)約定
- 2025年度舞蹈教師藝術(shù)表演代理合同
- 二零二五年度洗車房租賃合同附洗車場污水處理及資源化利用方案
- 2025年度進(jìn)出口貨物履行保險服務(wù)合同
- 幼兒教師心理疏導(dǎo)培訓(xùn)
- 中藥飲片驗收培訓(xùn)
- DB35T 1036-2023 10kV及以下電力用戶業(yè)擴(kuò)工程技術(shù)規(guī)范
- 中國移動自智網(wǎng)絡(luò)白皮書(2024) 強化自智網(wǎng)絡(luò)價值引領(lǐng)加速邁進(jìn)L4級新階段
- 亞馬遜合伙運營協(xié)議書模板
- 2024年6月青少年機(jī)器人技術(shù)等級考試?yán)碚摼C合-三級試題(真題及答案)
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》測試題+答案
- Unit 4 同步練習(xí)人教版2024七年級英語上冊
- 殘疾軍人新退休政策
- 人教版數(shù)學(xué)三年級下冊《簡單的小數(shù)加、減法》說課稿(附反思、板書)課件
- 廣東省深圳市2023年中考英語試題(含答案與解析)
- MOOC 電工學(xué)(電氣工程學(xué)概論)-天津大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論