锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 2008-03-28 15:44:10 from WriteDream 1. INSERT鐨勪竴鑸敤娉?/p>
MySQL涓殑INSERT璇彞鍜屾爣鍑嗙殑INSERT涓嶅お涓鏍鳳紝鍦ㄦ爣鍑嗙殑SQL璇彞涓紝涓嬈℃彃鍏ヤ竴鏉¤褰曠殑INSERT璇彞鍙湁涓縐嶅艦寮忋?/p>
INSERT INTO tablename(鍒楀悕…) VALUES(鍒楀?; 鑰屽湪MySQL涓繕鏈夊彟澶栦竴縐嶅艦寮忋?/p>
INSERT INTO tablename SET column_name1 = value1, column_name2 = value2錛?#8230;; 絎竴縐?a 艒 nclick="javascr墨pt:tagshow(event, '%B7%BD%B7%A8');" target="_self">鏂規硶灝嗗垪鍚嶅拰鍒楀煎垎寮浜嗭紝鍦ㄤ嬌鐢ㄦ椂錛屽垪鍚嶅繀欏誨拰鍒楀肩殑鏁頒竴鑷淬傚涓嬮潰鐨勮鍙ュ悜users琛ㄤ腑鎻掑叆浜嗕竴鏉¤褰曪細 INSERT INTO users(id, name, age) VALUES(123, '濮氭槑', 25); 絎簩縐嶆柟娉曞厑璁稿垪鍚嶅拰鍒楀兼垚瀵瑰嚭鐜板拰浣跨敤錛屽涓嬮潰鐨勮鍙ュ皢浜х敓涓牱鐨勬晥鏋溿?/p>
INSERT INTO users SET id = 123, name = '濮氭槑', age = 25; 濡傛灉浣跨敤浜哠ET鏂瑰紡錛屽繀欏昏嚦灝戜負涓鍒楄祴鍊箋傚鏋滄煇涓涓瓧孌典嬌鐢ㄤ簡鐪佺己鍊鹼紙濡傞粯璁ゆ垨鑷鍊鹼級錛岃繖涓ょ鏂規硶閮藉彲浠ョ渷鐣ヨ繖浜涘瓧孌點傚id瀛楁涓婁嬌鐢ㄤ簡鑷鍊鹼紝涓婇潰涓ゆ潯璇彞鍙互鍐欐垚濡備笅褰㈠紡錛?/p>
INSERT INTO users (name, age) VALUES('濮氭槑',25); INSERT INTO uses SET name = '濮氭槑', age = 25; MySQL鍦╒ALUES涓婁篃鍋氫簡浜涘彉鍖栥傚鏋淰ALUES涓粈涔堥兘涓嶅啓錛岄偅MySQL灝嗕嬌鐢ㄨ〃涓瘡涓鍒楃殑榛樿鍊兼潵鎻掑叆鏂拌褰曘?/p>
INSERT INTO users () VALUES(); 濡傛灉琛ㄥ悕鍚庝粈涔堥兘涓嶅啓錛屽氨琛ㄧず鍚戣〃涓墍鏈夌殑瀛楁璧嬪箋備嬌鐢ㄨ繖縐嶆柟寮忥紝涓嶄粎鍦╒ALUES涓殑鍊艱鍜屽垪鏁頒竴鑷達紝鑰屼笖欏哄簭涓嶈兘棰犲掋?INSERT INTO users VALUES(123, '濮氭槑', 25); 濡傛灉灝咺NSERT璇彞鍐欐垚濡備笅褰㈠紡MySQL灝嗕細鎶ラ敊銆?/p>
INSERT INTO users VALUES('濮氭槑',25); 2. 浣跨敤INSERT鎻掑叆澶氭潯璁板綍 鐪?
鍒拌繖涓爣棰樹篃璁稿ぇ瀹朵細闂紝榪欐湁浠涔堝ソ璇寸殑錛岃皟鐢ㄥ嬈NSERT璇彞涓嶅氨鍙互鎻掑叆澶氭潯璁板綍
浜嗗悧錛佷絾浣跨敤榪欑鏂規硶瑕佸鍔犳湇鍔″櫒鐨勮礋鑽鳳紝鍥犱負錛屾墽琛屾瘡涓嬈QL鏈嶅姟鍣ㄩ兘瑕佸悓鏍峰SQL榪涜鍒嗘瀽銆佷紭鍖栫瓑鎿嶄綔銆傚垢濂組ySQL鎻愪緵浜嗗彟涓縐嶈В鍐蟲柟妗堬紝灝?
鏄嬌鐢ㄤ竴鏉NSERT璇彞鏉ユ彃鍏ュ鏉¤褰曘傝繖騫朵笉鏄爣鍑嗙殑SQL璇硶錛屽洜姝ゅ彧鑳藉湪MySQL涓嬌鐢ㄣ?/p>
INSERT INTO users(name, age) VALUES('濮氭槑', 25), ('姣斿皵.鐩栬尐', 50), ('鐏槦浜?, 600); 涓婇潰鐨処NSERT 璇彞鍚憉sers琛ㄤ腑榪炵畫鎻掑叆浜?鏉¤褰曘傚煎緱娉ㄦ剰鐨勬槸錛屼笂闈㈢殑INSERT璇彞涓殑VALUES鍚庡繀欏繪瘡涓鏉¤褰曠殑鍊兼斁鍒頒竴瀵?…)涓紝涓棿浣跨敤","鍒嗗壊銆傚亣璁炬湁涓涓〃table1 CREATE TABLE table1(n INT)錛?/p>
濡傛灉瑕佸悜table1涓彃鍏?鏉¤褰曪紝涓嬮潰鍐欐硶鏄敊璇殑錛?/p>
INSERT INTO table1 (i) VALUES(1,2,3,4,5); MySQL灝嗕細鎶涘嚭涓嬮潰鐨勯敊璇?/p>
ERROR 1136: Column count doesn't match value count at row 1 鑰屾紜殑鍐欐硶搴旇鏄繖鏍鳳細 INSERT INTO t able1(i) VALUES(1),(2),(3),(4),(5); 褰撶劧錛岃繖縐嶅啓娉曚篃鍙互鐪佺暐鍒楀悕錛岃繖鏍鋒瘡涓瀵規嫭鍙烽噷鐨勫肩殑鏁扮洰蹇呴』涓鑷達紝鑰屼笖榪欎釜鏁扮洰蹇呴』鍜屽垪鏁頒竴鑷淬傚錛?/p>
INSERT INTO t able1 VALUES(1),(2),(3),(4),(5); 3. REPLACE璇彞 鎴戜滑鍦ㄤ嬌鐢?a 艒 nclick="javascr墨pt:tagshow(event, '%CA%FD%BE%DD%BF%E2');" target="_self">鏁版嵁搴?/strong>鏃?
鍙兘浼氱粡甯擱亣鍒拌繖縐嶆儏鍐點傚鏋滀竴涓〃鍦ㄤ竴涓瓧孌典笂寤虹珛浜嗗敮涓绱㈠紩錛屽綋鎴戜滑鍐嶅悜榪欎釜琛ㄤ腑浣跨敤宸茬粡瀛樺湪鐨勯敭鍊兼彃鍏ヤ竴鏉¤褰曪紝閭e皢浼氭姏鍑轟竴涓富閿啿紿佺殑閿欒銆傚綋
鐒訛紝鎴戜滑鍙兘鎯崇敤鏂拌褰曠殑鍊兼潵瑕嗙洊鍘熸潵鐨勮褰曞箋傚鏋滀嬌鐢ㄤ紶緇熺殑鍋氭硶錛屽繀欏誨厛浣跨敤DELETE璇彞鍒犻櫎鍘熷厛鐨勮褰曪紝鐒跺悗鍐嶄嬌鐢↖NSERT鎻掑叆鏂扮殑璁板綍銆?
鑰屽湪MySQL涓負鎴戜滑鎻愪緵浜嗕竴縐嶆柊鐨勮В鍐蟲柟妗堬紝榪欏氨鏄疪EPLACE璇彞銆備嬌鐢≧EPLACE鎻掑叆涓鏉¤褰曟椂錛屽鏋滀笉閲嶅錛孯EPLACE灝卞拰
INSERT鐨勫姛鑳戒竴鏍鳳紝濡傛灉鏈夐噸澶嶈褰曪紝REPLACE灝變嬌鐢ㄦ柊璁板綍鐨勫兼潵鏇挎崲鍘熸潵鐨勮褰曞箋?/p>
浣跨敤REPLACE鐨勬渶澶уソ澶勫氨鏄彲浠ュ皢DELETE鍜孖NSERT鍚堜簩涓轟竴錛屽艦鎴愪竴涓師瀛愭搷浣溿傝繖鏍峰氨鍙互涓嶅繀鑰冭檻鍦ㄥ悓鏃朵嬌鐢―ELETE鍜孖NSERT鏃舵坊鍔犱簨鍔$瓑澶嶆潅鎿嶄綔浜嗐?/p>
鍦ㄤ嬌鐢≧EPLACE鏃訛紝琛ㄤ腑蹇呴』鏈夊敮涓绱㈠紩錛岃屼笖榪欎釜绱㈠紩鎵鍦ㄧ殑瀛楁涓嶈兘鍏佽絀哄鹼紝鍚﹀垯REPLACE灝卞拰INSERT瀹屽叏涓鏍風殑銆?/p>
鍦?
鎵цREPLACE鍚庯紝緋葷粺榪斿洖浜嗘墍褰卞搷鐨勮鏁幫紝濡傛灉榪斿洖1錛岃鏄庡湪琛ㄤ腑騫舵病鏈夐噸澶嶇殑璁?
褰曪紝濡傛灉榪斿洖2錛岃鏄庢湁涓鏉¢噸澶嶈褰曪紝緋葷粺鑷姩鍏堣皟鐢ㄤ簡DELETE鍒犻櫎榪欐潯璁板綍錛岀劧鍚庡啀璁板綍鐢↖NSERT鏉ユ彃鍏ヨ繖鏉¤褰曘傚鏋滆繑鍥炵殑鍊煎ぇ浜?錛岄偅璇存槑
鏈夊涓敮涓绱㈠紩錛屾湁澶氭潯璁板綍琚垹闄ゅ拰鎻掑叆銆?/p>
REPLACE鐨勮娉曞拰INSERT闈炲父鐨勭浉浼鹼紝濡備笅闈㈢殑REPLACE璇彞鏄彃鍏ユ垨鏇存柊涓鏉¤褰曘?/p>
REPLACE INTO users (id,name,age) VALUES(123, '璧墊湰灞?, 50); 鎻掑叆澶氭潯璁板綍錛?/p>
REPLACE INTO users(id, name, age) VALUES(123, '璧墊湰灞?, 50), (134,'Mary',15); REPLACE涔熷彲浠ヤ嬌鐢⊿ET璇彞 REPLACE INTO users SET id = 123, name = '璧墊湰灞?, age = 50; 涓?
闈㈡浘鎻愬埌REPLACE鍙兘褰卞搷3鏉′互涓婄殑璁板綍錛岃繖鏄洜涓哄湪琛ㄤ腑鏈夎秴榪囦竴涓殑鍞竴绱㈠紩銆傚湪
榪欑鎯呭喌涓嬶紝REPLACE灝嗚冭檻姣忎竴涓敮涓绱㈠紩錛屽茍瀵規瘡涓涓儲寮曞搴旂殑閲嶅璁板綍閮藉垹闄わ紝鐒跺悗鎻掑叆榪欐潯鏂拌褰曘傚亣璁炬湁涓涓猼able1琛紝鏈?涓瓧孌礱,
b, c銆傚畠浠兘鏈変竴涓敮涓绱㈠紩銆?/p>
CREATE TABLE table1(a INT NOT NULL UNIQUE,b INT NOT NULL UNIQUE,c INT NOT NULL UNIQUE); 鍋囪table1涓凡緇忔湁浜?鏉¤褰?/p>
a b c 1 1 1 2 2 2 3 3 3 涓嬮潰鎴戜滑浣跨敤REPLACE璇彞鍚憈able1涓彃鍏ヤ竴鏉¤褰曘?/p>
REPLACE INTO table1(a, b, c) VALUES(1,2,3); 榪斿洖鐨勭粨鏋滃涓?/p>
Query OK, 4 rows affected (0.00 sec) 鍦╰able1涓殑璁板綍濡備笅 a b c 1 2 3 鎴戜滑鍙互鐪嬪埌錛孯EPLACE灝嗗師鍏堢殑3鏉¤褰曢兘鍒犻櫎浜嗭紝鐒跺悗灝嗭紙1, 2, 3錛夋彃鍏ャ? 浜屻乁PDATE UPDATE鐨勫姛鑳芥槸鏇存柊琛ㄤ腑鐨勬暟鎹傝繖鐨勮娉曞拰INSERT鐨勭浜岀鐢ㄦ硶鐩鎬技銆傚繀欏繪彁渚涜〃鍚嶄互鍙奡ET琛ㄨ揪寮忥紝鍦ㄥ悗闈㈠彲浠ュ姞WHERE浠ラ檺鍒舵洿鏂扮殑璁板綍鑼冨洿銆?/p>
UPDATE table_anem SET column_name1 = value1, column_name2 = value2, ... WHERE ... ; 濡備笅闈㈢殑璇彞灝唘sers琛ㄤ腑id絳変簬123鐨勮褰曠殑age鏀逛負24 UPDATE users SET age = 24 WHERE id = 123; 鍚屾牱錛屽彲浠ヤ嬌鐢║PDATE鏇存柊澶氫釜瀛楁鐨勫?UPDATE users SET age = 24, name = 'Mike' WHERE id = 123; 涓婇潰鐨刄PDATE璇彞閫氳繃WHERE鎸囧畾涓涓潯浠訛紝鍚﹀垯錛孶PDATE灝嗘洿鏂拌〃涓殑鎵鏈夎褰曠殑鍊箋?/p>
鍦?
浣跨敤UPDATE鏇存柊璁板綍鏃訛紝濡傛灉琚洿鏂扮殑瀛楁鐨勭被鍨嬪拰鎵璧嬬殑鍊間笉鍖歸厤鏃訛紝MySQL灝嗚繖
涓艱漿鎹負鐩稿簲綾誨瀷鐨勫箋傚鏋滆繖涓瓧孌墊槸鏁板肩被鍨嬶紝鑰屼笖鎵璧嬪艱秴榪囦簡榪欎釜鏁版嵁綾誨瀷鐨勬渶澶ц寖鍥達紝閭d箞MySQL灝卞皢榪欎釜鍊艱漿鎹負榪欎釜鑼冨洿鏈澶ф垨鏈灝忓箋傚鏋?
瀛楃涓插お闀匡紝MySQL灝卞皢澶氫綑鐨勫瓧絎︿覆鎴幓銆傚鏋滆緗潪絀哄瓧孌典負絀猴紝閭d箞灝嗚繖涓瓧孌佃緗負瀹冧滑鐨勯粯璁ゅ鹼紝鏁板瓧鐨勯粯璁ゅ兼槸0錛屽瓧絎︿覆鐨勯粯璁ゅ兼槸絀轟覆錛堜笉鏄?
null錛屾槸""錛夈?/p>
鏈変袱縐嶆儏鍐礥PDATE涓嶄細瀵瑰獎鍝嶈〃涓殑鏁版嵁銆?/p>
1. 褰揥HERE涓殑鏉′歡鍦ㄨ〃涓病鏈夎褰曞拰瀹冨尮閰嶆椂銆?/p>
2. 褰撴垜浠皢鍚屾牱鐨勫艱祴緇欐煇涓瓧孌墊椂錛屽灝嗗瓧孌礱bc璧嬩負'123'錛岃宎bc鐨勫師鍊煎氨鏄?123'銆?/p>
鍜孖NSERT銆丷EPLACE涓鏍鳳紝UPDATE涔熻繑鍥炴墍鏇存柊鐨勮褰曟暟銆備絾榪欎簺璁板綍鏁板茍涓嶅寘鎷弧瓚砏HERE鏉′歡鐨勶紝浣嗗嵈鏈鏇存柊鐨勮褰曘傚涓嬪悓鐨刄PDATE璇彞灝辨湭鏇存柊浠諱綍璁板綍銆?/p>
UPDATE users SET age = 30 WHERE id = 12; Query OK, 0 rows affected (0.00 sec) 闇瑕佹敞鎰忕殑鏃訛紝濡傛灉涓涓瓧孌電殑綾誨瀷鏄疶IMESTAMP錛岄偅涔堣繖涓瓧孌靛湪鍏跺畠瀛楁鏇存柊鏃惰嚜鍔ㄦ洿鏂般?/p>
鍦ㄦ湁浜涙椂鍊欐垜浠渶瑕佸緱鍒癠PDATE鎵閫夋嫨鐨勮鏁幫紝鑰屼笉鏄鏇存柊鐨勮鏁般傛垜浠彲浠ラ氳繃涓浜汚PI鏉ヨ揪鍒拌繖涓洰鐨勩傚MySQL鎻愪緵鐨凜 API鎻愪緵浜嗕竴涓夐」鍙互寰楀埌浣犳兂瑕佺殑璁板綍鏁般傝孧ySQL鐨凧DBC椹卞姩寰楀埌鐨勯粯璁よ褰曟暟涔熸槸鍖歸厤鐨勮褰曟暟銆?/p>
UPDATE鍜孯EPLACE鍩烘湰綾諱技錛屼絾鏄畠浠箣闂存湁涓ょ偣涓嶅悓銆?/p>
1. UPDATE鍦ㄦ病鏈夊尮閰嶈褰曟椂浠涔堥兘涓嶅仛錛岃孯EPLACE鍦ㄦ湁閲嶅璁板綍鏃舵洿鏂幫紝鍦ㄦ病鏈夐噸澶嶈褰曟椂鎻掑叆銆?/p>
2. UPDATE鍙互閫夋嫨鎬у湴鏇存柊璁板綍鐨勪竴閮ㄥ垎瀛楁銆傝孯EPLACE鍦ㄥ彂鐜版湁閲嶅璁板綍鏃跺氨灝嗚繖鏉¤褰曞交搴曞垹闄わ紝鍐嶆彃鍏ユ柊鐨勮褰曘備篃灝辨槸璇達紝灝嗘墍鏈夌殑瀛楁閮芥洿鏂頒簡銆?/p>
涓夈丏ELETE鍜孴RUNCATE TABLE 鍦∕ySQL涓湁涓ょ鏂規硶鍙互鍒犻櫎鏁版嵁錛屼竴縐嶆槸DELETE璇彞錛屽彟涓縐嶆槸TRUNCATE TABLE璇彞銆侱ELETE璇彞鍙互閫氳繃WHERE瀵硅鍒犻櫎鐨勮褰曡繘琛岄夋嫨銆傝屼嬌鐢═RUNCATE TABLE灝嗗垹闄よ〃涓殑鎵鏈夎褰曘傚洜姝わ紝DELETE璇彞鏇寸伒媧匯?/p>
濡傛灉瑕佹竻絀鴻〃涓殑鎵鏈夎褰曪紝鍙互浣跨敤涓嬮潰鐨勪袱縐嶆柟娉曪細 DELETE FROM table1 TRUNCATE TABLE table1 鍏朵腑絎簩鏉¤褰曚腑鐨凾ABLE鏄彲閫夌殑銆?/p>
濡傛灉瑕佸垹闄よ〃涓殑閮ㄥ垎璁板綍錛屽彧鑳戒嬌鐢―ELETE璇彞銆?/p>
DELETE FROM table1 WHERE ...; 濡傛灉DELETE涓嶅姞WHERE瀛愬彞錛岄偅涔堝畠鍜孴RUNCATE TABLE鏄竴鏍風殑錛屼絾瀹冧滑鏈変竴鐐逛笉鍚岋紝閭e氨鏄疍ELETE鍙互榪斿洖琚垹闄ょ殑璁板綍鏁幫紝鑰孴RUNCATE TABLE榪斿洖鐨勬槸0銆?/p>
濡傛灉涓涓〃涓湁鑷瀛楁錛屼嬌鐢═RUNCATE TABLE鍜屾病鏈塛HERE瀛愬彞鐨凞ELETE鍒犻櫎鎵鏈夎褰曞悗錛岃繖涓嚜澧炲瓧孌靛皢璧峰鍊兼仮澶嶆垚1.濡傛灉浣犱笉鎯寵繖鏍峰仛鐨勮瘽錛屽彲浠ュ湪DELETE璇彞涓姞涓婃案鐪熺殑WHERE錛屽WHERE 1鎴朩HERE true銆?/p>
DELETE FROM table1 WHERE 1; 涓婇潰鐨勮鍙ュ湪鎵ц鏃跺皢鎵弿姣忎竴鏉¤褰曘備絾瀹冨茍涓嶆瘮杈冿紝鍥犱負榪欎釜WHERE鏉′歡姘歌繙涓簍rue銆傝繖鏍峰仛铏界劧鍙互淇濇寔鑷鐨勬渶澶у鹼紝浣嗙敱浜庡畠鏄壂鎻忎簡鎵鏈夌殑璁板綍錛屽洜姝わ紝瀹冪殑鎵ц鎴愭湰瑕佹瘮娌℃湁WHERE瀛愬彞鐨凞ELETE澶у緱澶氥?/p>
DELETE鍜孴RUNCATE TABLE鐨勬渶澶у尯鍒槸DELETE鍙互閫氳繃WHERE璇彞閫夋嫨瑕佸垹闄ょ殑璁板綍銆備絾鎵ц寰楅熷害涓嶅揩銆傝屼笖榪樺彲浠ヨ繑鍥炶鍒犻櫎鐨勮褰曟暟銆傝孴RUNCATE TABLE鏃犳硶鍒犻櫎鎸囧畾鐨勮褰曪紝鑰屼笖涓嶈兘榪斿洖琚垹闄ょ殑璁板綍銆備絾瀹冩墽琛屽緱闈炲父蹇?/p>
鍜?
鏍囧噯鐨凷QL璇彞涓嶅悓錛孌ELETE鏀寔ORDER
BY鍜孡IMIT瀛愬彞錛岄氳繃榪欎袱涓瓙鍙ワ紝鎴戜滑鍙互鏇村ソ鍦版帶鍒惰鍒犻櫎鐨勮褰曘傚褰撴垜浠彧鎯沖垹闄HERE瀛愬彞榪囨護鍑烘潵鐨勮褰曠殑涓閮ㄥ垎錛屽彲浠ヤ嬌鐢↙IMIB錛?
濡傛灉瑕佸垹闄ゅ悗鍑犳潯璁板綍錛屽彲浠ラ氳繃ORDER
BY鍜孡IMIT閰嶅悎浣跨敤銆傚亣璁炬垜浠鍒犻櫎users琛ㄤ腑name絳変簬"Mike"鐨勫墠6鏉¤褰曘傚彲浠ヤ嬌鐢ㄥ涓嬬殑DELETE璇彞錛?/p>
DELETE FROM users WHERE name = 'Mike' LIMIT 6; 涓鑸琈ySQL騫朵笉紜畾鍒犻櫎鐨勮繖6鏉¤褰曟槸鍝?鏉★紝涓轟簡鏇翠繚闄╋紝鎴戜滑鍙互浣跨敤ORDER BY瀵硅褰曡繘琛屾帓搴忋?/p>
DELETE FROM users WHERE name = 'Mike' ORDER BY id DESC LIMIT 6; 灝咮琛ㄦ煡璇㈢殑鏁版嵁鎻掑叆A琛細 insert into A select 銆傘傘俧rom B where銆傘傘?/p>
or insert into A (銆傘傘傦級select 銆傘傘俧rom B where銆傘傘?/p>
灝咮琛ㄧ殑鍊兼洿鏂板埌A琛細 update A set a = (select b from B where B.id = A.id) where exists(select 1 from B where id = A.id) and 銆傘傘?/p>
鍚屾椂鍒犻櫎澶氳〃鏁版嵁錛?/p>
delete A,B from A,B where A.id = B.id and 銆傘傘?/p>
or delete from A,B using A,B where A.id = B.id and 銆傘傘?/p>
娉ㄦ剰 ADO 鐩墠涓嶆敮鎸佽繖縐嶆暟鎹被鍨嬨備嬌鐢ㄥ畠鍙兘瀵艱嚧涓嶅彲棰勬枡鐨勭粨鏋溿?/p>
娉ㄦ剰 ADO 鐩墠涓嶆敮鎸佽繖縐嶆暟鎹被鍨嬨備嬌鐢ㄥ畠鍙兘瀵艱嚧涓嶅彲棰勬枡鐨勭粨鏋溿?/p>
娉ㄦ剰 ADO 鐩墠涓嶆敮鎸佽繖縐嶆暟鎹被鍨嬨備嬌鐢ㄥ畠鍙兘瀵艱嚧涓嶅彲棰勬枡鐨勭粨鏋溿?/p>
powered by performancing firefox
閫氳繃ADO璁塊棶:
(rs,r)=conn.Execute("select mytime from table1")
1銆乸rint rs.Fields[1].Value
2銆乸rint repr(rs.Fields[1].Value)
3銆乸rint rs.Fields[1].Value.Format("%H:%M:%S %p")
杈撳嚭緇撴灉寰堢█濂囷紙repr錛夛細
1銆?2/30/0/ 11:30:00
2銆?amp;lt;PyTime:1899-12-30 鏄熸湡鍏?涓婂崍 11:30:00>
3銆?1:30:00 AM
]]>
from win32com.client import Dispatch
1.1銆乧onnection錛?br />
conn=Dispatch(r‘ADODB.Connection')
conn.ConnectionString鍙敤鍊?br />
conn.Open()
Database Engine
ConnectionString
DBASE (using ODBC)
Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\path\to\database
Excel (using ODBC)
Driver={Microsoft Excel Driver (*.xls)};DriverID=790;Dbq=C:\path\to\spreadsheet;DefaultDir=C:\path\to\defaultdir
Excel (using OLE DB)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\To\sheet.xls;
Access (using ODBC)
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\path\to\database.mdb;Uid=username;Pwd=password
You can also pass additional options -- for example Exclusive=1; sets it to be opened in exclusive mode.
Access (using OLE DB)
Using standard security
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\database.mdb;User Id=username;Password=somepassword;
(緇忔祴璇曪紝濡傛灉Access鍔犲瘑浜嗭紝浣跨敤涓嬮潰鐨刢onnstring鍙互鎴愬姛榪炴帴錛?br />
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\database.mdb;Jet OLEDB:Databse Password=pwd;
)
Using Workgroup security
str="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=database.mdb;JET OLEDB:System Database=mysystem.mdw;"
oConn.Open(str, "my_user_name", "my_password")
Firebird
Remote Database
Provider='LCPI.IBProvider';Data Source='remotehost:C:\path\to\database.fdb';User ID='username';Password='pwd';Auto Commit=true;
The above is reported to work for a Firebird database by Edward Diamond (ediamond at water dot ca dot gov). I would presume that it could work on a local Firebird server, simply by removing "remotehost" from the string above. Edward reports that even simple queries don't work without the "Auto Commit" part in the connection string.
MySQL (using ODBC)
Local Database
Driver={MySQL ODBC 3.51 Driver};Server=localhost;User=username;Password=mypassword;Database=mydatabase;
Remote Database
Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.100;Port=3306;User=username;Password=mypassword;Database=mydatabase;
There are more parameters that can be set (for example, Option, which controls several connection properties such as logging, packet size limits etc.) See section 3.3 (Connection Parameters) of the MyODBC manual for more information.
MySQL (using OLE DB)
Provider=MySQLProv;Server=192.168.1.100;Port=3306;User=username;Password=mypassword;Database=mydatabase;
If you have the datasource already set up:
Provider=MySQLProv;Data Source=name_of_datasource;
You will need to download and install MyOleDB first. Last time I checked MyOLEDB was no longer maintained.
Oracle (using ODBC)
Driver={Microsoft ODBC for Oracle};Server=MyOracleServer;Uid=username;Pwd=password
See the MSDN library for additional options.
Oracle (using OLE DB)
Using OLE DB provider from Microsoft
Provider=MSDAORA;Data Source=MyOracleDB;User Id=username;Password=password
See the MSDN library for additional options.
Using OLE DB provider from Oracle
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=username;Password=password
SQL Server (using ODBC)
Standard Security
Driver={SQL Server};Server=192.168.1.100;Uid=username;Pwd=password;Database=dbname;
Trusted Connection
Simply add Trusted_Connection=yes to the above string.
See MSDN Library for more options.
SQL Server (using OLE DB)
Provider=SQLOLEDB.1;Data Source=192.168.1.100;Uid=username;Pwd=password;Database=dbname;
See MSDN Library for more options.
1.2銆乧ommand瀵硅薄
cmd=Dispatch(r'ADODB.Command')
cmd瀵硅薄鐨勫嚑涓睘鎬ц緗強鍙敤灞炴у鹼細
CommandTyte:
甯擱噺 鍊?/th> 璇存槑
adCmdUnspecified
-1
涓嶆寚瀹氬懡浠ょ被鍨嬬殑鍙傛暟銆?/td>
adCmdText
1
鎸夊懡浠ゆ垨瀛樺偍榪囩▼璋冪敤鐨勬枃鏈畾涔夎綆?CommandText銆?/td>
adCmdTable
2
鎸夎〃鍚嶈綆?CommandText錛岃琛ㄧ殑鍒楀叏閮ㄦ槸鐢卞唴閮ㄧ敓鎴愮殑 SQL 鏌ヨ榪斿洖鐨勩?/td>
adCmdStoredProc
4
鎸夊瓨鍌ㄨ繃紼嬪悕璁$畻 CommandText銆?/td>
adCmdUnknown
8
榛樿鍊箋傛寚紺?CommandText 灞炴т腑鍛戒護鐨勭被鍨嬫湭鐭ャ?/td>
adCmdFile
256
鎸夋寔涔呭瓨鍌ㄧ殑 Recordset 鐨勬枃浠跺悕璁$畻 CommandText銆?/td>
adCmdTableDirect
512
鎸夎〃鍚嶈綆?CommandText錛岃琛ㄧ殑鍒楄鍏ㄩ儴榪斿洖銆?/td>
CommandText:瀹氫箟鍛戒護錛堜緥濡?SQL 璇彞錛夌殑鍙墽琛屾枃鏈?br />
Prepared:鐢?Prepared 灞炴у皢鎻愪緵鑰呬繚瀛樹負鏌ヨ鐨勫凡鍑嗗濂斤紙鎴栧凡緙栬瘧錛夌増鏈紝璇ユ煡璇㈡槸絎竴嬈℃墽琛?Command瀵硅薄鍓嶅湪CommandText灞炴т腑鎸囧畾鐨勩傝繖鍙兘浼氶檷浣庡懡浠ょ涓嬈℃墽琛岀殑閫熷害錛屼絾涓鏃︽彁渚涜呯紪璇戜竴涓懡浠ゅ悗錛屼究鍙皢鍛戒護鐨勭紪璇戠増鏈敤浜庢墍鏈夊悗緇殑鎵ц涓紝榪欐牱渚垮彲鎻愰珮鎬ц兘銆?濡傛灉璇ュ睘鎬т負 False錛屾彁渚涜呭皢鐩存帴鎵ц Command 瀵硅薄鑰屼笉鍒涘緩緙栬瘧鐗堟湰銆傚鏋滄彁渚涜呬笉鏀寔鍛戒護鍑嗗錛屽垯涓鏃﹀皢姝ゅ睘鎬ц緗負 True錛屾彁渚涜呬究鍙兘榪斿洖閿欒銆傚鏋滃畠涓嶈繑鍥為敊璇紝鍒欎粎蹇界暐鍑嗗鍛戒護鐨勮姹傦紝騫跺皢 Prepared 灞炴ц緗負 False銆?nbsp;
CommandTimeout: 灞炴ц緗彁渚涜呯瓑寰呭懡浠ゆ墽琛岀殑縐掓暟
1.3銆丳arameter瀵硅薄
para1=cmd.CreateParameter(Name, Type, Direction, Size, Value錛?br />
Name 鍙夈係tring 鍊鹼紝鍖呭惈 Parameter 瀵硅薄鐨勫悕縐般?br />
Type 鍙夈侱ataTypeEnum 鍊鹼紝鎸囧畾 Parameter 瀵硅薄鐨勬暟鎹被鍨嬨?br />
Direction 鍙夈侾arameterDirectionEnum 鍊鹼紝鎸囧畾 Parameter 瀵硅薄鐨勭被鍨嬨?br />
Size 鍙夈侺ong 鍊鹼紝鎸囧畾鍙傛暟鍊肩殑鏈澶ч暱搴︼紙浠ュ瓧絎︽垨瀛楄妭涓哄崟浣嶏級銆?br />
Value 鍙夈俈ariant錛屾寚瀹?Parameter 瀵硅薄鐨勫箋?br />
DataTypeEnum 鍙敤鍊鹼細
甯擱噺 鍊?/th> 璇存槑
AdArray
錛堜笉閫傜敤浜?ADOX銆傦級0x2000
涓涓爣蹇楀鹼紝閫氬父涓庡彟涓涓暟鎹被鍨嬪父閲忕粍鍚堬紝鎸囩ず璇ユ暟鎹被鍨嬬殑鏁扮粍銆?/td>
adBigInt
20
鎸囩ず涓涓叓瀛楄妭鐨勬湁絎﹀彿鏁存暟 (DBTYPE_I8)銆?/td>
adBinary
128
鎸囩ず涓涓簩榪涘埗鍊?(DBTYPE_BYTES)銆?/td>
adBoolean
11
鎸囩ず涓涓竷灝斿?(DBTYPE_BOOL)銆?/td>
adBSTR
8
鎸囩ず浠?Null 緇堟鐨勫瓧絎︿覆 (Unicode) (DBTYPE_BSTR)銆?/td>
adChapter
136
鎸囩ず涓涓洓瀛楄妭鐨勫瓙闆嗗鹼紝鏍囪瘑瀛?a href="mddefrowset.htm">琛岄泦鍚?/a>涓殑琛? (DBTYPE_HCHAPTER)銆?/td>
adChar
129
鎸囩ず涓涓瓧絎︿覆鍊?(DBTYPE_STR)銆?/td>
adCurrency
6
鎸囩ず涓涓揣甯佸?(DBTYPE_CY)銆傝揣甯佹槸涓涓畾鐐規暟瀛楋紝灝忔暟鐐瑰彸渚ф湁鍥涗綅鏁板瓧銆傝鍊煎瓨鍌ㄤ負鍏瓧鑺傘佽寖鍥翠負 10,000 鐨勬湁絎﹀彿鏁存暟銆?/td>
adDate
7
鎸囩ず鏃ユ湡鍊?(DBTYPE_DATE)銆傛棩鏈熶繚瀛樹負鍙岀簿搴︽暟錛屾暟瀛楃殑鏁存暟閮ㄥ垎鏄粠 1899 騫?12 鏈?30 鏃ョ畻璧風殑澶╂暟錛屽皬鏁伴儴鍒嗘槸涓澶╁綋涓殑鐗囨鏃墮棿銆?/td>
adDBDate
133
鎸囩ず鏃ユ湡鍊?(yyyymmdd) (DBTYPE_DBDATE)銆?/td>
adDBTime
134
鎸囩ず鏃墮棿鍊?(hhmmss) (DBTYPE_DBTIME)銆?/td>
adDBTimeStamp
135
鎸囩ず鏃ユ湡/鏃墮棿鎴籌紙yyyymmddhhmmss 鍔犲崄浜垮垎涔嬩竴鐨勫皬鏁幫級(DBTYPE_DBTIMESTAMP)銆?/td>
adDecimal
14
鎸囩ず鍏鋒湁鍥哄畾綺懼害鍜岃寖鍥寸殑紜垏鏁板瓧鍊?(DBTYPE_DECIMAL)銆?/td>
adDouble
5
鎸囩ず涓涓弻綺懼害嫻偣鍊?(DBTYPE_R8)銆?/td>
adEmpty
0
鎸囧畾娌℃湁鍊?(DBTYPE_EMPTY)銆?/td>
adError
10
鎸囩ず涓涓?32 浣嶇殑閿欒浠g爜 (DBTYPE_ERROR)銆?/td>
adFileTime
64
鎸囩ず涓涓?64 浣嶇殑鍊鹼紝琛ㄧず浠?1601 騫?1 鏈?1 鏃ュ紑濮嬬殑 100 涓崄浜垮垎涔嬩竴縐掗棿闅旂殑鏁伴噺 (DBTYPE_FILETIME)銆?/td>
adGUID
72
鎸囩ず鍏ㄥ眬鍞竴鏍囪瘑絎?(GUID) (DBTYPE_GUID)銆?/td>
adIDispatch
9
鎸囩ず鎸囧悜 COM 瀵硅薄涓?IDispatch 鎺ュ彛鐨勬寚閽?(DBTYPE_IDISPATCH)銆?
adInteger
3
鎸囩ず涓涓洓瀛楄妭鐨勬湁絎﹀彿鏁存暟 (DBTYPE_I4)銆?/td>
adIUnknown
13
鎸囩ず鎸囧悜 COM 瀵硅薄涓?IUnknown 鎺ュ彛鐨勬寚閽?(DBTYPE_IUNKNOWN)銆?
adLongVarBinary
205
鎸囩ず涓涓暱浜岃繘鍒跺鹼紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adLongVarChar
201
鎸囩ず涓涓暱瀛楃涓插鹼紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adLongVarWChar
203
鎸囩ず涓涓互 Null 緇堟鐨勯暱 Unicode 瀛楃涓插鹼紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adNumeric
131
鎸囩ず鍏鋒湁鍥哄畾綺懼害鍜岃寖鍥寸殑紜垏鏁板瓧鍊?(DBTYPE_NUMERIC)銆?/td>
adPropVariant
138
鎸囩ず涓涓?Automation PROPVARIANT (DBTYPE_PROP_VARIANT)銆?/td>
adSingle
4
鎸囩ず涓涓崟綺懼害嫻偣鍊?(DBTYPE_R4)銆?/td>
adSmallInt
2
鎸囩ず涓涓弻瀛楄妭鐨勬湁絎﹀彿鏁存暟 (DBTYPE_I2)銆?/td>
adTinyInt
16
鎸囩ず涓涓崟瀛楄妭鐨勬湁絎﹀彿鏁存暟 (DBTYPE_I1)銆?/td>
adUnsignedBigInt
21
鎸囩ず涓涓叓瀛楄妭鐨勬棤絎﹀彿鏁存暟 (DBTYPE_UI8)銆?/td>
adUnsignedInt
19
鎸囩ず涓涓洓瀛楄妭鐨勬棤絎﹀彿鏁存暟 (DBTYPE_UI4)銆?/td>
adUnsignedSmallInt
18
鎸囩ず涓涓弻瀛楄妭鐨勬棤絎﹀彿鏁存暟 (DBTYPE_UI2)銆?/td>
adUnsignedTinyInt
17
鎸囩ず涓涓崟瀛楄妭鐨勬棤絎﹀彿鏁存暟 (DBTYPE_UI1)銆?/td>
adUserDefined
132
鎸囩ず涓涓敤鎴峰畾涔夌殑鍙橀噺 (DBTYPE_UDT)銆?/td>
adVarBinary
204
鎸囩ず涓涓簩榪涘埗鍊鹼紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adVarChar
200
鎸囩ず涓涓瓧絎︿覆鍊鹼紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adVariant
12
鎸囩ず涓涓?Automation Variant (DBTYPE_VARIANT)銆?
adVarNumeric
139
鎸囩ず涓涓暟瀛楀鹼紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adVarWChar
202
鎸囩ず涓涓互 Null 緇堟鐨?Unicode 瀛楃涓詫紙浠呴檺浜?Parameter 瀵硅薄錛夈?/td>
adWChar
130
鎸囩ず涓涓互 Null 緇堟鐨?Unicode 瀛楃涓?(DBTYPE_WSTR)銆?/td>
ParameterDirectionEnum鍙敤鍊鹼細
甯擱噺 鍊?/th> 璇存槑
adParamInput
1
榛樿鍊箋傛寚紺鴻鍙傛暟鏄緭鍏ュ弬鏁般?/td>
adParamInputOutput
3
鎸囩ず璇ュ弬鏁版棦鏄緭鍏ュ弬鏁幫紝鍙堟槸杈撳嚭鍙傛暟銆?/td>
adParamOutput
2
鎸囩ず璇ュ弬鏁版槸杈撳嚭鍙傛暟銆?/td>
adParamReturnValue
4
鎸囩ず璇ュ弬鏁版槸榪斿洖鍊箋?/td>
adParamUnknown
0
鎸囩ず璇ュ弬鏁扮殑鏂瑰悜鏈煡銆?/td>
璁懼畾濂藉悗鍔犲叆鍒癱md鐨刾arameters涓細
cmd.Parameters.Append(para1)
璁懼畾para1鐨勫鹼細
para1.Value=***
鎵цcmd錛?br />
(rst,result)=cmd.Execute()
1.4銆乺ecordset瀵硅薄錛?br />
rst=Dispatch(r'ADODB.Recordset')
rst瀵硅薄鍦∣pen鍓嶅彲璁劇疆娓告爣綾誨瀷錛?br />
鍏蜂綋娓告爣鍊間負錛?br />
adOpenDynamic
2
浣跨敤鍔ㄦ?a href="mddefcursor.htm">娓告爣銆傚叾浠栫敤鎴鋒墍浣滅殑娣誨姞銆佹洿鏀規垨鍒犻櫎鍧囧彲瑙侊紝鑰屼笖鍏佽 Recordset
涓殑鎵鏈夌Щ鍔ㄧ被鍨嬶紙濡傛灉鎻愪緵鑰呬笉鏀寔涔︾錛屽垯涔︾闄ゅ錛夈?/td>
adOpenForwardOnly
0
榛樿鍊箋?/em>浣跨敤浠呭悜鍓嶆父鏍囥傞櫎浜嗗湪璁板綍涓彧鑳藉悜鍓嶆粴鍔ㄥ錛屼笌闈欐佹父鏍囩浉鍚屻傚綋鍙渶瑕佸湪 Recordset
涓繘琛屼竴涓紶閫掓椂錛岀敤瀹冨彲鎻愰珮鎬ц兘銆?/td>
adOpenKeyset
1
浣跨敤閿泦娓告爣銆傚敖綆′粠鎮ㄧ殑 Recordset
涓嶈兘璁塊棶鍏朵粬鐢ㄦ埛鍒犻櫎鐨勮褰曪紝浣嗛櫎鏃犳硶鏌ョ湅鍏朵粬鐢ㄦ埛娣誨姞鐨勮褰曞錛屽畠鍜屽姩鎬佹父鏍囩浉浼箋傚叾浠栫敤鎴鋒墍浣滅殑鏁版嵁鏇存敼渚濈劧鍙銆?/td>
adOpenStatic
3
浣跨敤闈欐佹父鏍囥備竴緇勮褰曠殑闈欐佸壇鏈紝鍙敤浜庢煡鎵炬暟鎹垨鐢熸垚鎶ュ憡銆傚叾浠栫敤鎴鋒墍浣滅殑娣誨姞銆佹洿鏀規垨鍒犻櫎涓嶅彲瑙併?/td>
adOpenUnspecified
-1
涓嶆寚瀹氭父鏍囩被鍨嬨?/td>
rst.Open錛?/strong>Source,
ActiveConnection, CursorType,
LockType, Options錛?br />
鍙傛暟鍊煎叏閮ㄥ彲閫夈?br />
CursorType涓婇潰宸茬粡璇存槑
LockType鐨勫彲閫夊鹼細
甯擱噺
鍊?/th>
璇存槑
adLockBatchOptimistic
4
鎸囩ず寮鏀懼紡鎵規洿鏂般傞渶瑕佹壒鏇存柊妯″紡銆?/td>
adLockOptimistic
3
鎸囩ず閫愪釜璁板綍寮鏀懼紡閿佸畾銆傛彁渚涜呬嬌鐢ㄥ紑鏀懼紡閿佸畾錛屼粎鍦ㄨ皟鐢?Update 鏂規硶鏃墮攣瀹氳褰曘?/td>
adLockPessimistic
2
鎸囩ず閫愪釜璁板綍淇濆畧寮忛攣瀹氥傛彁渚涜呰紜繚璁板綍緙栬緫鎴愬姛錛岄氬父鍦ㄧ紪杈戜箣鍚庣珛鍗沖湪鏁版嵁婧愰攣瀹氳褰曘?/td>
adLockReadOnly
1
榛樿鍊?/em>銆傛寚紺哄彧璇昏褰曘傛棤娉曟敼鍙樻暟鎹?/td>
adLockUnspecified
-1
鏈寚瀹氶攣瀹氱被鍨嬨傚垱寤哄壇鏈椂錛屽壇鏈笌婧愬璞′嬌鐢ㄧ浉鍚岀殑閿佸畾綾誨瀷銆?/td>
]]>
dsn='PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=d:/temp/test/test1.mdb;Jet OLEDB:Database Password=555555;'
conn.Open(dsn)
rst=win32com.client.Dispatch(r'ADODB.Recordset')
rst.ActiveConnection=conn
rst.Open('yandan')
鍏抽敭鏄繖閲岋細
Jet OLEDB:Database Password=123456;
瑕佹彁渚涢氳繃鐙崰鏂瑰紡鎵撳紑mdb鏂囦歡鍚?>瀹夊叏->璁劇疆瀵嗙爜 鍚庯紝鍐嶆墦寮鏃惰杈撳叆鐨勫瘑鐮?br />
]]>
VBA涓垵濮嬪寲ADO榪炴帴鐨勫嚑縐嶆柟娉曟湁浠ヤ笅鍑犵錛?br />
1錛庨氳繃CreateObject鏂規硶鏉ュ垱寤鴻繛鎺ワ紝鍏蜂綋浠g爜濡備笅錛?br />
Dim
conn1
Set conn1 = CreateObject("ADODB.Connection.2.0")
2錛庨氳繃浣跨敤Dim ... as ...鏂規硶鏉ュ垱寤鴻繛鎺?br />
Dim conn2 As
ADODB.Connection
Set conn2 = New ADODB.Connection
3錛庨氳繃浣跨敤Dim
... as ... New鐨勬柟娉曟潵鍒涘緩榪炴帴
Dim conn3 As new
ADODB.Connection
CreateObject鏂規硶姣擠IM鏂規硶閫熷害瑕佹參錛屽叾濂藉鏄綘涓嶉渶瑕佸湪宸ョ▼涓紩鐢ˋDO瀵硅薄銆?br />
]]>