{"id":1052,"date":"2023-03-24T09:47:07","date_gmt":"2023-03-24T01:47:07","guid":{"rendered":""},"modified":"2023-03-24T09:47:07","modified_gmt":"2023-03-24T01:47:07","slug":"Python PyMySQL","status":"publish","type":"post","link":"https:\/\/bianchenghao6.com\/1052.html","title":{"rendered":"Python PyMySQL"},"content":{"rendered":"
\n
\u641e\u61c2Python PyMySQL\u7684\u57fa\u672c\u64cd\u4f5c<\/span>\n <\/div>\n \u60a8\u5df2\u7ecf\u521b\u5efa\u4e86\u6570\u636e\u5e93 TESTDB.<\/span> fetchone(): \u8be5\u65b9\u6cd5\u83b7\u53d6\u4e0b\u4e00\u4e2a\u67e5\u8be2\u7ed3\u679c\u96c6\u3002\u7ed3\u679c\u96c6\u662f\u4e00\u4e2a\u5bf9\u8c61<\/span>
\n PyMySQL \u8fde\u63a5\u6570\u636e\u5e93\uff0c\u5e76\u5b9e\u73b0\u7b80\u5355\u7684\u589e\u5220\u6539\u67e5\u3002\n <\/div>\n\u4ec0\u4e48\u662f PyMySQL\uff1f<\/h3>\n
\n
PyMySQL \u9075\u5faa Python \u6570\u636e\u5e93 API v2.0 \u89c4\u8303\uff0c\u5e76\u5305\u542b\u4e86 pure-Python MySQL \u5ba2\u6237\u7aef\u5e93\u3002\n <\/div>\n
\nPyMySQL \u5b89\u88c5<\/h3>\n
\n
PyMySQL \u4e0b\u8f7d\u5730\u5740\uff1ahttps:\/\/github.com\/PyMySQL\/PyMySQL\u3002
\n
\u5982\u679c\u8fd8\u672a\u5b89\u88c5\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u6700\u65b0\u7248\u7684 PyMySQL\uff1a\n <\/div>\n $ pip3 install PyMySQL
<\/span><\/code><\/pre>\n<\/p><\/div>\n $ git clone https:\/\/github.com\/PyMySQL\/PyMySQL
$ cd PyMySQL\/
$ python setup.py install
<\/span><\/code><\/pre>\n<\/p><\/div>\n $ # X.X \u4e3a PyMySQL \u7684\u7248\u672c\u53f7
<\/span> $ curl -L https:\/\/github.com\/PyMySQL\/PyMySQL\/tarball\/pymysql-X.X | tar xz
$ cd PyMySQL*
$ python setup.py install
$ # \u73b0\u5728\u4f60\u53ef\u4ee5\u5220\u9664 PyMySQL* \u76ee\u5f55
<\/span> <\/span><\/code><\/pre>\n<\/p><\/div>\n
\n https:\/\/pypi.python.org\/pypi\/setuptools \u627e\u5230\u5404\u4e2a\u7cfb\u7edf\u7684\u5b89\u88c5\u65b9\u6cd5\u3002\n <\/div>\n $ wget https:\/\/bootstrap.pypa.io\/ez_setup.py
$ python ez_setup.py
<\/span><\/code><\/pre>\n<\/p><\/div>\n
\n\u6570\u636e\u5e93\u8fde\u63a5<\/h3>\n
\n \u5728TESTDB\u6570\u636e\u5e93\u4e2d\u60a8\u5df2\u7ecf\u521b\u5efa\u4e86\u8868 EMPLOYEE<\/span>
\n EMPLOYEE\u8868\u5b57\u6bb5\u4e3a FIRST_NAME, LAST_NAME, AGE, SEX \u548c INCOME\u3002<\/span>
\n \u8fde\u63a5\u6570\u636e\u5e93TESTDB\u4f7f\u7528\u7684\u7528\u6237\u540d\u4e3a \"testuser\" \uff0c\u5bc6\u7801\u4e3a \"test123\",\u4f60\u53ef\u4ee5\u81ea\u5b9a\u4e49root\u7528\u6237\u540d\u53ca\u5176\u5bc6\u7801\u3002<\/span>
\n \u5728\u4f60\u7684\u673a\u5b50\u4e0a\u5df2\u7ecf\u5b89\u88c5\u4e86 Python MySQLdb \u6a21\u5757\u3002<\/span> <\/p>\n import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528 cursor() \u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u6e38\u6807\u5bf9\u8c61 cursor
<\/span> cursor <\/span>= db.cursor<\/span>()
# \u4f7f\u7528 execute() \u65b9\u6cd5\u6267\u884c SQL \u67e5\u8be2
<\/span> cursor.execute<\/span>(\"SELECT VERSION()\"<\/span>)
# \u4f7f\u7528 fetchone() \u65b9\u6cd5\u83b7\u53d6\u5355\u6761\u6570\u636e.
<\/span> data = cursor.fetchone<\/span>()
print <\/span>(\"Database version : %s \"<\/span> % data)
# \u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\nDatabase version : 5.5.20-log
<\/span><\/code><\/pre>\n<\/p><\/div>\n
\n\u521b\u5efa\u6570\u636e\u5e93\u8868<\/h3>\n
import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528 cursor() \u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u6e38\u6807\u5bf9\u8c61 cursor
<\/span> cursor <\/span>= db.cursor<\/span>()
# \u4f7f\u7528 execute() \u65b9\u6cd5\u6267\u884c SQL\uff0c\u5982\u679c\u8868\u5b58\u5728\u5219\u5220\u9664
<\/span> cursor.execute<\/span>(\"DROP TABLE if <\/span>EXISTS EMPLOYEE\"<\/span>)
# \u4f7f\u7528\u9884\u5904\u7406\u8bed\u53e5\u521b\u5efa\u8868
<\/span> sql = \"\"<\/span><\/span>\"CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) not <\/span>NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )\"\"\"
cursor.execute<\/span>(sql)
# \u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\n
\n\u6570\u636e\u5e93\u63d2\u5165\u64cd\u4f5c<\/h2>\n
import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528cursor()\u65b9\u6cd5\u83b7\u53d6\u64cd\u4f5c\u6e38\u6807
<\/span> cursor <\/span>= db.cursor<\/span>()
# SQL \u63d2\u5165\u8bed\u53e5
<\/span> sql = \"\"<\/span><\/span>\"INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac'<\/span>, 'Mohan'<\/span>, 20, 'M'<\/span>, 2000)\"\"\"
try:
# \u6267\u884csql\u8bed\u53e5
<\/span> cursor.execute<\/span>(sql)
# \u63d0\u4ea4\u5230\u6570\u636e\u5e93\u6267\u884c
<\/span> db.commit<\/span>()
except:
# \u5982\u679c\u53d1\u751f\u9519\u8bef\u5219\u56de\u6eda
<\/span> db.rollback<\/span>()
# \u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\n import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528cursor()\u65b9\u6cd5\u83b7\u53d6\u64cd\u4f5c\u6e38\u6807
<\/span> cursor <\/span>= db.cursor<\/span>()
# SQL \u63d2\u5165\u8bed\u53e5
<\/span> sql = \"INSERT INTO EMPLOYEE(FIRST_NAME, \\
LAST_NAME, AGE, SEX, INCOME) \\
VALUES ('%s'<\/span><\/span><\/span>, '%s', %s, '%s', %s)\" % \\
('Mac'<\/span>, 'Mohan'<\/span>, 20, 'M'<\/span>, 2000)
try:
# \u6267\u884csql\u8bed\u53e5
<\/span><\/span> cursor.execute<\/span>(sql)
# \u6267\u884csql\u8bed\u53e5
db.commit<\/span>()
except:
# \u53d1\u751f\u9519\u8bef\u65f6\u56de\u6eda
<\/span> db.rollback<\/span>()
# \u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\n ..................................
user_id = \"test123\"<\/span>
password = \"password\"<\/span>
con.execute<\/span>('insert into Login <\/span>values( %s, %s)'<\/span> % (user_id, password))
..................................
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u6570\u636e\u5e93\u67e5\u8be2\u64cd\u4f5c<\/h2>\n
\n fetchall(): \u63a5\u6536\u5168\u90e8\u7684\u8fd4\u56de\u7ed3\u679c\u884c.<\/span>
\n rowcount: \u8fd9\u662f\u4e00\u4e2a\u53ea\u8bfb\u5c5e\u6027\uff0c\u5e76\u8fd4\u56de\u6267\u884cexecute()\u65b9\u6cd5\u540e\u5f71\u54cd\u7684\u884c\u6570\u3002<\/span> <\/p>\n import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528cursor()\u65b9\u6cd5\u83b7\u53d6\u64cd\u4f5c\u6e38\u6807
<\/span> cursor <\/span>= db.cursor<\/span>()
# SQL \u67e5\u8be2\u8bed\u53e5
<\/span> sql = \"SELECT * from <\/span>EMPLOYEE \\
WHERE INCOME > %s\" % (1000)
try:
# \u6267\u884cSQL\u8bed\u53e5
<\/span> cursor.execute<\/span>(sql)
# \u83b7\u53d6\u6240\u6709\u8bb0\u5f55\u5217\u8868
<\/span> results = cursor.fetchall<\/span>()
for <\/span><\/span>row in <\/span>results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# \u6253\u5370\u7ed3\u679c
<\/span> print <\/span>(\"fname=%s,lname=%s,age=%s,sex=%s,income=%s\"<\/span> % \\
(fname, lname, age, sex, income ))
except:
print <\/span>(\"Error: unable to fetch data\"<\/span>)
# \u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\n fname=Mac, lname=Mohan, age=20, sex=M, income=2000
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u6570\u636e\u5e93\u66f4\u65b0\u64cd\u4f5c<\/h2>\n
import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528cursor()\u65b9\u6cd5\u83b7\u53d6\u64cd\u4f5c\u6e38\u6807
<\/span> cursor <\/span>= db.cursor<\/span>()
# SQL \u66f4\u65b0\u8bed\u53e5
<\/span> sql = \"UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '<\/span>%c'\"<\/span> % ('M'<\/span>)
try:
# \u6267\u884cSQL\u8bed\u53e5
<\/span> cursor.execute<\/span>(sql)
# \u63d0\u4ea4\u5230\u6570\u636e\u5e93\u6267\u884c
<\/span> db.commit<\/span>()
except:
# \u53d1\u751f\u9519\u8bef\u65f6\u56de\u6eda
<\/span> db.rollback<\/span>()
# \u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db.close<\/span>()
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u5220\u9664\u64cd\u4f5c<\/h2>\n
import <\/span>pymysql
# \u6253\u5f00\u6570\u636e\u5e93\u8fde\u63a5
<\/span> db = pymysql.connect<\/span>(\"localhost\"<\/span>,\"testuser\"<\/span>,\"test123\"<\/span>,\"TESTDB\"<\/span> )
# \u4f7f\u7528cursor()\u65b9\u6cd5\u83b7\u53d6\u64cd\u4f5c\u6e38\u6807
<\/span> cursor <\/span>= db.cursor<\/span>()
# SQL \u5220\u9664\u8bed\u53e5
<\/span> sql = \"DELETE from <\/span>EMPLOYEE WHERE AGE > %s\"<\/span> % (20)
try:
# \u6267\u884cSQL\u8bed\u53e5