Python 数据库 && MySQL

python与数据库的连接

python3不支持mysqldb(python2支持),使用pymysql代替

但也有说法 https://blog.csdn.net/liuweiyuxiang/article/details/80666773

这里用pymysql

操作流程

  1. 创建connection
  2. 获取cursor
  3. 执行增删改查的操作
  4. 处理数据
  5. 关闭cursor
  6. 关闭connection

创建connection

import pymysql.cursors

HOST = '127.0.0.1'
PORT = 3306
USER = 'root'
PASSWD = 'root'
DB = 'hxx_test'
CHARSET = 'utf8'
#pymysql.cursors.DictCursor

connection = pymysql.connect(host=HOST,
                             port=PORT,
                             user=USER,
                             passwd=PASSWD,
                             db=DB,
                             charset=CHARSET)

返回的是cursor对象(游标对象)用于执行查询和获取结果

常用参数说明

获取cursor对象

cursor = connection.cursor()

典例

import pymysql.cursors

HOST = '127.0.0.1'
PORT = 3306
USER = 'root'
PASSWD = 'root'
DB = 'hxx_test'
CHARSET = 'utf8'
#pymysql.cursors.DictCursor

connection = pymysql.connect(host=HOST,
                             port=PORT,
                             user=USER,
                             passwd=PASSWD,
                             db=DB,
                             charset=CHARSET)

try:
	cursor = connection.cursor()
	sql = "select * from my_first"
	cursor.execute(sql)
	result = cursor.fetchall()
	for data in result:
		print(data)
except Exception:print("查询失败!")

cursor.close()
connection.close()

import pymysql.cursors



conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='root',
    database='hxx_test',
    charset='utf8'
)

cursor = conn.cursor()

#解释一下, 这是在操作hxx_test数据库中的my_first这张表

# 插入sql;
sql_insert = "insert into my_first (fds,fggtrh,qq,kkk) values (7,8,9,10)"
# 更新sql;
sql_update = "update my_first set qq = 99 where fds=33"
# 删除sql;
sql_delete = "delete from my_first where fds = 1"

# 把一个事务放到一个try块里,如果出现异常就回滚;
try:
    # 开启事务;
    conn.begin()

    cursor.execute(sql_insert)

    cursor.execute(sql_update)

    cursor.execute(sql_delete)

    # 确认提交;
    conn.commit()

except Exception as e:
    # 若有异常就回滚;
    conn.rollback()

cursor.close()
conn.close()

操作的那个数据库是这样的

发布了396 篇原创文章 · 获赞 172 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/104723896