¸üÐÂʱ¼ä:2020Äê12ÔÂ10ÈÕ17ʱ18·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

pymysql¿âÖÐÌṩÁËÁ½¸ö³£ÓõĶÔÏó£ºConnection¶ÔÏóºÍCursor¶ÔÏó¡£
1. Connection¶ÔÏó
Connection¶ÔÏóÓÃÓÚ½¨Á¢ÓëMySQLÊý¾Ý¿âµÄÁ¬½Ó£¬¿ÉÒÔͨ¹ýÒÔÏ·½·¨´´½¨£º
connect(²ÎÊýÁбí)
ÒÔÉÏ·½·¨Öеij£ÓòÎÊý¼°Æäº¬ÒåÈçÏ£º
·²ÎÊýhost£¬Êý¾Ý¿âËùÔÚÖ÷»úµÄIPÖ÷»úµØÖ·£¬ÈôÊý¾Ý¿âλÓÚ±¾»ú£¬¿ÉÉèΪlocalhost¡£
·²ÎÊýport£¬Êý¾Ý¿âÕ¼ÓõĶ˿ڣ¬Ä¬ÈÏÊÇ3306¡£
·²ÎÊýdatabase £¬±íʾÊý¾Ý¿âµÄÃû³Æ¡£
·²ÎÊýuser£¬Á¬ÈëÊý¾Ý¿âʱʹÓõÄÓû§Ãû¡£
·²ÎÊýpassword £¬Óû§ÃÜÂë¡£
·²ÎÊýcharset£¬±íʾͨÐŲÉÓõıàÂ뷽ʽ£¬ÍƼöʹÓÃutf8¡£
ʹÓÃconnect()·½·¨Ïò±¾µØÊý¾Ý¿â½¨Á¢Á¬½Ó£¬Ê¾Àý´úÂëÈçÏ£º
conn = pymysql.connect(
host='localhost',
user='root',
password ='123456',
database ='dbtest',
charset='utf8')
pymysql¿âΪConnection¶ÔÏóÌṩÁËһЩʵÏÖÁËÊý¾Ý¿â²Ù×÷µÄ³£Ó÷½·¨£¬ÕâЩ·½·¨µÄ˵Ã÷Èç±í1Ëùʾ¡£
±í1 Connection¶ÔÏóµÄ³£Ó÷½·¨
| ·½·¨ | ˵Ã÷ |
|---|---|
| close() | ¹Ø±ÕÁ¬½Ó |
| commit() | Ìá½»µ±Ç°ÊÂÎñ |
| rollback() | »Ø¹öµ±Ç°ÊÂÎñ¡£ÊÂÎñ»Ø¹öÊÇÖ¸£¬ÊÂÎñÔÚÔËÐйý³ÌÖÐÒò·¢ÉúijÖÖ¹ÊÕ϶ø²»ÄܼÌÐøÖ´ÐУ¬Ê¹µÃϵͳ½«ÊÂÎñÖжÔÊý¾Ý¿âµÄËùÓÐÒÑÍê³ÉµÄ¸üвÙ×÷È«²¿³·Ïú£¬½«Êý¾Ý¿â·µ»Øµ½ÊÂÎñ¿ªÊ¼Ê±µÄ״̬¡£ |
| cursor() | ´´½¨²¢·µ»ØCursor¶ÔÏó |
2. Cursor¶ÔÏó
Cursor¶ÔÏó¼´Óαê¶ÔÏó£¬ËüÖ÷Òª¸ºÔðÖ´ÐÐSQLÓï¾ä¡£Cursor¶ÔÏóͨ¹ýµ÷ÓÃConnection¶ÔÏóµÄcursor()·½·¨´´½¨¡£Ê¹ÓÃÉÏÎÄ´´½¨µÄConnection¶ÔÏóconn»ñµÃÓαê¶ÔÏó£¬Ê¾Àý´úÂëÈçÏ£º
cs_obj = conn.cursor()
Cursor¶ÔÏóµÄ³£ÓÃÊôÐԺͷ½·¨·Ö±ðÈç±í2ºÍ±í3Ëùʾ¡£
±í2 Cursor¶ÔÏóµÄ³£ÓÃÊôÐÔ
| ÊôÐÔ | ˵Ã÷ |
|---|---|
| rowcount | »ñÈ¡×î½üÒ»´Îexecute()Ö´ÐкóÊÜÓ°ÏìµÄÐÐÊý |
| connection | »ñµÃµ±Ç°Á¬½Ó¶ÔÏó |
±í3 Cursor¶ÔÏóµÄ³£Ó÷½·¨
| ·½·¨ | ˵Ã÷ |
|---|---|
| close() | ¹Ø±ÕÓαê |
| execute(query, args=None) | Ö´ÐÐSQLÓï¾ä£¬·µ»ØÊÜÓ°ÏìµÄÐÐÊý |
| fetchall() | Ö´ÐÐSQL²éѯÓï¾ä£¬½«½á¹û¼¯£¨·ûºÏSQLÓï¾äÖÐÌõ¼þµÄËùÓÐÐм¯ºÏ£©ÖеÄÿÐÐת»¯ÎªÒ»¸öÔª×飬ÔÙ½«ÕâЩԪ×é×°ÈëÒ»¸öÔª×é·µ»Ø |
| fetchone() | Ö´ÐÐSQL²éѯÓï¾ä£¬»ñÈ¡ÏÂÒ»¸ö²éѯ½á¹û¼¯ |
¶àѧһÕУºSQLÓï¾ä
SQL£¨È«³ÆStructure Query Language£©Êǽṹ»¯²éѯÓïÑÔ£¬Ò²ÊÇĿǰӦÓýϹ㷺µÄÓÃÓÚ·ÃÎʺͲÙ×÷¹ØÏµÊý¾Ý¿âµÄ±ê×¼ÓïÑÔ£¬¾ßÓÐÒ×ѧÒ×Óᢹ¦ÄܷḻµÄÌØµã¡£ÏÂÃæ½«¶Ô»ù´¡µÄSQLÓï¾ä½øÐнéÉÜ¡£
(1)´´½¨Êý¾Ý¿â
´´½¨Êý¾Ý¿âʹÓÓcreate database”Óï¾ä£¬Óï·¨¸ñʽÈçÏ£º
create database Êý¾Ý¿âÃû³Æ
´´½¨Êý¾Ý¿âdbtestµÄʾÀýÈçÏ£º
create database dbtest
(2)ɾ³ýÊý¾Ý¿â
ɾ³ýÊý¾Ý¿âʹÓÓdrop database”Óï¾ä£¬Óï·¨¸ñʽÈçÏ£º
drop database Êý¾Ý¿âÃû³Æ
ɾ³ýÊý¾Ý¿âdbtestµÄʾÀýÈçÏ£º
drop database dbtest
(3)´´½¨±í
´´½¨±íʹÓÓcreate table”Óï¾ä£¬Óï·¨¸ñʽÈçÏ£º
create table ±íÃû³Æ(
×Ö¶ÎÃû ×Ö¶ÎÀàÐÍ [Ô¼Êø],
×Ö¶ÎÃû ×Ö¶ÎÀàÐÍ [Ô¼Êø],
......
×Ö¶ÎÃû ×Ö¶ÎÀàÐÍ [Ô¼Êø]
)
MySQLÖ§³ÖµÄ×Ö¶ÎÀàÐͺܷḻ£¬Ö÷Òª°üÀ¨ÊýÖµ¡¢ÈÕÆÚºÍ×Ö·û´®ÀàÐÍ¡£ÆäÖг£¼ûµÄÊýÖµÀàÐÍÓÐint¡¢double¡¢floatµÈ£¬³£¼ûµÄÈÕÆÚÀàÐÍÓÐdate¡¢time¡¢year£¬³£¼ûµÄ×Ö·û´®ÀàÐÍÓÐcharºÍvarchar¡£ÔÚÉè¼ÆÊý¾Ý±íµÄ×Ö¶Îʱ£¬¿ÉÒÔΪÆäÌí¼ÓÔ¼Êø£¬ÀýÈ磬primary keyÓÃÓÚÉèÖÃij¸ö×Ö¶ÎΪÖ÷¼ü£¬uniqueÓÃÓÚÉèÖÃij¸ö×ֶεÄֵΨһ£¬not nullÓÃÓÚÉèÖÃij¸ö×ֶβ»ÄÜÓпÕÖµ¡£
ÔÚ֮ǰ´´½¨µÄÊý¾Ý¿âdbtestÖд´½¨Êý¾Ý±íusers£¬Ê¾ÀýÈçÏ£º
use dbtest; # ʹÓÃdbtestÊý¾Ý¿â
create table users(
UserID int primary key, # UserID×ֶα»ÉèÖÃΪÖ÷¼ü
UserName varchar(20) unique, # UserNameµÄÖµÊÇΩһµÄ£¬²»ÄÜÖØ¸´
UserPwd varchar(20) not null # UserPwd×ֶεÄÖµ²»ÄÜΪ¿Õ
)
(4)Êý¾ÝµÄÔö¼Ó
Ôö¼ÓÊý¾ÝʹÓÓinsert into”Óï¾äʵÏÖ£¬Óï·¨¸ñʽÈçÏ£º
insert into table_name (×Ö¶Î1, ×Ö¶Î2,......×Ö¶În)
values (Öµ1, Öµ2, ......Öµn);
ÀýÈ磬Ïòusers±íÀïÌí¼Ó2ÐÐÊý¾Ý£º
insert into users(userid,username,userpwd)
values(1,'xiaoMing','123456');
insert into users(userid,username,userpwd)
values(2,'xiaoHong','654321');
(5) Êý¾ÝµÄɾ³ý
ɾ³ýÊý¾ÝÖ¸´ÓÊý¾Ý¿âÖн«¼Ç¼³¹µ×ɾ³ý£¬Ê¹ÓÓdelete”Óï¾äºÍwhere×Ó¾äʵÏÖ£¬Óï·¨¸ñʽÈçÏ£º
delete from ±íÃû³Æ where Ìõ¼þ
ÀýÈ磬´Óusers±íÖн«µÚ1ÌõÊý¾Ýɾ³ý£º
delete from users where UserID = 1
(6) Êý¾ÝµÄ¸üÐÂ
¸üÐÂÊý¾ÝʹÓÓupdate”Óï¾äºÍwhere×Ó¾äʵÏÖ£¬Óï·¨¸ñʽÈçÏ£º
update ±íÃû³Æ
set ×Ö¶Î1 = ÊýÖµ1,
×Ö¶Î2 = ÊýÖµ2,
×Ö¶Î3 = ÊýÖµ3.. ..
where Ìõ¼þ
ÀýÈ磬½«±íusersÖÐUserIDΪ1µÄÓû§Ãû³Æ¸ÄΪ“С»ª”£º
update users set UserName = "С»ª" where UserID = 1
(7) Êý¾ÝµÄ²éѯ
²éѯÊý¾ÝʹÓÓselect”Óï¾äʵÏÖ£¬Óï·¨¸ñʽÈçÏ£º
select ×Ö¶Î1,×Ö¶Î2,......×Ö¶În from ±íÃû³Æ
»¹¿ÉÒÔʹÓÃselectÓï¾äºÍwhere×Ó¾äʵÏÖÌõ¼þ²éѯ£¬Óï·¨¸ñʽÈçÏ£º
select ×Ö¶Î1,×Ö¶Î2,......×Ö¶În from ±íÃû³Æ where Ìõ¼þ
ÀýÈ磬´Óusers±íÖвéѯËùÓеÄÊý¾Ý£º
use dbtest; select * from users»ñÈ¡¡¾PythonÊÓÆµ½Ì³Ì+±Ê¼Ç+Ô´Âë¡¿¼Ó²¥æ¤
²ÂÄãϲ»¶£º
ÅÀ³æ·ÖÀà·ÖÎö£ºÍøÂçÅÀ³æÓÐÄÄЩ·ÖÀà?
djangoµ¥Ôª²âÊÔ£ºÈçºÎÖ´Ðе¥Ôª²âÊÔ?
ʹÓÃPythonÓïÑÔ¿ª·¢ÅÀ³æÓÐʲôÓÅÊÆ?
»º´æ´©Í¸µÄ³£¼û½â¾ö·½°¸
python+Êý¾Ý·ÖÎö¿Î³Ì
±±¾©Ð£Çø