[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

posted @ 2019-09-09 12:19  Moke丶青  阅读(138)  评论(0编辑  收藏  举报