[python] pymysql基础使用
-
Connection 对象
conn = pymysql.connect( host='localhost', port=3306, user='root', passwd='root', db='dbtest')
-
参数port:连接的mysql主机的端口,默认是3306
-
参数database:数据库的名称
-
参数user:连接的用户名
-
参数password:连接的密码
-
参数charset:通信采用的编码方式,推荐使用utf8
方法
conn.
- close()关闭连接
- commit()提交
- cursor()返回Cursor对象,用于执行sql语句并获得结果
基本使用:
import pymysql
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
cursor = conn.cursor()
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
cursor.execute(sql)
cursor.close()
conn.close()
返回字典格式数据:cursor=pymysql.cursors.DictCursor
import pymysql
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
cursor.execute(sql)
cursor.close()
conn.close()
SQL语句编写(占位符的应用)
执行的关键还是在SQL语句的编写。这类有几种方式:
-
完整的SQL语句,直接调用
sql_select = "select * from tablename" cursor.execute(sql_select)
-
利用占位符传递参数。这里要注意,无论整数、字符串,占位符都为 %s,且不需加引号 , 在sql语句中借助占位符,组成完整SQL
tabel = 'persons' sql = "select * from %s" % table cursor.execute(sql)
-
参数替代
tabel = 'persons' sql = "select * from %s" cursor.execute(sql, table) # 参数多于1个时,execute()传入参数应为list或者tuple类型 sql_update = "update persons set birthday=%s where ID=%s" cursor.execute(sql_update, ('2001/7/5', 3))
-
字典类型传递变量,这里要保证占位符的keys要包含在传递的字典keys中
# 这里的占位符%s修改为%(字典keyname)s sql_insert = "insert into persons(ID, LastName, FirstName) " \ "values (%(ID)s, %(LastName)s, %(FirstName)s)" message = { "ID": 7, "LastName": "Jone", "FirstName": "Bob", } cursor.execute(sql_insert, message)
查询
fetchone():获取下一行数据,第一次为首行;
fetchall():获取所有行数据源
fetchmany(4):获取4行数据
增删改查详看下
https://www.cnblogs.com/liwenzhou/p/8032238.html
https://www.cnblogs.com/Eva-J/articles/9677452.html