mysql安装教程
mysql语法大全
python模块之 aiomysql 异步mysql
一、安装
pip install pymysql
二、连接数据库
import pymysql # 导入模块
conn = pymysql.connect(host="localhost",user="testuser",password="test1comc3",database="TESTDB" )
cursor = conn.cursor()
三、相关函数
- pymysql.connect 连接数据库
pymysql.connect(
host=None, # 要连接的主机地址
user=None, # 用于登录的数据库用户
password='', # 密码
database=None, # 要连接的数据库
port=0, # 端口,一般为 3306
unix_socket=None, # 选择是否要用unix_socket而不是TCP/IP
charset='', # 字符编码
sql_mode=None, # Default SQL_MODE to use.
read_default_file=None, # 从默认配置文件(my.ini或my.cnf)中读取参数
conv=None, # 转换字典
use_unicode=None, # 是否使用 unicode 编码
client_flag=0, # Custom flags to send to MySQL. Find potential values in constants.CLIENT.
cursorclass=, # 选择 Cursor 类型
init_command=None, # 连接建立时运行的初始语句
connect_timeout=10, # 连接超时时间,(default: 10, min: 1, max: 31536000)
ssl=None, # A dict of arguments similar to mysql_ssl_set()'s parameters.For now the capath and cipher arguments are not supported.
read_default_group=None, # Group to read from in the configuration file.
compress=None, # 不支持
named_pipe=None, # 不支持
no_delay=None, #
autocommit=False, # 是否自动提交事务
db=None, # 同 database,为了兼容 MySQLdb
passwd=None, # 同 password,为了兼容 MySQLdb
local_infile=False, # 是否允许载入本地文件
max_allowed_packet=16777216, # 限制 `LOCAL DATA INFILE` 大小
defer_connect=False, # Don't explicitly connect on contruction - wait for connect call.
auth_plugin_map={}, #
read_timeout=None, #
write_timeout=None,
bind_address=None # 当客户有多个网络接口,指定一个连接到主机
)
- conn.commit() 提交事务,每次修改表时都需要调用,如:插入、删除、修改
cursor.execute("INSERT INTO table_name (column_1, column_2, ...) VALUES (value1,value2,...)")
conn.commit()
cursor.close()
- conn.close() 关闭数据库
- conn.rollback() 回滚事务
- conn.select_db(baseName) 切换数据库
- conn.cursor(cursor) 获取游标对象,操作数据库
import pymysql # 打开数据库连接
cursor = conn.cursor(pymysql.cursors.Cursor)
#cursor 参数
pymysql.cursors.Cursor:普通的游标对象,默认创建的游标对象
pymysql.cursors.SSCursor:不缓存游标,主要用于当操作需要返回大量数据的时候
pymysql.cursors.DictCursor:以字典的形式返回操作结果
pymysql.cursors.SSDictCursor:不缓存游标,将结果以字典的形式进行返回
- cursor.close() 关闭游标对象
- cursor.execute(query) 执行sql语句
cursor.execute("SELECT * FROM table_name")
- cursor.executemany(query,params) 用于执行sql语句,如:批量更新
sql = 'insert into myTable (created_day,name,count) values(%s,%s,%s) ON DUPLICATE KEY UPDATE'
args=[("2012-08-27","name1",100),("2012-08-27","name1",200),("2012-08-27","name2",300)]
cursor.executemany(sql, args)
conn.commit()
cursor.close()
- cursor.fetchone() 获取查询结果单条记录
- cursor.fetchmany(size) 获取查询结果集中指定数量的记录,size默认为1
- cursor.fetchall() 获取查询结果集中所有记录
- cursor.nextset()跳至下一个可用的结果集
- cursor.setinputsizes(sizes) 参数预先定义内存区域
- cursor.setoutputsize(size[, col]) 获取大数据值设定缓冲区尺寸