锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
涓嬪垪璇彞閮ㄥ垎鏄疢ssql璇彞錛屼笉鍙互鍦╝ccess涓嬌鐢ㄣ?
SQL鍒嗙被錛?
銆銆DDL鈥旀暟鎹畾涔夎璦(CREATE錛孉LTER錛孌ROP錛孌ECLARE)
銆銆DML鈥旀暟鎹搷綰佃璦(SELECT錛孌ELETE錛孶PDATE錛孖NSERT)
銆銆DCL鈥旀暟鎹帶鍒惰璦(GRANT錛孯EVOKE錛孋OMMIT錛孯OLLBACK)
銆銆棣栧厛,綆瑕佷粙緇嶅熀紜璇彞錛?br />
1銆佽鏄庯細鍒涘緩鏁版嵁搴?br />
CREATE DATABASE database-name
2銆佽鏄庯細鍒犻櫎鏁版嵁搴?br /> drop database dbname
3銆佽鏄庯細澶囦喚sql server
銆銆--- 鍒涘緩 澶囦喚鏁版嵁鐨?device
USE master
EXEC sp_addumpdevice ’disk’, ’testBack’,
’c:mssql7backupMyNwind_1.dat’
銆銆--- 寮濮?澶囦喚
BACKUP DATABASE pubs TO testBack
4銆佽鏄庯細鍒涘緩鏂拌〃
create table tabname(col1 type1 [not null]
[primary key],col2 type2 [not null],..)
銆銆鏍規嵁宸叉湁鐨勮〃鍒涘緩鏂拌〃錛?
A錛歝reate table tab_new like tab_old (浣跨敤鏃ц〃鍒涘緩鏂拌〃)
B錛歝reate table tab_new as select col1,col2… from
tab_old definition only
5銆佽鏄庯細
銆銆鍒犻櫎鏂拌〃錛歞rop table tabname
6銆佽鏄庯細
銆銆澧炲姞涓涓垪錛欰lter table tabname add column col type
銆銆娉細鍒楀鍔犲悗灝嗕笉鑳藉垹闄ゃ侱B2涓垪鍔犱笂鍚庢暟鎹被鍨嬩篃涓嶈兘鏀瑰彉錛屽敮涓鑳芥敼鍙樼殑鏄鍔爒archar綾誨瀷鐨勯暱搴︺?/p>
7銆佽鏄庯細
銆銆娣誨姞涓婚敭錛欰lter table tabname add primary key(col)
銆銆璇存槑錛?br />
銆銆鍒犻櫎涓婚敭錛欰lter table tabname drop primary key(col)
8銆佽鏄庯細
銆銆鍒涘緩绱㈠紩錛歝reate [unique] index idxname on tabname(col….)
銆銆鍒犻櫎绱㈠紩錛歞rop index idxname
銆銆娉細绱㈠紩鏄笉鍙洿鏀圭殑錛屾兂鏇存敼蹇呴』鍒犻櫎閲嶆柊寤恒?/p>
9銆佽鏄庯細
銆銆鍒涘緩瑙嗗浘錛歝reate view viewname as select statement
鍒犻櫎瑙嗗浘錛歞rop view viewname
10銆佽鏄庯細鍑犱釜綆鍗曠殑鍩烘湰鐨剆ql璇彞
銆銆閫夋嫨錛歴elect * from table1 where 鑼冨洿
銆銆鎻掑叆錛歩nsert into table1(field1,field2) values(value1,value2)
銆銆鍒犻櫎錛歞elete from table1 where 鑼冨洿
銆銆鏇存柊錛歶pdate table1 set field1=value1 where 鑼冨洿
銆銆鏌ユ壘錛歴elect * from table1 where field1 like ’%value1%’ ---like鐨勮娉曞緢綺懼錛屾煡璧勬枡!
銆銆鎺掑簭錛歴elect * from table1 order by field1,field2 [desc]
銆銆鎬繪暟錛歴elect count * as totalcount from table1
銆銆姹傚拰錛歴elect sum(field1) as sumvalue from table1
銆銆騫沖潎錛歴elect avg(field1) as avgvalue from table1
銆銆鏈澶э細select max(field1) as maxvalue from table1
銆銆鏈灝忥細select min(field1) as minvalue from table1
11銆佽鏄庯細鍑犱釜楂樼駭鏌ヨ榪愮畻璇?br />
銆銆A錛?UNION 榪愮畻絎?
銆銆UNION 榪愮畻絎﹂氳繃緇勫悎鍏朵粬涓や釜緇撴灉琛紙渚嬪 TABLE1 鍜?TABLE2錛夊茍娑堝幓琛ㄤ腑浠諱綍閲嶅琛岃屾淳鐢熷嚭涓涓粨鏋滆〃銆傚綋 ALL 闅?UNION 涓璧蜂嬌鐢ㄦ椂錛堝嵆 UNION ALL錛夛紝涓嶆秷闄ら噸澶嶈銆備袱縐嶆儏鍐典笅錛屾淳鐢熻〃鐨勬瘡涓琛屼笉鏄潵鑷?TABLE1 灝辨槸鏉ヨ嚜
TABLE2銆?br />
銆銆B錛?EXCEPT 榪愮畻絎?
銆銆EXCEPT 榪愮畻絎﹂氳繃鍖呮嫭鎵鏈夊湪 TABLE1 涓絾涓嶅湪 TABLE2 涓殑琛屽茍娑堥櫎鎵鏈夐噸澶嶈鑰屾淳鐢熷嚭涓涓粨鏋滆〃銆傚綋 ALL 闅?EXCEPT 涓璧蜂嬌鐢ㄦ椂 (EXCEPT ALL)錛屼笉娑堥櫎閲嶅琛屻?
銆銆C錛?INTERSECT 榪愮畻絎?br />
銆銆INTERSECT 榪愮畻絎﹂氳繃鍙寘鎷?TABLE1 鍜?TABLE2 涓兘鏈夌殑琛屽茍娑堥櫎鎵鏈夐噸澶嶈鑰屾淳鐢熷嚭涓涓粨鏋滆〃銆傚綋 ALL 闅?INTERSECT 涓璧蜂嬌鐢ㄦ椂 (INTERSECT ALL)錛屼笉娑堥櫎閲嶅琛屻?br />
銆銆娉細浣跨敤榪愮畻璇嶇殑鍑犱釜鏌ヨ緇撴灉琛屽繀欏繪槸涓鑷寸殑銆?/p>
12銆佽鏄庯細浣跨敤澶栬繛鎺?
銆銆A銆乴eft outer join錛?
銆銆宸﹀榪炴帴錛堝乏榪炴帴錛夛細緇撴灉闆嗗嚑鍖呮嫭榪炴帴琛ㄧ殑鍖歸厤琛岋紝涔熷寘鎷乏榪炴帴琛ㄧ殑鎵鏈夎銆?
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
銆銆B錛歳ight outer join:
銆銆鍙沖榪炴帴(鍙寵繛鎺?錛氱粨鏋滈泦鏃㈠寘鎷繛鎺ヨ〃鐨勫尮閰嶈繛鎺ヨ錛屼篃鍖呮嫭鍙寵繛鎺ヨ〃鐨勬墍鏈夎銆?br />
銆銆C錛歠ull outer join錛?
銆銆鍏ㄥ榪炴帴錛氫笉浠呭寘鎷鍙瘋繛鎺ヨ〃鐨勫尮閰嶈錛岃繕鍖呮嫭涓や釜榪炴帴琛ㄤ腑鐨勬墍鏈夎褰曘?/p>
鍏舵錛屽ぇ瀹舵潵鐪嬩竴浜涗笉閿欑殑sql璇彞
銆銆1銆佽鏄庯細澶嶅埗琛?鍙鍒剁粨鏋?婧愯〃鍚嶏細a 鏂拌〃鍚嶏細b) (Access鍙敤)
銆銆娉曚竴錛歴elect * into b from a where 1<>1
銆銆娉曚簩錛歴elect top 0 * into b from a
銆銆2銆佽鏄庯細鎷瘋礉琛?鎷瘋礉鏁版嵁,婧愯〃鍚嶏細a 鐩爣琛ㄥ悕錛歜) (Access鍙敤)
insert into b(a, b, c) select d,e,f from b;
銆銆3銆佽鏄庯細璺ㄦ暟鎹簱涔嬮棿琛ㄧ殑鎷瘋礉(鍏蜂綋鏁版嵁浣跨敤緇濆璺緞) (Access鍙敤)
insert into b(a, b, c) select d,e,f from b in
‘鍏蜂綋鏁版嵁搴?#8217; where 鏉′歡
銆銆渚嬪瓙錛?.from b in ’"&Server.MapPath(".")&"data.mdb" &"’ where..
銆銆4銆佽鏄庯細瀛愭煡璇?琛ㄥ悕1錛歛 琛ㄥ悕2錛歜)
select a,b,c from a where a IN (select d from b )
鎴栬? select a,b,c from a where a IN (1,2,3)
銆銆5銆佽鏄庯細鏄劇ず鏂囩珷銆佹彁浜や漢鍜屾渶鍚庡洖澶嶆椂闂?br />
select a.title,a.username,b.adddate from table
a,(select max(adddate) adddate from table where
table.title=a.title) b
6銆佽鏄庯細澶栬繛鎺ユ煡璇?琛ㄥ悕1錛歛 琛ㄥ悕2錛歜)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT
OUT JOIN b ON a.a = b.c
銆銆7銆佽鏄庯細鍦ㄧ嚎瑙嗗浘鏌ヨ(琛ㄥ悕1錛歛 )
select * from (SELECT a,b,c FROM a) T where t.a >
1;
銆銆8銆佽鏄庯細between鐨勭敤娉?between闄愬埗鏌ヨ鏁版嵁鑼冨洿鏃跺寘鎷簡杈圭晫鍊?not between涓嶅寘鎷?br />
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 鏁板? and 鏁板?
銆銆9銆佽鏄庯細in 鐨勪嬌鐢ㄦ柟娉?br />
select * from table1 where a [not] in (‘鍊?’,’鍊?’,’鍊?’,’鍊?’)
銆銆10銆佽鏄庯細涓ゅ紶鍏寵仈琛紝鍒犻櫎涓昏〃涓凡緇忓湪鍓〃涓病鏈夌殑淇℃伅
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
銆銆11銆佽鏄庯細鍥涜〃鑱旀煡闂錛?br />
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
銆銆12銆佽鏄庯細鏃ョ▼瀹夋帓鎻愬墠浜斿垎閽熸彁閱?br />
SQL: select * from 鏃ョ▼瀹夋帓 where datediff(’minute’,f寮濮嬫椂闂?getdate())>5
銆銆13銆佽鏄庯細涓鏉ql 璇彞鎼炲畾鏁版嵁搴撳垎欏?br />
select top 10 b.* from (select top 20 涓婚敭瀛楁,鎺掑簭瀛楁 from 琛ㄥ悕 order by 鎺掑簭瀛楁 desc) a,琛ㄥ悕 b where b.涓婚敭瀛楁 = a.涓婚敭瀛楁 order by a.鎺掑簭瀛楁
銆銆14銆佽鏄庯細鍓?0鏉¤褰?br />
select top 10 * form table1 where 鑼冨洿
銆銆15銆佽鏄庯細閫夋嫨鍦ㄦ瘡涓緇刡鍊肩浉鍚岀殑鏁版嵁涓搴旂殑a鏈澶х殑璁板綍鐨勬墍鏈変俊鎭?綾諱技榪欐牱鐨勭敤娉曞彲浠ョ敤浜庤鍧涙瘡鏈堟帓琛屾,姣忔湀鐑攢浜у搧鍒嗘瀽,鎸夌鐩垚緇╂帓鍚?絳夌瓑.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
銆銆16銆佽鏄庯細鍖呮嫭鎵鏈夊湪 TableA 涓絾涓嶅湪 TableB鍜孴ableC 涓殑琛屽茍娑堥櫎鎵鏈夐噸澶嶈鑰屾淳鐢熷嚭涓涓粨鏋滆〃
(select a from tableA ) except (select a from tableB) except (select a from tableC)
銆銆17銆佽鏄庯細闅忔満鍙栧嚭10鏉℃暟鎹?br />
select top 10 * from tablename order by newid()
銆銆18銆佽鏄庯細闅忔満閫夋嫨璁板綍
select newid()
銆銆19銆佽鏄庯細鍒犻櫎閲嶅璁板綍
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
銆銆20銆佽鏄庯細鍒楀嚭鏁版嵁搴撻噷鎵鏈夌殑琛ㄥ悕
select name from sysobjects where type=’U’
21銆佽鏄庯細鍒楀嚭琛ㄩ噷鐨勬墍鏈夌殑
select name from syscolumns where id=object_id(’TableName’)
銆銆22銆佽鏄庯細鍒楃ずtype銆乿ender銆乸cs瀛楁錛屼互type瀛楁鎺掑垪錛宑ase鍙互鏂逛究鍦板疄鐜板閲嶉夋嫨錛岀被浼約elect 涓殑case銆?br />
select type,sum(case vender when ’A’ then pcs else 0 end),sum(case vender when ’C’ then pcs else 0 end),sum(case vender when ’B’ then pcs else 0 end) FROM tablename group by type
銆銆鏄劇ず緇撴灉錛?br />
type vender pcs
鐢佃剳 A 1
鐢佃剳 A 1
鍏夌洏 B 2
鍏夌洏 A 2
鎵嬫満 B 3
鎵嬫満 C 3
銆銆23銆佽鏄庯細鍒濆鍖栬〃table1
TRUNCATE TABLE table1
銆銆24銆佽鏄庯細閫夋嫨浠?0鍒?5鐨勮褰?br />
select top 5 * from (select top 15 * from table order by id asc) table_鍒悕 order by id desc
銆銆闅忔満閫夋嫨鏁版嵁搴撹褰曠殑鏂規硶錛堜嬌鐢≧andomize鍑芥暟錛岄氳繃SQL璇彞瀹炵幇錛?br />
銆銆瀵瑰瓨鍌ㄥ湪鏁版嵁搴撲腑鐨勬暟鎹潵璇達紝闅忔満鏁扮壒鎬ц兘緇欏嚭涓婇潰鐨勬晥鏋滐紝浣嗗畠浠彲鑳藉お鎱簡浜涖備綘涓嶈兘瑕佹眰ASP“鎵句釜闅忔満鏁?#8221;鐒跺悗鎵撳嵃鍑烘潵銆傚疄闄呬笂甯歌鐨勮В鍐蟲柟妗堟槸寤虹珛濡備笅鎵紺虹殑寰幆錛?br />
Randomize
RNumber = Int(Rnd*499) +1
銆
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 榪欓噷鏄墽琛岃剼鏈?...
end if
objRec.MoveNext
Wend
銆銆榪欏緢瀹規槗鐞嗚В銆傞鍏堬紝浣犲彇鍑?鍒?00鑼冨洿涔嬪唴鐨勪竴涓殢鏈烘暟錛堝亣璁?00灝辨槸鏁版嵁搴撳唴璁板綍鐨勬繪暟錛夈傜劧鍚庯紝浣犻亶鍘嗘瘡涓璁板綍鏉ユ祴璇旾D
鐨勫箋佹鏌ュ叾鏄惁鍖歸厤RNumber銆傛弧瓚蟲潯浠剁殑璇濆氨鎵ц鐢盩HEN
鍏抽敭瀛楀紑濮嬬殑閭d竴鍧椾唬鐮併傚亣濡備綘鐨凴Number
絳変簬495錛岄偅涔堣寰幆涓閬嶆暟鎹簱鑺辯殑鏃墮棿鍙氨闀夸簡銆傝櫧鐒?00榪欎釜鏁板瓧鐪嬭搗鏉ュぇ浜嗕簺錛屼絾鐩告瘮鏇翠負紼沖浐鐨勪紒涓氳В鍐蟲柟妗堣繖榪樻槸涓皬鍨嬫暟鎹簱浜嗭紝鍚庤呴氬父鍦ㄤ竴涓暟鎹簱鍐呭氨鍖呭惈浜嗘垚鍗冧笂涓囨潯璁板綍銆傝繖鏃跺欎笉灝辨瀹氫簡錛?
銆銆閲囩敤SQL錛屼綘灝卞彲浠ュ緢蹇湴鎵懼嚭鍑嗙‘鐨勮褰曞茍涓旀墦寮涓涓彧鍖呭惈璇ヨ褰曠殑recordset錛屽涓嬫墍紺猴細
Randomize
RNumber = Int(Rnd*499) + 1
銆
SQL = "SELECT * FROM Customers WHERE ID = " &
RNumber
銆
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " "
& objRec("c_email")
銆銆涓嶅繀鍐欏嚭RNumber 鍜孖D錛屼綘鍙渶瑕佹鏌ュ尮閰嶆儏鍐靛嵆鍙傚彧瑕佷綘瀵逛互涓婁唬鐮佺殑宸ヤ綔婊℃剰錛屼綘鑷彲鎸夐渶鎿嶄綔“闅忔満”璁板綍銆俁ecordset娌℃湁鍖呭惈鍏朵粬鍐呭錛屽洜姝や綘寰堝揩灝辮兘鎵懼埌浣犻渶瑕佺殑璁板綍榪欐牱灝卞ぇ澶ч檷浣庝簡澶勭悊鏃墮棿銆?br />
鍐嶈皥闅忔満鏁?/p>
銆銆鐜板湪浣犱笅瀹氬喅蹇冭姒ㄥ共Random 鍑芥暟鐨勬渶鍚庝竴婊存補錛岄偅涔堜綘鍙兘浼氫竴嬈″彇鍑哄鏉¢殢鏈鴻褰曟垨鑰呮兂閲囩敤涓瀹氶殢鏈鴻寖鍥村唴鐨勮褰曘傛妸涓婇潰鐨勬爣鍑哛andom
紺轟緥鎵╁睍涓涓嬪氨鍙互鐢⊿QL搴斿涓婇潰涓ょ鎯呭喌浜嗐?br />
銆銆涓轟簡鍙栧嚭鍑犳潯闅忔満閫夋嫨鐨勮褰曞茍瀛樻斁鍦ㄥ悓涓recordset鍐咃紝浣犲彲浠ュ瓨鍌ㄤ笁涓殢鏈烘暟錛岀劧鍚庢煡璇㈡暟鎹簱鑾峰緱鍖歸厤榪欎簺鏁板瓧鐨勮褰曪細
銆銆SQL = "SELECT * FROM Customers WHERE ID = " &
RNumber & " OR ID = " & RNumber2 & " OR ID = " &
RNumber3
銆銆鍋囧浣犳兂閫夊嚭10鏉¤褰曪紙涔熻鏄瘡嬈¢〉闈㈣杞芥椂鐨?0鏉¢摼鎺ョ殑鍒楄〃錛夛紝浣犲彲浠ョ敤BETWEEN 鎴栬呮暟瀛︾瓑寮忛夊嚭絎竴鏉¤褰曞拰閫傚綋鏁伴噺鐨勯掑璁板綍銆傝繖涓鎿嶄綔鍙互閫氳繃濂藉嚑縐嶆柟寮忔潵瀹屾垚錛屼絾鏄?SELECT
璇彞鍙樉紺轟竴縐嶅彲鑳斤紙榪欓噷鐨処D 鏄嚜鍔ㄧ敓鎴愮殑鍙風爜錛夛細
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
銆銆娉ㄦ剰錛氫互涓婁唬鐮佺殑鎵ц鐩殑涓嶆槸媯鏌ユ暟鎹簱鍐呮槸鍚︽湁9鏉″茍鍙戣褰曘?br />
銆銆闅忔満璇誨彇鑻ュ共鏉¤褰曪紝嫻嬭瘯榪?br />
Access璇硶錛歋ELECT top 10 * From 琛ㄥ悕 ORDER BY Rnd(id)
Sql server:select top n * from 琛ㄥ悕 order by newid()
mysql select * From 琛ㄥ悕 Order By rand() Limit n
銆銆Access宸﹁繛鎺ヨ娉?鏈榪戝紑鍙戣鐢ㄥ乏榪炴帴,Access甯姪浠涔堥兘娌℃湁,緗戜笂娌℃湁Access鐨凷QL璇存槑,鍙湁鑷繁嫻嬭瘯, 鐜板湪璁頒笅浠ュ鍚庢煡)
銆銆璇硶 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
銆銆浣跨敤SQL璇彞 鐢?..浠f浛榪囬暱鐨勫瓧絎︿覆鏄劇ず
銆銆璇硶錛?br />
銆銆SQL鏁版嵁搴擄細select case when len(field)>10 then left(field,10)+’...’ else field end as news_name,news_id from tablename
銆銆Access鏁版嵁搴擄細SELECT iif(len(field)>2,left(field,2)+’...’,field) FROM tablename;
銆銆Conn.Execute璇存槑
銆銆Execute鏂規硶
銆銆璇ユ柟娉曠敤浜庢墽琛孲QL璇彞銆傛牴鎹甋QL璇彞鎵ц鍚庢槸鍚﹁繑鍥炶褰曢泦錛岃鏂規硶鐨勪嬌鐢ㄦ牸寮忓垎涓轟互涓嬩袱縐嶏細
銆銆1錛庢墽琛孲QL鏌ヨ璇彞鏃訛紝灝嗚繑鍥炴煡璇㈠緱鍒扮殑璁板綍闆嗐傜敤娉曚負錛?br />
銆銆Set 瀵硅薄鍙橀噺鍚?榪炴帴瀵硅薄.Execute("SQL 鏌ヨ璇█")
銆銆Execute鏂規硶璋冪敤鍚庯紝浼氳嚜鍔ㄥ垱寤鴻褰曢泦瀵硅薄錛屽茍灝嗘煡璇㈢粨鏋滃瓨鍌ㄥ湪璇ヨ褰曞璞′腑錛岄氳繃Set鏂規硶錛屽皢璁板綍闆嗚祴緇欐寚瀹氱殑瀵硅薄淇濆瓨錛屼互鍚庡璞″彉閲忓氨浠h〃浜嗚璁板綍闆嗗璞°?br />
銆銆2錛庢墽琛孲QL鐨勬搷浣滄ц璦鏃訛紝娌℃湁璁板綍闆嗙殑榪斿洖銆傛鏃剁敤娉曚負錛?br />
銆銆榪炴帴瀵硅薄.Execute "SQL 鎿嶄綔鎬ц鍙? [, RecordAffected][, Option]
銆銆·RecordAffected
涓哄彲閫夐」錛屾鍑哄彲鏀劇疆涓涓彉閲忥紝SQL璇彞鎵ц鍚庯紝鎵鐢熸晥鐨勮褰曟暟浼氳嚜鍔ㄤ繚瀛樺埌璇ュ彉閲忎腑銆傞氳繃璁塊棶璇ュ彉閲忥紝灝卞彲鐭ラ亾SQL璇彞闃熷灝戞潯璁板綍榪涜浜嗘搷浣溿?br />
銆銆·Option
鍙夐」錛岃鍙傛暟鐨勫彇鍊奸氬父涓篴dCMDText錛屽畠鐢ㄤ簬鍛婅瘔ADO錛屽簲璇ュ皢Execute鏂規硶涔嬪悗鐨勭涓涓瓧絎﹁В閲婁負鍛戒護鏂囨湰銆傞氳繃鎸囧畾璇ュ弬鏁幫紝鍙嬌鎵ц鏇撮珮鏁堛?br />
銆銆·BeginTrans銆丷ollbackTrans銆丆ommitTrans鏂規硶
銆銆榪欎笁涓柟娉曟槸榪炴帴瀵硅薄鎻愪緵鐨勭敤浜庝簨鍔″鐞嗙殑鏂規硶銆侭eginTrans鐢ㄤ簬寮濮嬩竴涓簨鐗╋紱RollbackTrans鐢ㄤ簬鍥炴粴浜嬪姟錛汣ommitTrans鐢ㄤ簬鎻愪氦鎵鏈夌殑浜嬪姟澶勭悊緇撴灉錛屽嵆紜浜嬪姟鐨勫鐞嗐?br />
銆銆浜嬪姟澶勭悊鍙互灝嗕竴緇勬搷浣滆涓轟竴涓暣浣擄紝鍙湁鍏ㄩ儴璇彞閮芥垚鍔熸墽琛屽悗錛屼簨鍔″鐞嗘墠綆楁垚鍔燂紱鑻ュ叾涓湁涓涓鍙ユ墽琛屽け璐ワ紝鍒欐暣涓鐞嗗氨綆楀け璐ワ紝騫舵仮澶嶅埌澶勯噷鍓嶇殑鐘舵併?br />
銆銆BeginTrans鍜孋ommitTrans鐢ㄤ簬鏍囪浜嬪姟鐨勫紑濮嬪拰緇撴潫錛屽湪榪欎袱涓箣闂寸殑璇彞錛屽氨鏄綔涓轟簨鍔″鐞嗙殑璇彞銆傚垽鏂簨鍔″鐞嗘槸鍚︽垚鍔燂紝鍙氳繃榪炴帴瀵硅薄鐨凟rror闆嗗悎鏉ュ疄鐜幫紝鑻rror闆嗗悎鐨勬垚鍛樹釜鏁頒笉涓?錛屽垯璇存槑鏈夐敊璇彂鐢燂紝浜嬪姟澶勭悊澶辮觸銆侲rror闆嗗悎涓殑姣忎竴涓狤rror瀵硅薄錛屼唬琛ㄤ竴涓敊璇俊鎭?br />
Reader鍜學riter
Java紼嬪簭璇█浣跨敤Unicode鏉ヨ〃紺哄瓧絎︿覆鍜屽瓧絎︺?br />Reader鍜學riter榪欎袱涓娊璞$被涓昏鐢ㄦ潵璇誨啓瀛楃嫻併?br />聽
java.io鍖呬腑Reader鐨勭被灞傛
-------------------------------------------------------------------------------
------------
Java API:
------------
java.io
綾?Reader
java.lang.Object
聽 java.io.Reader
鎵鏈夊凡瀹炵幇鐨勬帴鍙o細
Closeable, Readable
鐩存帴宸茬煡瀛愮被錛?
BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader
public abstract class Reader
extends Object
implements Readable, Closeable
鐢ㄤ簬璇誨彇瀛楃嫻佺殑鎶借薄綾匯傚瓙綾誨繀欏誨疄鐜扮殑鏂規硶鍙湁 read(char[], int, int) 鍜?close()銆備絾鏄紝澶氭暟瀛愮被灝嗛噸鍐欐澶勫畾涔夌殑涓浜涙柟娉曪紝浠ユ彁渚涙洿楂樼殑鏁堢巼鍜?鎴栧叾浠栧姛鑳姐?
浠庝互涓嬬増鏈紑濮嬶細
JDK1.1
-------------------------------------------------------------------------------
------------
Java API:
------------
java.io
綾?BufferedReader
java.lang.Object
聽 java.io.Reader
聽聽聽聽聽 java.io.BufferedReader
鎵鏈夊凡瀹炵幇鐨勬帴鍙o細
Closeable, Readable
鐩存帴宸茬煡瀛愮被錛?
LineNumberReader
public class BufferedReader
extends Reader
浠庡瓧絎﹁緭鍏ユ祦涓鍙栨枃鏈紝緙撳啿鍚勪釜瀛楃錛屼粠鑰屾彁渚涘瓧絎︺佹暟緇勫拰琛岀殑楂樻晥璇誨彇銆?
鍙互鎸囧畾緙撳啿鍖虹殑澶у皬錛屾垨鑰呭彲浣跨敤榛樿鐨勫ぇ灝忋傚ぇ澶氭暟鎯呭喌涓嬶紝榛樿鍊煎氨瓚沖澶т簡銆?
閫氬父錛孯eader 鎵浣滅殑姣忎釜璇誨彇璇鋒眰閮戒細瀵艱嚧瀵瑰熀紜瀛楃鎴栧瓧鑺傛祦榪涜鐩稿簲鐨勮鍙栬姹傘傚洜姝わ紝寤鴻鐢?BufferedReader 鍖呰鎵鏈夊叾 read() 鎿嶄綔鍙兘寮閿寰堥珮鐨?Reader錛堝 FileReader 鍜?InputStreamReader錛夈備緥濡傦紝
聽BufferedReader in
聽聽 = new BufferedReader(new FileReader("foo.in"));
聽
灝嗙紦鍐叉寚瀹氭枃浠剁殑杈撳叆銆傚鏋滄病鏈夌紦鍐詫紝鍒欐瘡嬈¤皟鐢?read() 鎴?readLine() 閮戒細瀵艱嚧浠庢枃浠朵腑璇誨彇瀛楄妭錛屽茍灝嗗叾杞崲涓哄瓧絎﹀悗榪斿洖錛岃岃繖鏄瀬鍏朵綆鏁堢殑銆?
鍙互瀵逛嬌鐢?DataInputStream 榪涜鎸夊師鏂囪緭鍏ョ殑紼嬪簭榪涜鏈湴鍖栵紝鏂規硶鏄敤鍚堥傜殑 BufferedReader 鏇挎崲姣忎釜 DataInputStream銆?
浠庝互涓嬬増鏈紑濮嬶細
JDK1.1
-------------------------------------------------------------------------------
------------
Java API:
------------
java.io
綾?InputStreamReader
java.lang.Object
聽 java.io.Reader
聽聽聽聽聽 java.io.InputStreamReader
鎵鏈夊凡瀹炵幇鐨勬帴鍙o細
Closeable, Readable
鐩存帴宸茬煡瀛愮被錛?
FileReader
public class InputStreamReader
extends Reader
InputStreamReader 鏄瓧鑺傛祦閫氬悜瀛楃嫻佺殑妗ユ錛氬畠浣跨敤鎸囧畾鐨?charset 璇誨彇瀛楄妭騫跺皢鍏惰В鐮佷負瀛楃銆傚畠浣跨敤鐨勫瓧絎﹂泦鍙互鐢卞悕縐版寚瀹氭垨鏄懼紡緇欏畾錛屽惁鍒欏彲鑳芥帴鍙楀鉤鍙伴粯璁ょ殑瀛楃闆嗐?
姣忔璋冪敤 InputStreamReader 涓殑涓涓?read() 鏂規硶閮戒細瀵艱嚧浠庡熀紜杈撳叆嫻佽鍙栦竴涓垨澶氫釜瀛楄妭銆傝鍚敤浠庡瓧鑺傚埌瀛楃鐨勬湁鏁堣漿鎹紝鍙互鎻愬墠浠庡熀紜嫻佽鍙栨洿澶氱殑瀛楄妭錛屼嬌鍏惰秴榪囨弧瓚沖綋鍓嶈鍙栨搷浣滄墍闇鐨勫瓧鑺傘?
涓轟簡杈懼埌鏈楂樻晥鐜囷紝鍙鑰冭檻鍦?BufferedReader 鍐呭寘瑁?InputStreamReader銆備緥濡傦細
聽BufferedReader in
聽聽 = new BufferedReader(new InputStreamReader(System.in));
聽
浠庝互涓嬬増鏈紑濮嬶細
JDK1.1
java.io鍖呬腑Writer鐨勭被灞傛
-------------------------------------------------------------------------------
------------
Java API:
------------
java.io
綾?Writer
java.lang.Object
聽 java.io.Writer
鎵鏈夊凡瀹炵幇鐨勬帴鍙o細
Closeable, Flushable, Appendable
鐩存帴宸茬煡瀛愮被錛?
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter
public abstract class Writer
extends Object
implements Appendable, Closeable, Flushable
鍐欏叆瀛楃嫻佺殑鎶借薄綾匯傚瓙綾誨繀欏誨疄鐜扮殑鏂規硶浠呮湁 write(char[], int, int)銆乫lush() 鍜?close()銆備絾鏄紝澶氭暟瀛愮被灝嗛噸鍐欐澶勫畾涔夌殑涓浜涙柟娉曪紝浠ユ彁渚涙洿楂樼殑鏁堢巼鍜?鎴栧叾浠栧姛鑳姐?
浠庝互涓嬬増鏈紑濮嬶細
JDK1.1
-------------------------------------------------------------------------------
------------
Java API:
------------
java.io
綾?BufferedWriter
java.lang.Object
聽 java.io.Writer
聽聽聽聽聽 java.io.BufferedWriter
鎵鏈夊凡瀹炵幇鐨勬帴鍙o細
Closeable, Flushable, Appendable
public class BufferedWriter
extends Writer
灝嗘枃鏈啓鍏ュ瓧絎﹁緭鍑烘祦錛岀紦鍐插悇涓瓧絎︼紝浠庤屾彁渚涘崟涓瓧絎︺佹暟緇勫拰瀛楃涓茬殑楂樻晥鍐欏叆銆?
鍙互鎸囧畾緙撳啿鍖虹殑澶у皬錛屾垨鑰呮帴鍙楅粯璁ょ殑澶у皬銆傚湪澶у鏁版儏鍐典笅錛岄粯璁ゅ煎氨瓚沖澶т簡銆?
璇ョ被鎻愪緵浜?newLine() 鏂規硶錛屽畠浣跨敤騫沖彴鑷繁鐨勮鍒嗛殧絎︽蹇碉紝姝ゆ蹇電敱緋葷粺灞炴?line.separator 瀹氫箟銆傚茍闈炴墍鏈夊鉤鍙伴兘浣跨敤鏂拌絎?('\n') 鏉ョ粓姝㈠悇琛屻傚洜姝よ皟鐢ㄦ鏂規硶鏉ョ粓姝㈡瘡涓緭鍑鴻瑕佷紭浜庣洿鎺ュ啓鍏ユ柊琛岀銆?
閫氬父 Writer 灝嗗叾杈撳嚭绔嬪嵆鍙戦佸埌鍩虹瀛楃鎴栧瓧鑺傛祦銆傞櫎闈炶姹傛彁紺鴻緭鍑猴紝鍚﹀垯寤鴻鐢?BufferedWriter 鍖呰鎵鏈夊叾 write() 鎿嶄綔鍙兘寮閿寰堥珮鐨?Writer錛堝 FileWriters 鍜?OutputStreamWriters錛夈備緥濡傦紝
聽PrintWriter out
聽聽 = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
聽
灝嗙紦鍐?PrintWriter 瀵規枃浠剁殑杈撳嚭銆傚鏋滄病鏈夌紦鍐詫紝鍒欐瘡嬈¤皟鐢?print() 鏂規硶浼氬鑷村皢瀛楃杞崲涓哄瓧鑺傦紝鐒跺悗绔嬪嵆鍐欏叆鍒版枃浠訛紝鑰岃繖鏄瀬鍏朵綆鏁堢殑銆?
浠庝互涓嬬増鏈紑濮嬶細
JDK1.1
-------------------------------------------------------------------------------
------------
Java API:
------------
java.io
綾?OutputStreamWriter
java.lang.Object
聽 java.io.Writer
聽聽聽聽聽 java.io.OutputStreamWriter
鎵鏈夊凡瀹炵幇鐨勬帴鍙o細
Closeable, Flushable, Appendable
鐩存帴宸茬煡瀛愮被錛?
FileWriter
public class OutputStreamWriter
extends Writer
OutputStreamWriter 鏄瓧絎︽祦閫氬悜瀛楄妭嫻佺殑妗ユ錛氫嬌鐢ㄦ寚瀹氱殑 charset 灝嗚鍚戝叾鍐欏叆鐨勫瓧絎︾紪鐮佷負瀛楄妭銆傚畠浣跨敤鐨勫瓧絎﹂泦鍙互鐢卞悕縐版寚瀹氭垨鏄懼紡緇欏畾錛屽惁鍒欏彲鑳芥帴鍙楀鉤鍙伴粯璁ょ殑瀛楃闆嗐?
姣忔璋冪敤 write() 鏂規硶閮戒細閽堝緇欏畾鐨勫瓧絎︼紙鎴栧瓧絎﹂泦錛夎皟鐢ㄧ紪鐮佽漿鎹㈠櫒銆傚湪鍐欏叆鍩虹杈撳嚭嫻佷箣鍓嶏紝寰楀埌鐨勮繖浜涘瓧鑺備細鍦ㄧ紦鍐插尯绱Н銆傚彲浠ユ寚瀹氭緙撳啿鍖虹殑澶у皬錛屼笉榪囷紝榛樿鐨勭紦鍐插尯瀵瑰鏁扮敤閫旀潵璇村凡瓚沖澶с傛敞鎰忥紝浼犻掑埌姝?write() 鏂規硶鐨勫瓧絎︽槸鏈紦鍐茬殑銆?
涓轟簡杈懼埌鏈楂樻晥鐜囷紝鍙冭檻灝?OutputStreamWriter 鍖呰鍒?BufferedWriter 涓互閬垮厤棰戠箒璋冪敤杞崲鍣ㄣ備緥濡傦細
聽Writer out
聽聽 = new BufferedWriter(new OutputStreamWriter(System.out));
聽
浠g悊瀵?鏄竴涓瓧絎︼紝瀹冪敱涓や釜 char 鍊煎簭鍒楄〃紺猴細楂?浠g悊欏圭殑鑼冨洿涓?'\uD800' 鍒?'\uDBFF'錛屽畠鍚庨潰璺熺潃鑼冨洿涓?'\uDC00' 鍒?'\uDFFF' 鐨勪綆 浠g悊欏廣傚鏋滅敱浠g悊欏瑰琛ㄧず鐨勫瓧絎︽棤娉曠敱緇欏畾鐨勫瓧絎﹂泦緙栫爜錛屽垯鎶婁緷璧栦簬瀛楃闆嗙殑鏇夸唬搴忓垪 鍐欏叆杈撳嚭嫻併?
閿欒浠g悊鍏冪礌 鎸囩殑鏄悗闈笉璺熶綆浠g悊欏圭殑楂樹唬鐞嗛」錛屾垨鍓嶉潰娌℃湁楂樹唬鐞嗛」鐨勪綆浠g悊欏廣傚皾璇曞啓鍏ュ寘鍚敊璇唬鐞嗗厓绱犵殑瀛楃嫻佹槸闈炴硶鐨勩傚啓鍏ラ敊璇唬鐞嗗厓绱犳椂錛屾綾誨疄渚嬬殑琛屼負鏄笉紜畾鐨勩?
浠庝互涓嬬増鏈紑濮嬶細
JDK1.1
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo1錛氶氳繃瀛楃嫻佸皢瀛楃涓插啓鍏ユ寚瀹氭枃浠躲?br />-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
榪愯緇撴灉錛氬瓧絎︿覆"-------------------------------------------------------------------------------
Demo2錛氶氳繃瀛楃嫻佸皢瀛楃涓插啓鍏ユ寚瀹氭枃浠訛紝鍚屾椂璇誨彇瀛楃嫻併?br />-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
榪愯緇撴灉錛氬瓧絎︿覆"聽聽聽鐒跺悗琚鍙栧嚭鏉ャ?br />-------------------------------------------------------------------------------
Demo3錛氶氳繃瀛楃嫻佹帴鏀舵暟鎹紝鐒跺悗杈撳嚭鍒版帶鍒跺彴銆?br />-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
榪愯緇撴灉錛氭帶鍒跺彴杈撳嚭杈撳叆鐨勫唴瀹廣?br />-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo4錛氶氳繃瀛楃嫻佹帴鏀舵暟鎹紝鐒跺悗杈撳嚭鍒版帶鍒跺彴錛屽悓鏃跺皢杈撳叆鍐呭鍐欏叆
聽聽鎸囧畾鐨勬枃浠朵腑銆?br />-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
榪愯緇撴灉錛氭帶鍒跺彴杈撳嚭杈撳叆鐨勫唴瀹癸紝鍚屾椂杈撳叆鐨勫唴瀹硅鍐欏叆鎸囧畾鐨勬枃浠朵腑銆?br />-------------------------------------------------------------------------------