锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
try {
logger.info("start to registerDriver...");
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
logger.info(pros.getProperty("dbURL")+"--"+pros.getProperty("user")+"--"+ pros.getProperty("password"));
con = DriverManager.getConnection(pros.getProperty("dbURL"), pros.getProperty("user"), pros.getProperty("password"));;
if (con != null) {
st = con.createStatement();
rs = st.executeQuery("select 1 from dual");
rs.next();
if (rs.getInt(1) == 1) {
res = true;
}
}
}
鐒跺悗鎴戝仛浜嗕竴涓?/span>java application妗岄潰灝忓簲鐢ㄧ▼搴忥紙extends FrameView錛夛紝鍦ㄥ皬搴旂敤紼嬪簭涓偣鍑諱簨浠惰Е鍙戞孌典唬鐮侊紝濡備笅錛?/span>
private void dbTestMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
//浠庨厤緗枃浠朵腑璇誨彇榪炴帴鐩稿叧灞炴?/span>
String info = "鏁版嵁搴撹繛鎺ュ紓甯革紝璇風‘璁ら厤緗枃浠舵槸鍙傛暟鏄惁姝g‘銆?/span>";
Properties per = new Properties();
try {
logger.info("start to test the db connection...");
per.load(new FileInputStream(Content.configFile));
logger.info("system have loaded the config files successfully");
DbOper db = new DbOper();
if (db.checkDBConnect(per)) {
info = "鏁版嵁搴撹繛鎺ユ甯?/span>";
}
logger.info("鏁版嵁榪炴帴嫻嬭瘯緇撴灉錛?/span>" + info);
} catch (Exception e) {
logger.error("Exception when test the DB connection, ",e);
}
if (aboutBox == null) {
JFrame mainFrame = AnalyseExcelApp.getApplication().getMainFrame();
aboutBox = new DBTestResultBox(mainFrame, info);
aboutBox.setLocationRelativeTo(mainFrame);
}
AnalyseExcelApp.getApplication().show(aboutBox);
}
浣嗗湪榪愯鏃訛紝紼嬪簭澶翠篃涓嶅洖鍦扮洿鎺ユ浜嗭紝璋冭瘯鏃跺彂鐜扮▼搴忔槸鍦?/span>
con = DriverManager.getConnection(pros.getProperty("dbURL"), pros.getProperty("user"), pros.getProperty("password"));;
榪欎竴琛岋紝涓嶈浜嗭紝涔熶笉鎶ラ敊錛屽氨鐩存帴鍦ㄦ琛屼竴鐩村憜鐫錛屽暐涔熶笉鍋?/span>...
鍙﹀榪樻湁浜岀鎯呭喌錛屼篃璁╂垜姣旇緝濂囨細
1. 鑻ュ悓鏍瘋皟鐢ㄦ孌墊祴璇曚唬鐮侊紝浣嗕笉鏄湪java application涓紝鑰屾槸鐩存帴鍦ㄤ竴涓櫘閫氱殑java綾葷殑main鏂規硶涓紝嫻嬪彲浠ユ祴璇曢氳繃銆?/span>
2. 鑻ユ暟鎹簱杈圭殑鏄湰鏈虹殑鏁版嵁搴擄紝閭d箞姝ゆ嫻嬭瘯浠g爜涔熷彲浠ラ氳繃錛屽湪java application涓?/span>java綾葷殑main鏂規硶涓潎鍙互銆?/span>
涓轟粈涔堬紝榪炴帴榪滅▼鏁版嵁鏃訛紝鍦?/span>java application涓細鏃犳晠down鎺夊憿錛?/span>
ps. 鎺掗櫎鏁版嵁搴撳湴鍧錛岀敤鎴峰悕錛屽瘑鐮佺瓑閿欒錛涙垜鐨凧DBC椹卞姩鏄痮jdbc14.jar錛孞DK 1.5
StringUtil.getUTF8Bytes鏄嚜鍐欑殑涓涓被錛屽洜涓簒mlhttp涓紶鏁版嵁鐨勬椂鍊欓粯璁ゆ槸UTF-8浼犵殑銆?br> 榪欐牱鍙互闃叉涔辯爜鍑虹幇銆?br>
鍦ㄥ鎴風JS涓細
鍦╯erver涓亣濡傝繑鍥炰竴浜涘瓧絎︿覆榪欐牱寰堟柟渚匡紝浣嗗浣曟兂鍔ㄦ佺粍鍚堟垚涓浜沴ist鐨刼ption鏃訛紝鍙兘涓嶅お鏂逛究浜嗭紝
榪欐椂鍙互閫氳繃JS鐨別val鏂規硶鐩存帴鍙栦竴涓〉闈㈠唴瀹廣傚叿浣撳涓嬶細
鍦╯erver涓繑鍥炵殑鏄竴涓〉闈紝濡傚湪spring MVC涓彲鑳藉涓嬶細
return new ModelAndView("redirect:data.html");
鍦ㄨ繑鍥炲墠涓誨彲浠ュ仛涓浜涘埆鐨勬墜鏈紝鍏稿瀷鐨勫request.setAttribute(name,value);
鐒跺悗鍦↗SP涓繘琛岃В鍓?濡侸SP涓?榪欑鎯呭喌涓嬶紝鎶婂畠褰撴椂鍦╦s鏂囦歡灝監K浜?錛?br>
myForm鐨勫畾涔夎寮勬竻妤氾紝瀹冨簲璇ュ湪浣犳墍(鍙戦?璇鋒眰鐨勯〉闈㈢殑document閲岀殑瀵硅薄
JS涓?娌′粈涔堝ソ鎯崇殑)
鍏跺畠錛?br>浠ヤ笂閮芥槸閫氳繃xmlhttp鏉ョ敤AJAX鐨勶紝榪欐牱鍙互閫氳繃鍙傛暟鐩存帴鎺у埗鍚屾榪樻槸寮傛銆?br>
鏈榪戠敤DWR鐢ㄦ劅瑙変笉閿欙紝鎸哄ソ鐨勶紒瀹冪殑util涓繕鎻愪緵浜嗕笉灝戠殑鏈夌敤 & 甯哥敤鐨勬柟娉曘備笉榪囦竴鐩翠笉鐭ラ亾DWR涓浣曞悓姝ヤ紶杈擄紝浠婂ぉ鎵懼埌浜嗭細
鍦―WR鐨別ngine.js鏂囦歡錛屾湁setAsync鏂規硶錛屽氨鏄緗皟鐢ㄦ槸鍚︽槸鍚屾鐨勶紝榪樻槸寮傛鐨勩?/p>
js 浠g爜
銆銆鍦ㄦ墽琛岃繃紼嬩腑鍦╡clpise鐨刢onsole鍙頒腑鍙互鐪嬪埌hibernate緇忚繃搴曞眰灝嗗叾璇戞垚SQL鍚庢垚浜?
銆銆select ... from Customer user聽 where 1=1 and userr.hh like '%??????%'
銆銆鐨勬牱瀛愩傛垜璇曡繃灝嗗叾浠ヤ笉鍚岀殑鏂瑰紡緙栫爜錛屽彲鏄兘娌℃湁灝嗗叾鏈緇堜互姝g‘鐨勭粨鏋滆繑鍥炪傛殏涓斾笉璋堟鏂規硶搴旇濡備綍鍐欙紝鎴戜富瑕佹槸鎯寵閫氳繃鐢ㄥ彟澶栦竴縐嶆煡璇㈡柟娉?鍦℉QL涓粦瀹氬弬鏁伴緙栬瘧鏈哄埗鏉ヨВ鍐寵繖涓貢鐮侀棶棰樸?br />
銆銆鍙傛暟緇戝畾鏈哄埗鏈夊涓嬩紭鐐癸細
銆銆a銆瀹夊叏鎰燂紝闃叉鎭舵剰鐢ㄦ埛闈炴硶璋冪敤DB鐨勫瓨鍌ㄨ繃紼?br />銆銆b銆鍒╃敤搴曞眰鏁版嵁搴撶紪璇慡QL鐨勫姛鑳斤紝鎻愰珮鏁版嵁搴撴煡璇㈡ц兘銆傞緙栬瘧鏄寚搴曞眰鏁版嵁搴撶郴緇熷彧鑳界紪璇慡QL璇彞涓嬈★紝鎶婄紪璇戝嚭鏉ョ殑鍙墽琛屼唬鐮佷繚瀛樺湪緙撳瓨涓紝濡傛灉鏈夊嬈℃墽琛岀浉鍚岀殑SQL璇彞錛屼笉闇瑕侀噸鏂扮紪璇戯紝鍙浠庣紦瀛樹腑璇誨彇鍗沖彲銆?br />
銆銆灝嗕笂闈㈢殑鎵ц榪囩▼鏀規垚濡備笅錛?br />
銆銆榪欐牱灝卞彲浠ョ湅鍒板湪console涓渶鍚庢墍鎵ц鐨凷QL:
銆銆select ... from Customer user聽 where 1=1 and userr.mc like '%鎯犳鍗楀浗%'
銆銆鍦ㄤ笂闈腑鏈夎繖鏍風殑璇彞錛?br />
銆銆qry.setParameter(i, objs[i]);
銆銆榪欐槸灞炰簬鎸夊弬鏁頒綅緗粦瀹氫腑鐨勭粦瀹氫換鎰忕殑鍙傛暟綾誨瀷銆?br />
銆銆org.hibernate.Query鐨勫弬鏁扮粦瀹氬艦寮忓彲浠ュ垎涓?br />
銆銆1銆鎸夊弬鏁頒綅緗粦瀹?br />
銆銆2銆鎸夊弬鏁頒綅緗粦瀹?br />
銆銆Query緇戝畾鍙傛暟綾誨瀷鍙互鍒嗕負錛?br />
銆銆1銆鍙傛暟涓庢寔涔呭寲綾誨疄浣撶粦瀹?br />
銆銆2銆緇戝畾浠繪剰綾誨瀷鍙傛暟
銆銆涓婇潰涓殑qry.setParameter(...)灝辨槸榪欑綾誨瀷,鎴戜滑qry.setParameter(i, objs[i]);涓槸鐪佺暐浜嗙涓変釜鍙傛暟鍗矵ibernate鏄犲皠綾誨瀷,濡傦細
銆銆qry.setParameter(i, objs[i],Hibernate.STRING);
銆銆瀵逛簬鏈変簺鍙傛暟錛孒ibernate鑳芥牴鎹弬鏁板肩殑java綾誨瀷鎺ㄦ柇鍑哄搴旂殑鏄犲皠綾誨瀷錛屾鏃朵笉鍐嶈鍦╯etParameter()涓樉寮忔寚瀹氭槧灝勭被鍨嬨傚涓?br />
銆銆3銆灝嗗懡鍚嶅弬鏁頒笌涓涓璞″睘鎬х粦瀹?br />
銆銆setProperties()鏂規硶
銆銆涓漢瑙夊緱榪欎釜璺烵RM鎶鏈殑ibatis涓殑SQLMAP鏈変簺璁哥浉浼箋傚畠鏄敤setProperties()鏂規硶銆傚錛?/p>
Attention錛氬浜庢棩鏈熷瀷鏁版嵁涓嶈兘鐢╯etProperties()鏂規硶閫氳繃瀹炰綋鏉ョ粦瀹氥?/font>
聽
銆銆寮濮嬮厤緗甤vsnt錛?br />
銆銆a銆鏌ョ湅榪愯鐘舵侊細
銆銆鍦╝bout闈㈡澘鏈変釜cvsnt聽 鍜?cvsnt lock浜屼釜閫夐」錛岃繖鍎垮彲浠ュ鍏惰繘琛宻tart,stop鏈嶅姟
銆銆b銆娣誨姞璧勬簮
銆銆鍦╮epository config闈㈡澘涓彲浠ユ坊鍔犲垹闄よ祫婧愶紝榪欏効涓昏璁懼畾浜唕epository 鐨刵ame and聽 root鍊箋傚鎴戝湪榪欏効灝唍ame璁劇疆涓篭mycvs錛宺oot涓篹:\mycvs銆傚垱寤哄悗浼氬湪瀵瑰簲鐨勭洰褰曚笅鐢熸垚cvsroot鏂囦歡澶瑰強cvs鐩稿叧閰嶇疆鏂囦歡銆偮燨K,紜畾銆傝繖涓湴鏂瑰彲浠ヨ閲嶅惎鏈嶅姟鎵嶈兘鐢熸晥
銆銆c銆鍏煎錛?br />銆銆鍦╟onpatibility option 闈㈡澘涓婇夋嫨鍏煎鐨勭増鏈紝娉ㄦ剰涓瀹氳鍕句笂respond as cvs 1.11.2 to version request錛屼負浜嗕笌eclipse涓殑cvs鍏煎(鍦╡clipse涓殑cvs鐗堟湰寰堝彲鑳戒笌浣燾vsnt鐗堟湰涓嶅悓)銆?br />
銆銆濂戒簡錛岀幇鍦ㄦ湇鍔″櫒涓婄殑璧勬簮璺緞宸茬粡璁懼畾濂戒簡銆?br />
銆銆閫氳繃IDE鍏變韓涓涓伐紼?/strong>銆銆
銆銆鎵撳紑eclipse鏂板緩涓涓」鐩紝鐒跺悗鍦ㄩ」鐩笂鍙沖嚮/team/share project 錛堝皬緇?鍏變韓欏圭洰錛夛紝鍦ㄥ脊鍑虹殑share聽 project whith cvs reposity瀵硅瘽妗嗕腑閫夋嫨涓涓猚vs璺緞(絎竴嬈″綋鐒舵槸鏂板緩浜?錛屽湪host涓~鍏VSNT鐨勪富鏈哄湴鍧濡傦細192.168.12.17錛屽湪repository path涓~鍏vsnt涓殑name鍊煎錛?mycvs銆倁ser涓啓cvsnt鎵鍒嗛厤鐨勭敤鎴峰悕錛宲assword涓啓鍏ュ瘑鐮?涓嬮潰灝嗕細璁蹭簺cvs涓浣曠鐞嗙敤鎴?銆傚湪connection type涓竴鑸夋嫨pserver榪炴帴綾誨瀷銆傜劧鍚庡氨鏄浣忓瘑鐮佷粈涔堢殑...聽 :-)銆侽K ,NEXT鎻愮ず涓璺畬鎴愶紒
聽聽聽
銆銆鍦ㄥ鎴風浠巆vs涓婂鍏ュ叡浜伐紼嬶細
銆銆鍦ㄥ鎴風鐨別clipse涓墦寮cvs瑙嗗浘錛屾牴鎹瓹VSNT鐨勮礬寰勫強鍏剁粰浣犳墍鍒嗛厤鐨勭敤鎴風浉鍏充俊鎭柊寤轟竴涓狢VS鐨勮祫婧愯礬寰勩俹k,寮濮嬪紩鍏ュ叡浜伐紼嬩簡錛?br />
銆銆鍙互鐩存帴浠巆vs涓璫heck out鍑烘潵錛屼篃鍙互浠巒ew/project/cvs/projects from cvs銆傞変腑浣犲垰鍒氭妸寤虹珛cvsnt璧勬簮璺緞,浣犲彲浠ュ湪use an existing module涓湅鍒版墍鏈夌殑鍏變韓欏圭洰浜嗐傜劧鍚庨夋嫨涓涓綘鎯沖鍏ョ殑欏圭洰check out鍑烘潵鍒版湰鏈?...
銆銆鍏ㄩ儴瀹屾垚^_^錛屾湰鏉ユ兂鍓嚑涓浘涓婃潵鐨勶紝鏈変簺楹葷儲錛屽お涓嶆柟渚夸簡銆備笉榪囪繃紼嬫瘮杈冪畝鍗曪紝寰堝揩灝卞彲浠ユ悶瀹氥傚鎴風灝哻vsnt涓婄殑宸ョ▼媯鍑烘槸姣旇緝綆鍗曠殑銆備富瑕佹槸鍦╟vsnt涓婄殑鐩稿叧閰嶇疆銆傛垜鍦ㄧ綉涓婃壘浜嗕簺璧勬枡錛屽畬鎴愪簡濡傛坊鍔犱笉鍚岀殑鐢ㄦ埛銆備粙緇嶆湁涓猚vsnt鐨凣UI宸ュ叿鍙互鐩存帴鍥懼艦鍖栨搷浣溿傜湅浠嬬粛寰坋asy ,涓嬭澆URL:http://www.kdeopen.com(鍋朵竴鐩存墦涓嶅紑錛岄儊闂鳳紝甯屾湜鍚勪綅榪愭皵姣旀垜濂? 銆傛垜鍙ソ鍦ㄦ帶鍒跺彴涓嬫坊鍔犲垹闄ょ敤鎴蜂簡銆?br />
銆銆cvsnt鐢ㄦ埛綆$悊
銆銆鍦ㄧ敤鎴風鐞嗕腑浠ヤ笅鏄痗vs鐨勪竴浜涘懡浠ゅ弬鏁?br />銆銆Usage: cvs passwd [-a] [-x] [-X] [-r real_user] [-R] [-D domain] [username]
聽聽聽聽聽聽銆聽 -a聽聽聽聽聽 Add user
聽聽聽聽聽聽聽銆 -x聽聽聽聽聽 Disable user
聽聽聽聽聽聽銆聽 -X聽聽聽聽聽 Delete user
聽聽聽聽聽聽銆聽 -r聽聽聽聽聽 Alias username to real system user
聽聽聽聽聽聽銆聽 -R聽聽聽聽聽 Remove alias to real system user
聽聽聽聽聽聽銆聽 -D聽聽聽聽聽 Use domain password
銆銆鏈嶅姟鍣ㄥ伐浣滃湪CVSNT鐢ㄦ埛鍗曚竴楠岃瘉鏂瑰紡涓嬬殑鏃跺欙紝鏂囦歡passwd瀹氫箟浜咰VSNT鐨勭敤鎴蜂俊鎭紝榪欓噷闈繚瀛樼潃鐢ㄦ埛鍚嶏紝鐢ㄦ埛瀵嗙爜錛屼互鍙婂埆鍚嶄俊鎭傞粯璁ょ姸鎬佷笅 娌℃湁璇ユ枃浠訛紝浣嗘槸鎴戜滑鍙互鍦–VSNT榪樺伐浣滃湪娣峰悎楠岃瘉鏂瑰紡涓嬫椂錛岀敤緋葷粺綆$悊鍛樼櫥褰曪紝閫氳繃娣誨姞鐢ㄦ埛鍛戒護鏉ヨCVSNT鑷姩寤虹珛涓涓猵asswd鏂囦歡銆?br />
銆銆鐧誨綍錛歭ogin
銆銆cvs -d :pserver:administrator@127.0.0.1:/mycvs login
銆銆娣誨姞鐢ㄦ埛
銆銆cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -a zyx
銆銆
銆銆涔嬪悗緋葷粺鎻愮ず杈撳叆瀵嗙爜錛岃緭鍏ュ悗鏈嶅姟鍣ㄤ細鏂板緩涓涓猵asswd鏂囦歡銆傝鏂囦歡鐨勫唴瀹瑰緢綆鍗曪紝褰㈠紡濡備笅錛?br />銆銆
銆銆zyx:YT2p2NmdmUlEg:
銆銆浠ョ涓琛屼負渚嬶細zyx涓虹敤鎴峰悕錛孻T2p2NmdmUlEg涓篊VS浣跨敤UNIX鏍囧噯鍔犲瘑鍑芥暟瀵瑰瘑鐮佽繘琛屽姞瀵嗗悗鐨勭粨鏋溿?br />
銆銆鑻ユ兂浠ユ販鍚堥獙璇佺殑鏂瑰紡楠岃瘉寰楀搴斾竴涓獁indow鐨勭郴緇熺敤鎴峰悕(zyinxin)錛岃繖鏃跺氨鐢ㄥ弬鏁?r鏉ユ寚瀹?濡傦細
聽聽聽聽聽聽cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -r zyinxin -a zyx銆
銆銆榪欐椂鐢熸垚鏂囦歡鍐呭濡備笅錛?br />銆銆zyx:YT2p2NmdmUlEg:zyinxin
銆銆zyinxin涓鴻鐢ㄦ埛鐨勫埆鍚?瀹冩槸鍙傝冪郴緇熺敤鎴?錛?br />
銆銆娉ㄦ剰錛氳繖涓枃浠舵槸涓嶈兘鍦ㄥ鎴風榪涜淇敼鐨勶紝涓嶈兘checkout鍑烘潵銆?/p>
銆銆娣誨姞瀹屾垚鍚庝綘鍙互閫氳繃login鏉ユ祴璇曠敤鎴穤yx鏄惁鍒涘緩鎴愬姛
銆銆鍒犻櫎鐢ㄦ埛:
銆銆cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -x zyx
銆銆闄勶細鍙傝冧簡緗戜笂涓浜涜祫鏂欙紝鍒氬垰瀛︿範錛屾効涓璧瘋繘姝ャ傝阿璋紒
聽select
聽round(sysdate,'month') RM,
聽round(sysdate,'year') RY,
聽trunc(sysdate,'month') TM,
聽trunc(sysdate,'year') TY
聽from dual;
RM聽聽聽聽聽聽聽聽 RY聽聽聽聽聽聽聽聽 TM聽聽聽聽聽聽聽聽 TY
---------- ---------- ---------- ----------
01-8鏈?-06 01-1鏈?-07 01-7鏈?-06 01-1鏈?-06
4>杞崲鍑芥暟
闅愬紡杞崲:緋葷粺鑷姩杞崲,濡傦細
varchar2 or char to number
varchar2 or char to date
number to varchar2
date to varchar2
鏄懼紡杞崲錛氫漢涓轟互鍑芥暟鍔犱互杞崲
鏃ユ湡錛屽瓧絎︼紝鏁版嵁涓夎呬箣闂村彲浠ョ浉浜掕漿鎹?鏃ユ湡<-->瀛楃<-->鏁版嵁
鏃ユ湡鏍煎紡:YYYY
鏃ユ湡-->瀛楃
select to_char(sysdate,'yyyy-mm-dd') ch from dual
CH
----------
2006-07-28
鏁板瓧-->瀛楃
to_char(number,'format_model'),oramat_model鏈夊涓嬶細
9---鐢ㄥ搴旀暟瀛楄〃紺?br />0---寮哄埗鐢紣琛ㄧず
$---鍔犱竴$絎﹀彿
L---鍓嶅姞鏈湴璐у竵鍗曚綅琛ㄧず
.---鍗佽繘鍒剁偣
,---鍗冭繘鍒剁偣
select to_char(0917,'l9999.99') local from dual
LOCAL
------------------
聽聽聽聽聽聽聽聽 RMB917.00
瀛楃-->鏃ユ湡
tselect to_date('19830917','yyyy-mm-dd') bir from dual
BIR
----------
17-9鏈?-83
瀛楃-->鏁板瓧
select to_number('19821217','999999999') mybr from dual
聽聽聽聽聽 MYBR
----------
聽 19821217
娉細鎵鏈夊嚱鏁板潎鍙互宓屽浣跨敤
5>閫氱敤鍑芥暟
nvl(expr1,expr2)---expr1涓虹┖鍒欐樉紺篹xpr2,鍚﹀垯鏄劇ずexpr1
nvl2(expr1,expr2,expr3)---expr1涓虹┖鍒欐樉紺篹xpr2,鍚﹀垯鏄劇ずexpr3
nullif(expr1,expr2)---浜屼釜鐩哥瓑鍒欐樉紺虹┖絎?鍚﹀垯鏄劇ずexpr1
coalesce(expr1,expr2,...,exprn)---浠巈xpr1寮濮嬩緷嬈℃壘鍒頒笉涓虹┖鐨別xpr錛屾壘鍒板氨鏄劇ず錛岀洿鍒版渶鍚庯紝鍚﹀垯鏄?/p>
紺篹xprn
case琛ㄨ揪寮忥紝濡備笅鍥?
聽
6>澶氳〃鏌ヨ
瀵規櫘閫氱殑澶氳〃鏌ヨ錛屼篃灝辨槸涓嶅姞where鏉′歡鐨勬椂鍊欏疄闄呬笂鏌ヨ緇撴灉鏄悇琛ㄧ殑絎涘崱灝旈泦
澶栬繛鎺ワ細oracle瀹炵幇澶栬繛鎺ユ椂鍦?鍙風殑浜岃竟鍔?鍙峰氨OK錛屽綋+鍦ㄥ乏杈規椂縐頒負鍙寵繛鎺ワ紝鍙嶄箣涓哄乏榪炴帴,瀹冨父甯哥敤鏉ュ綋瑕佹眰鏈彈闄愬埗瀵硅薄鐨勮〃鏁版嵁涔熻姹傛樉紺烘椂錛屽涓嬶細
select * from student
ID NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ADDRESS
-------------------- --------------
1 zhangshan聽聽聽聽聽聽聽聽聽聽聽 zhejiang
3 lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
7 lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
select * from person
ID NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ADDRESS
- -------------------- -----------
1 zhangshan聽聽聽聽聽聽聽聽聽聽聽 zhejiang
3 lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
7 lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
select p.id,p.sex,s.id,s.name,s.address from person p ,student s where p.id(+) = s.id
ID SEX聽聽聽聽聽聽聽聽聽 ID NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ADDRESS
-- ---- ---------- -------------------- ------------
聽1 boy聽聽聽聽聽聽聽聽聽聽 1 zhangshan聽聽聽聽聽聽聽聽聽聽聽 zhejiang
聽3 girl聽聽聽聽聽聽聽聽聽 3 lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 7 lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
select p.id,p.sex,s.id,s.name,s.address from person p ,student s where p.id = s.id(+)
ID SEX聽聽聽聽聽聽聽聽聽 ID NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ADDRESS
-- ---- ---------- -------------------- --------------
聽1 boy聽聽聽聽聽聽聽聽聽聽 1 zhangshan聽聽聽聽聽聽聽聽聽聽聽 zhejiang
聽2 girl
聽3 girl聽聽聽聽聽聽聽聽聽 3 lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
聽4 boy
聽5 girl
self-join錛屽氨鏄悓涓寮犺〃榪炴帴錛岀敤鑷繛鎺ョ殑鏃跺欒娉ㄦ剰鎺掗櫎閲嶅鐨勮褰曪紙鑷韓錛屽驚鐜噸澶嶇瓑錛夛紝姣斿璇存壘鍑簊tudent琛ㄤ腑鎵鏈変綇鍦ㄥ悓涓涓湴鏂圭殑浜恒?br />select * from student
聽ID NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ADDRESS
--- -------------------- ---------
聽 1 zhangshan聽聽聽聽聽聽聽聽聽聽聽 zhejiang
聽 3 lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
聽 7 lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
聽 2 name2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
聽 4 name4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
聽 5 name5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
聽 6 name6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 shanghai
聽 8 name8聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 shanghai
娌℃湁鎺掗櫎閲嶅璁板綍鏃剁殑緇撴灉錛?br />聽select t1.name,t2.name
聽from student t1, student t2
聽where t1.address = t2.address
NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 NAME
-------------------- --------------
lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lily
name2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lily
name4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lily
lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name2
name2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name2
name4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name2
lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name4
name2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name4
name4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name4
lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lishi
name5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lishi
NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 NAME
-------------------- --------------
lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name5
name5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name5
name6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name6
name8聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name6
name6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name8
name8聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name8
zhangshan聽聽聽聽聽聽聽聽聽聽聽 zhangshan
宸查夋嫨18琛?/p>
鎺掗櫎閲嶅涓庡驚鐜褰曚箣鍚庯細
select t1.name,t2.name,t1.address
聽from student t1, student t2
聽where t1.address = t2.address
and t1.id > t2.id
NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 NAME聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ADDRESS
-------------------- -------------------- -------------------
lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
name4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name2聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
lily聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name4聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 guangzhou
name5聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 lishi聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 hangzhou
name8聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 name6聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 shanghai
cross join,鏃犳潯浠惰繛鎺ワ紝瀹為檯涓婅窡涓嶅甫where鏃朵竴鏍峰緱鍒扮殑鏄瑳鍗″皵闆?/p>
natural join錛堜篃鍙互鐩存帴璁頒綔join錛夛紝鏍規嵁琛ㄤ腑鍚屽悕鏍忎綅鏉ヨ繛鎺ヨ褰?鑻ヨ〃涓彲鑳藉嚭鐜板涓悓鍚嶆爮浣嶏紝鍒欑敤using(col_name)鏉ユ寚瀹氭墍鏍忎綅銆俢olname涓嶈兘鎸囧畾琛ㄧ殑鍒悕錛侀檺鍒舵潯浠剁敤on鏉ユ寚瀹?br />select id,p.sex,id,s.name from person p join student s using(id);
聽 ID SEX聽聽聽聽聽聽聽聽聽 ID NAME
---- ---- ---------- --------------------
聽聽 1 boy聽聽聽聽聽聽聽聽聽聽 1 zhangshan
聽聽 2 girl聽聽聽聽聽聽聽聽聽 2 name2
聽聽 3 girl聽聽聽聽聽聽聽聽聽 3 lishi
聽聽 4 boy聽聽聽聽聽聽聽聽聽聽 4 name4
聽聽 5 girl聽聽聽聽聽聽聽聽聽 5 name5
鍦╯ql鏍囧噯璇硶涓?宸?鍙?榪炴帴鐢╨eft(right) out join,闄愬埗鏉′歡鐢╫n灝卞彲浠ヤ簡銆?/p>
full out join瀹屽叏澶栬繛鎺?欏懼悕鎬濅箟灝辨槸宸﹀榪炴帴涓庡彸澶栬繛鎺ラ兘鏈?br />select id,p.sex,id,s.name from person p full join student s using(id);
聽 ID SEX聽聽聽聽聽聽聽聽聽 ID NAME
---- ---- ---------- ------------------
聽聽 1 boy聽聽聽聽聽聽聽聽聽聽 1 zhangshan
聽聽 3 girl聽聽聽聽聽聽聽聽聽 3 lishi
聽聽 2 girl聽聽聽聽聽聽聽聽聽 2 name2
聽聽 4 boy聽聽聽聽聽聽聽聽聽聽 4 name4
聽聽 5 girl聽聽聽聽聽聽聽聽聽 5 name5
聽聽 8聽聽聽聽聽聽聽聽聽聽聽聽聽聽 8 name8
聽聽 6聽聽聽聽聽聽聽聽聽聽聽聽聽聽 6 name6
聽聽 7聽聽聽聽聽聽聽聽聽聽聽聽聽聽 7 lily