>"So do not worry about tomorrow, for tomorrow will bring worries of its own. Today's trouble is enought for today." (MATTHEW 7:34) #MySQLæ°æ®åº(2) å°±æ°æ®åºèè¨ï¼è¿æ¥ä¹åå°±è¦å¯¹å ¶æä½ã使¯ï¼ç®åååå«ä½qiwsirtestçæ°æ®ä» ä» æ¯ç©ºæ¶åï¼æ²¡æä»ä¹å¯æä½çï¼è¦æä½å®ï¼å°±å¿ é¡»å¨éé¢å»ºç«â表âï¼ä»ä¹æ¯æ°æ®åºç表å¢ï¼ä¸é¢ææç»´åºç¾ç§å¯¹æ°æ®åºè¡¨çç®è¦è§£éã >å¨å ³ç³»æ°æ®åºä¸ï¼æ°æ®åºè¡¨æ¯ä¸ç³»åäºç»´æ°ç»çéåï¼ç¨æ¥ä»£è¡¨åå¨åæ°æ®å¯¹è±¡ä¹é´çå ³ç³»ãå®ç±çºµåçå忍ªåçè¡ç»æï¼ä¾å¦ä¸ä¸ªæå ³ä½è ä¿¡æ¯çå为 authors ç表ä¸ï¼æ¯ä¸ªåå å«çæ¯ææä½è çæä¸ªç¹å®ç±»åçä¿¡æ¯ï¼æ¯å¦âå§æ°âï¼èæ¯è¡åå å«äºæä¸ªç¹å®ä½è çææä¿¡æ¯ï¼å§ãåãä½åççã >对äºç¹å®çæ°æ®åºè¡¨ï¼åçæ°ç®ä¸è¬äºå åºå®ï¼ååä¹é´å¯ä»¥ç±å忥è¯å«ãèè¡çæ°ç®å¯ä»¥éæ¶ã卿ååï¼æ¯è¡é常é½å¯ä»¥æ ¹æ®æä¸ªï¼ææå 个ï¼åä¸çæ°æ®æ¥è¯å«ï¼ç§°ä¸ºåéé®ã å¨qiwsirtestä¸å»ºç«ä¸ä¸ªåå¨ç¨æ·åãç¨æ·å¯ç ãç¨æ·é®ç®±ç表ï¼å ¶ç»æç¨äºç»´è¡¨æ ¼è¡¨ç°å¦ä¸ï¼ |username|password|email| |--------|--------|-----| |qiwsir|123123|[email protected]| ç¹å«è¯´æï¼è¿é为äºç®åç»èï¼çªåºéç¹ï¼å¯¹å¯ç ä¸å å¯ï¼ç´æ¥ææä¿åï¼è½ç¶è¿ç§æ¹å¼æ¯å¾ä¸å®å ¨çãæ®å°éæ¶æ¯ï¼æçç½ç«å± ç¶ç¨ææä¿åå¯ç ï¼è¿ä¹åæ¯æ¯è¾å¯æ¶çã就让æå¨è¿éï¼ä» ä» å¨è¿é坿¶ä¸æ¬¡ã ##æ°æ®åºè¡¨ å ä¸ºç´æ¥æä½æ°æ®åºä¸æ¯æ¬ä¹¦éç¹ï¼ä½æ¯å ³èå°åé¢çæä½ï¼ä¸ºäºè®©è¯»è å¨é 读ä¸è¿è´¯ï¼å¿«éå°è¯´æå»ºç«æ°æ®åºè¡¨å¹¶è¾å ¥å 容ã mysql> use qiwsirtest; Database changed mysql> show tables; Empty set (0.00 sec) ç¨`show tables`å½ä»¤æ¾ç¤ºè¿ä¸ªæ°æ®åºä¸æ¯å¦ææ°æ®è¡¨äºï¼æ¥è¯¢ç»ææ¾ç¤ºä¸ºç©ºã ç¨å¦ä¸å½ä»¤å»ºç«ä¸ä¸ªæ°æ®è¡¨ï¼è¿ä¸ªæ°æ®è¡¨çå 容就æ¯ä¸é¢æè¯´æçã mysql> create table users(id int(2) not null primary key auto_increment,username varchar(40),password text,email text)default charset=utf8; Query OK, 0 rows affected (0.12 sec) 建ç«çè¿ä¸ªæ°æ®è¡¨åç§°æ¯ï¼usersï¼å ¶ä¸å å«ä¸è¿°å段ï¼å¯ä»¥ç¨ä¸é¢çæ¹å¼çä¸çè¿ä¸ªæ°æ®è¡¨çç»æã mysql> show tables; +----------------------+ | Tables_in_qiwsirtest | +----------------------+ | users | +----------------------+ 1 row in set (0.00 sec) æ¥è¯¢æ¾ç¤ºï¼å¨qiwsirtestè¿ä¸ªæ°æ®åºä¸ï¼å·²ç»æä¸ä¸ªè¡¨ï¼å®çå忝ï¼usersã mysql> desc users; +----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | id | int(2) | NO | PRI | NULL | auto_increment | | username | varchar(40) | YES | | NULL | | | password | text | YES | | NULL | | | email | text | YES | | NULL | | +----------+-------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) æ¾ç¤ºè¡¨usersçç»æï¼ ç¹å«æéï¼ä¸è¿°ææåæ®µè®¾ç½®ä» ä¸ºæ¼ç¤ºï¼å¨å®é å¼åä¸ï¼è¦æ ¹æ®å ·ä½æ 嵿¥ç¡®å®å段ç屿§ã 妿¤å°±å¾å°äºä¸ä¸ªç©ºè¡¨ãå¯ä»¥æ¥è¯¢ççï¼ mysql> select * from users; Empty set (0.01 sec) åéé¢æå ¥ä¸æ¡ä¿¡æ¯ã mysql> insert into users(username,password,email) values("qiwsir","123123","[email protected]"); Query OK, 1 row affected (0.05 sec) mysql> select * from users; +----+----------+----------+------------------+ | id | username | password | email | +----+----------+----------+------------------+ | 1 | qiwsir | 123123 | [email protected] | +----+----------+----------+------------------+ 1 row in set (0.00 sec) è¿æ ·å°±å¾å°äºä¸ä¸ªæå å®¹çæ°æ®åºè¡¨ã ##æä½æ°æ®åº é¦å è¦è¿æ¥æ°æ®åºã >>> import MySQLdb >>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",charset="utf8") Python建ç«äºä¸æ°æ®åºçè¿æ¥ï¼å ¶å®æ¯å»ºç«äºä¸ä¸ª`MySQLdb.connect()`çå®ä¾å¯¹è±¡ï¼æè æ³æ³å°ç§°ä¹ä¸ºè¿æ¥å¯¹è±¡ï¼Pythonå°±æ¯éè¿è¿æ¥å¯¹è±¡åæ°æ®åºå¯¹è¯ãè¿ä¸ªå¯¹è±¡å¸¸ç¨çæ¹æ³æï¼ - commit()ï¼å¦ææ°æ®åºè¡¨è¿è¡äºä¿®æ¹ï¼æäº¤ä¿åå½åçæ°æ®ãå½ç¶ï¼å¦ææ¤ç¨æ·æ²¡ææéå°±ä½ç½¢äºï¼ä»ä¹ä¹ä¸ä¼åçã - rollback()ï¼å¦æææéï¼å°±åæ¶å½åçæä½ï¼å¦åæ¥éã - cursor([cursorclass])ï¼è¿åè¿æ¥ç游æ 对象ãéè¿æ¸¸æ æ§è¡SQLæ¥è¯¢å¹¶æ£æ¥ç»æãæ¸¸æ æ¯è¿æ¥æ¯ææ´å¤çæ¹æ³ï¼èä¸å¯è½å¨ç¨åºä¸æ´å¥½ç¨ã - close()ï¼å ³éè¿æ¥ãæ¤åï¼è¿æ¥å¯¹è±¡å游æ é½ä¸åå¯ç¨äºã Pythonåæ°æ®åºä¹é´çè¿æ¥å»ºç«èµ·æ¥ä¹åï¼è¥è¦æä½å®ï¼å°±éè¦è®©Pythonå¯¹æ°æ®åºæ§è¡SQLè¯å¥ã Pythonæ¯éè¿æ¸¸æ æ§è¡SQLè¯å¥çï¼æä»¥ï¼è¿æ¥å»ºç«ä¹åï¼å°±è¦å©ç¨è¿æ¥å¯¹è±¡å¾å°æ¸¸æ å¯¹è±¡ï¼æ¹æ³å¦ä¸ï¼ >>> cur = conn.cursor() æ¤åï¼å°±å¯ä»¥å©ç¨æ¸¸æ å¯¹è±¡çæ¹æ³å¯¹æ°æ®åºè¿è¡æä½ãé£ä¹è¿å¾äºè§£æ¸¸æ 对象çå¸¸ç¨æ¹æ³ï¼ |åç§°|æè¿°| |----|----| |close()|å ³éæ¸¸æ ãä¹å游æ ä¸å¯ç¨| |execute(query[,args])|æ§è¡ä¸æ¡SQLè¯å¥ï¼å¯ä»¥å¸¦åæ°| |executemany(query, pseq)|对åºåpseqä¸çæ¯ä¸ªåæ°æ§è¡sqlè¯å¥| |fetchone()|è¿å䏿¡æ¥è¯¢ç»æ| |fetchall()|è¿åæææ¥è¯¢ç»æ| |fetchmany([size])|è¿åsizeæ¡ç»æ| |nextset()|ç§»å¨å°ä¸ä¸ä¸ªç»æ| |scroll(value,mode='relative')|ç§»å¨æ¸¸æ å°æå®è¡ï¼å¦æmode='relative',å表示ä»å½åæå¨è¡ç§»å¨valueæ¡,妿mode='absolute',å表示ä»ç»æéç第ä¸è¡ç§»å¨valueæ¡.| ###æå ¥ ä¾å¦ï¼è¦å¨æ°æ®è¡¨usersä¸æå ¥ä¸æ¡è®°å½ï¼ä½¿å¾username="python",password="123456",email="[email protected]"ï¼è¿æ ·åï¼ >>> cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","[email protected]")) 1L æ²¡ææ¥éï¼å¹¶ä¸è¿åä¸ä¸ª"1L"ç»æï¼è¯´ææä¸è¡è®°å½æä½æåãä¸å¦¨è¿å ¥å°"mysql>"äº¤äºæ¹å¼æ¥çã mysql> select * from users; +----+----------+----------+------------------+ | id | username | password | email | +----+----------+----------+------------------+ | 1 | qiwsir | 123123 | [email protected] | +----+----------+----------+------------------+ 1 row in set (0.00 sec) å¦ï¼å¥æªåãæä¹æ²¡æçå°å¢å çé£ä¸æ¡å¢ï¼åªééäºï¼å¯æ¯ä¸é¢ä¹æ²¡ææ¥éåã ç¹å«æ³¨æï¼éè¿`cur.execute()`å¯¹æ°æ®åºè¿è¡æä½ä¹åï¼æ²¡ææ¥éï¼å®å ¨æ£ç¡®ï¼ä½æ¯ä¸çäºæ°æ®å°±å·²ç»æäº¤å°æ°æ®åºä¸äºï¼è¿å¿ é¡»è¦ç¨å°"MySQLdb.connect"çä¸ä¸ªæ¹æ³ï¼commit()ï¼å°æ°æ®æäº¤ä¸å»ï¼ä¹å°±æ¯è¿è¡äº`cur.execute()`æä½ï¼è¦å°æ°æ®æäº¤æè½æææ¹åæ°æ®åºçå 容ã >>> conn.commit() åå°"mysql>"ä¸è¿è¡`"select * from users"`è¯ä¸è¯ï¼ mysql> select * from users; +----+----------+----------+------------------+ | id | username | password | email | +----+----------+----------+------------------+ | 1 | qiwsir | 123123 | [email protected] | | 2 | python | 123456 | [email protected] | +----+----------+----------+------------------+ 2 rows in set (0.00 sec) æç¶å¦æ¤ã è¿å°±å¦åç¼åä¸ä¸ªææ¬ä¸æ ·ï¼å°æååå°ææ¬ä¸ï¼å¹¶ä¸çäºæåå·²ç»ä¿çå¨ææ¬æä»¶ä¸äºï¼å¿ é¡»æ§è¡`CTRL-S`æè½ä¿åãææä»¥`execute()`æ§è¡åç§sqlè¯å¥ä¹åï¼è¦è®©å·²ç»æ§è¡çææä¿åï¼å¿ é¡»è¿è¡è¿æ¥å¯¹è±¡ç`commit()`æ¹æ³ã åå°è¯ä¸ä¸æå ¥å¤æ¡çé£ä¸ªå½ä»¤`executemany(query,args)`ã >>> cur.executemany("insert into users (username,password,email) values (%s,%s,%s)",(("google","111222","[email protected]"),("facebook","222333","[email protected]"),("github","333444","[email protected]"),("docker","444555","[email protected]"))) 4L >>> conn.commit() å°"mysql>"éé¢çç»æï¼ mysql> select * from users; +----+----------+----------+------------------+ | id | username | password | email | +----+----------+----------+------------------+ | 1 | qiwsir | 123123 | [email protected] | | 2 | python | 123456 | [email protected] | | 3 | google | 111222 | [email protected] | | 4 | facebook | 222333 | [email protected] | | 5 | github | 333444 | [email protected] | | 6 | docker | 444555 | [email protected] | +----+----------+----------+------------------+ 6 rows in set (0.00 sec) æåæå ¥äºå¤æ¡è®°å½ãå¨"executemany(query, pseq)"ä¸ï¼queryè¿æ¯ä¸æ¡sqlè¯å¥ï¼ä½æ¯`pseq`è¿æ¶åæ¯ä¸ä¸ªå ç»ï¼ç¹å«æ³¨ææ¬å·ââä¸ç¯å¥ä¸ç¯çæ¬å·ï¼è¿ä¸ªå ç»éé¢çå ç´ ä¹æ¯å ç»ï¼æ¯ä¸ªå ç»åå«å¯¹åºsqlè¯å¥ä¸çåæ®µå表ã é¤äºæå ¥å½ä»¤ï¼å ¶å®å¯¹æ°æ®æä½çå½ä»¤é½å¯ç¨ç±»ä¼¼ä¸é¢çæ¹å¼ï¼æ¯å¦å é¤ãä¿®æ¹çã ###æ¥è¯¢ 妿è¦ä»æ°æ®åºä¸æ¥è¯¢æ°æ®ï¼ä¹ç¨æ¸¸æ æ¹æ³æ¥æä½äºã >>> cur.execute("select * from users") 7L è¿è¯´æä»usersè¡¨æ±æ»æ¥è¯¢åºæ¥äº7æ¡è®°å½ã使¯ï¼è¿ä¼¼ä¹æç¹ä¸å好ï¼7æ¡è®°å½å¨åªéå¢ï¼å¦æå¨'mysql>'䏿使¥è¯¢å½ä»¤ï¼ä¸ä¸å°±æ7æ¡è®°å½ååºæ¥äºãæä¹æ¾ç¤ºPythonçæ¥è¯¢ç»æå¢ï¼ è¦ç¨å°æ¸¸æ 对象ç`fetchall()`ã`fetchmany(size=None)`ã`fetchone()`ã`scroll(value, mode='relative')`çæ¹æ³ã >>> cur.execute("select * from users") 7L >>> lines = cur.fetchall() è³æ¤å·²ç»å°æ¥è¯¢å°çè®°å½èµå¼ç»åé`lines`äºãå¦æè¦æå®ä»¬æ¾ç¤ºåºæ¥ï¼å°±è¦ç¨å°æ¾ç»å¦ä¹ è¿ç循ç¯è¯å¥ã >>> for line in lines: ... print line #Python 3: print(line) ... (1L, u'qiwsir', u'123123', u'[email protected]') (2L, u'python', u'123456', u'[email protected]') (3L, u'google', u'111222', u'[email protected]') (4L, u'facebook', u'222333', u'[email protected]') (5L, u'github', u'333444', u'[email protected]') (6L, u'docker', u'444555', u'[email protected]') (7L, u'\u8001\u9f50', u'9988', u'[email protected]') å¾å¥½ï¼æç¶éæ¡æ¾ç¤ºåºæ¥äºãè¯·è¯»è æ³¨æï¼ç¬¬ä¸æ¡ä¸ç`u'\u8001\u95f5'`æ¯æ±åï¼åªä¸è¿ç±äºæçshellä¸è½æ¾ç¤ºç½¢äºï¼ä¸å¿ ææ ï¼ä¸å¿ æçå®ã åªæ³æ¥åºç¬¬ä¸æ¡ï¼å¯ä»¥åï¼å½ç¶å¯ä»¥ï¼åçä¸é¢ï¼ >>> cur.execute("select * from users where id=1") 1L >>> line_first = cur.fetchone() #åªè¿å䏿¡ >>> print line_first #Python 3: print(line_first) (1L, u'qiwsir', u'123123', u'[email protected]') 为äºå¯¹ä¸è¿°è¿ç¨äºè§£æ·±å ¥ï¼åä¸é¢å®éªï¼ >>> cur.execute("select * from users") 7L >>> print cur.fetchall() #Python 3: print(cur.fetchall()) ((1L, u'qiwsir', u'123123', u'[email protected]'), (2L, u'python', u'123456', u'[email protected]'), (3L, u'google', u'111222', u'[email protected]'), (4L, u'facebook', u'222333', u'[email protected]'), (5L, u'github', u'333444', u'[email protected]'), (6L, u'docker', u'444555', u'[email protected]'), (7L, u'\u8001\u9f50', u'9988', u'[email protected]')) 忥ï¼ç¨`cur.execute()`仿°æ®åºæ¥è¯¢åºæ¥çä¸è¥¿ï¼è¢«âä¿åå¨äºcuræè½æ¾å°çæä¸ªå°æ¹âï¼è¦æ¾åºè¿äºè¢«ä¿åçä¸è¥¿ï¼éè¦ç¨`cur.fetchall()`ï¼æè `fechone`çï¼ï¼å¹¶ä¸æ¾åºæ¥ä¹åï¼ä½ä¸ºå¯¹è±¡åå¨ãä»ä¸é¢çå®éªæ¢è®¨åç°ï¼è¿å弿¯ä¸ä¸ªå ç»å¯¹è±¡ï¼éé¢çæ¯ä¸ªå ç´ ï¼é½æ¯ä¸ä¸ªä¸ä¸ªçå ç»ãå æ¤ï¼ç¨`for`循ç¯å°±å¯ä»¥ä¸ä¸ªä¸ä¸ªæ¿åºæ¥äºã ç»§ç»ï¼å¯ä»¥çå°ç¥å¥ãæ¥çä¸é¢çæä½ï¼åæå°ä¸éã >>> print cur.fetchall() #Python 3: print(cur.fetchall()) () æäºï¼æä¹ä»ä¹æ¯ç©ºï¼ä¸æ¯è¯´ä½ä¸ºå¯¹è±¡å·²ç»åå¨äºå åä¸äºåï¼é¾éè¿ä¸ªå åä¸ç对象æ¯ä¸æ¬¡ææåï¼ ä¸è¦çæ¥ï¼è¿å°±æ¯ç¥å¥æå¨ã éè¿æ¸¸æ æ¾åºæ¥ç对象ï¼å¨è¯»åçæ¶åæä¸ä¸ªç¹ç¹ï¼å°±æ¯é£ä¸ªæ¸¸æ ä¼ç§»å¨ãå¨ç¬¬ä¸æ¬¡æä½äº`print cur.fetchall()`åï¼å 为æ¯å°ææç齿å°åºæ¥ï¼æ¸¸æ å°±ä»ç¬¬ä¸æ¡ç§»å¨å°æå䏿¡ãå½`print`ç»æä¹åï¼æ¸¸æ å·²ç»å¨æå䏿¡çåé¢äºãæ¥ä¸æ¥å¦æå次æå°ï¼å°±ç©ºäºï¼æå䏿¡å颿²¡æä¸è¥¿äºãè¿å¦åä»ä¹ï¼è½ä¸è½ä¸æ¬ä¹¦åé¢å·²ç»æçç¥è¯å ³èèµ·æ¥ï¼ ä¸é¢è¿è¦å®éªï¼æ£éªä¸é¢æè¯´ï¼ >>> cur.execute('select * from users') 7L >>> print cur.fetchone() #Python 3: print(cur.fetchone() ) (1L, u'qiwsir', u'123123', u'[email protected]') >>> print cur.fetchone() #Python 3: print(cur.fetchone() ) (2L, u'python', u'123456', u'[email protected]') >>> print cur.fetchone() #Python 3: print(cur.fetchone() ) (3L, u'google', u'111222', u'[email protected]') è¿æ¬¡ä¸å䏿¬¡æ§å ¨é¨æå°åºæ¥äºï¼èæ¯ä¸æ¬¡æå°ä¸æ¡ï¼ä»ç»æä¸çåºæ¥ï¼æç¶é£ä¸ªæ¸¸æ å¨ä¸æ¡ä¸æ¡åä¸ç§»å¨å¢ã注æï¼è¿æ¬¡å®éªä¸éæ°è¿è¡äºæ¥è¯¢è¯å¥ã é£ä¹ï¼æ¢ç¶æä½åå¨å¨å åä¸çå¯¹è±¡æ¶æ¸¸æ ä¼ç§»å¨ï¼è½ä¸è½è®©æ¸¸æ åä¸ç§»å¨ï¼æè ç§»å¨å°æå®ä½ç½®å¢ï¼è¿å°±æ¯é£ä¸ª`scroll()`ã >>> cur.scroll(1) >>> print cur.fetchone() (5L, u'github', u'333444', u'[email protected]') >>> cur.scroll(-2) >>> print cur.fetchone() (4L, u'facebook', u'222333', u'[email protected]') æç¶ï¼è½å¤ç§»å¨æ¸¸æ ï¼ä¸è¿è¯·ä»ç»è§å¯ï¼ä¸é¢çæ¹å¼æ¯è®©æ¸¸æ ç¸å¯¹ä¸å½åä½ç½®å䏿è åä¸ç§»å¨ãå³`cur.scroll(n)`æè `cur.scroll(n,"relative")`ï¼æææ¯ç¸å¯¹å½åä½ç½®å䏿è åä¸ç§»å¨ï¼nä¸ºæ£æ°ï¼è¡¨ç¤ºåä¸ï¼ååï¼ï¼nä¸ºè´æ°ï¼è¡¨ç¤ºåä¸ï¼ååï¼ã è¿æä¸ç§æ¹å¼å¯ä»¥å®ç°âç»å¯¹âç§»å¨ï¼ä¸æ¯âç¸å¯¹âç§»å¨ââå¢å ä¸ä¸ªåæ°"absolute"ã ä½å¨Pythonä¸ï¼åºå对象æ¯çé¡ºåºæ¯ä»0å¼å§çã >>> cur.scroll(2, "absolute") #åå°åºå·æ¯2,使åç¬¬ä¸æ¡ >>> print cur.fetchone() #Python 3: print(cur.fetchone() ) (3L, u'google', u'111222', u'[email protected]') >>> cur.scroll(1, "absolute") >>> print cur.fetchone() #Python 3: print(cur.fetchone() ) (2L, u'python', u'123456', u'[email protected]') >>> cur.scroll(0, "absolute") #åå°åºå·æ¯0,峿åtupleçç¬¬ä¸æ¡ >>> print cur.fetchone() #Python 3: print(cur.fetchone() ) (1L, u'qiwsir', u'123123', u'[email protected]') è³æ¤ï¼å·²ç»çæäº`cur.fetchall()`å`cur.fetchone()`以å`cur.scroll()`å ä¸ªæ¹æ³ï¼è¿æå¦å¤ä¸ä¸ªââ`cur.fetchmany()`ï¼å¨å颿ä½çåºç¡ä¸ç»§ç»ã >>> cur.fetchmany(3) ((2L, u'python', u'123456', u'[email protected]'), (3L, u'google', u'111222', u'[email protected]'), (4L, u'facebook', u'222333', u'[email protected]')) ä¸é¢è¿ä¸ªæä½ï¼å°±æ¯å®ç°äºä»å½åä½ç½®ï¼æ¸¸æ æååºå·ä¸º1çä½ç½®ï¼å³ç¬¬äºæ¡è®°å½ï¼å¼å§ï¼å«å½åä½ç½®ï¼åä¸ååº3æ¡è®°å½ã è¯»åæ°æ®ï¼å¥½åæç¹å°å¦åãç»ç»ç¢ç£¨ï¼è¿æ¯æéççã Pythonæ»æ¯è½å¤ä¸ºæä»¬çæ³çï¼å¨è¿æ¥å¯¹è±¡çæ¸¸æ æ¹æ³ä¸æä¾äºä¸ä¸ªåæ°ï¼å¯ä»¥å®ç°å°è¯»åå°çæ°æ®åæåå ¸å½¢å¼ï¼è¿æ ·å°±æä¾äºå¦å¤ä¸ç§è¯»åæ¹å¼ã >>> cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) >>> cur.execute("select * from users") 7L >>> cur.fetchall() ({'username': u'qiwsir', 'password': u'123123', 'id': 1L, 'email': u'[email protected]'}, {'username': u'mypython', 'password': u'123456', 'id': 2L, 'email': u'[email protected]'}, {'username': u'google', 'password': u'111222', 'id': 3L, 'email': u'[email protected]'}, {'username': u'facebook', 'password': u'222333', 'id': 4L, 'email': u'[email protected]'}, {'username': u'github', 'password': u'333444', 'id': 5L, 'email': u'[email protected]'}, {'username': u'docker', 'password': u'444555', 'id': 6L, 'email': u'[email protected]'}, {'username': u'\u8001\u9f50', 'password': u'9988', 'id': 7L, 'email': u'[email protected]'}) è¿æ ·ï¼å¨å ç»éé¢çå ç´ å°±æ¯ä¸ä¸ªä¸ä¸ªåå ¸ï¼ >>> cur.scroll(0,"absolute") >>> for line in cur.fetchall(): ... print line["username"] #Python 3: print(line["username"]) ... qiwsir mypython google ... æ ¹æ®åå ¸å¯¹è±¡çç¹ç¹æ¥è¯»åäºâé®-å¼âã ###æ´æ°æ°æ® çæäºåé¢çæä½ï¼åå°è¿éï¼ä¸å齿¾å¾ç®åäºï¼ä½ä»è¦æéçæ¯ï¼å¦ææ´æ°å®æ¯ï¼åæå ¥æ°æ®ä¸æ ·ï¼é½éè¦`commit()`æ¥æäº¤ä¿åã >>> cur.execute("update users set username=%s where id=2",("mypython")) 1L >>> cur.execute("select * from users where id=2") 1L >>> cur.fetchone() (2L, u'mypython', u'123456', u'[email protected]') 仿ä½ä¸çåºæ¥äºï¼å·²ç»å°æ°æ®åºä¸ç¬¬äºæ¡çç¨æ·åä¿®æ¹ä¸ºmypythonäºï¼ç¨çå°±æ¯updateè¯å¥ã ä¸è¿ï¼è¦ççå®ç°å¨æ°æ®åºä¸çæ´æ°ï¼è¿è¦è¿è¡ï¼ >>> conn.commit() è¿æä¸ªå°å°¾å·´ï¼å½ä½ æä½æ°æ®å®æ¯ï¼ä¸è¦å¿è®°å ³é¨ï¼ >>> cur.close() >>> conn.close() é¨é好äºï¼æ¾å¿ç¦»å¼ã ------ [æ»ç®å½](./index.md) | [ä¸èï¼mysqlæ°æ®åº(1)](./230.md) | [ä¸èï¼mongodbæ°æ®åº](./232.md) å¦æä½ è®¤ä¸ºæå¿ è¦æèµæï¼è¯·éè¿æ¯ä»å®ï¼**[email protected]**,ä¸èææ¿ã