前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3快速入门(十一)——Pyt

Python3快速入门(十一)——Pyt

作者头像
py3study
发布2020-01-03 10:40:55
6320
发布2020-01-03 10:40:55
举报
文章被收录于专栏:python3python3

Python3快速入门(十一)——Python3数据库操作

一、mysql-connector 驱动

1、mysql-connector 简介

mysql-connector 是 MySQL 官方提供的驱动器。 使用pipenv进行包管理,安装命令如下: pipenv install mysql-connector

2、mysql-connector常用接口

mysql.connector.connect(*args, **kwargs) 创建一个数据库连接,返回MySQLConnectionAbstract实例。connect接收可变参数和关键字可变参数,通常接收可变参数时使用可变参数指定默认参数,接收关键字可变参数时使用字典类型参数。常用关键字如下: 'host': '127.0.0.1', 'user': 'root', 'password': 'root', 'port': 3306, 'database': 'test', 'charset': 'utf8'

代码语言:javascript
复制
import mysql.connector

MYSQL_CONFIG = {
    "host":"47.110.45.34",
    "port":"3306",
    "user":"root",
    "passwd":"xxxxxx"
}

if __name__ == '__main__':
    mysql_db = mysql.connector.connect(**MYSQL_CONFIG)
    print(mysql_db)

MySQLConnectionAbstract常用接口如下 mysql.connector.close() 断开到MySQL服务器的连接 mysql.connector.disconnect() 断开到MySQL服务器的连接 mysql.connector.reconnect(attempts=1, delay=0) 重新建立到MySQL服务器的连接 mysql.connector.ping(reconnect=False, attempts=1, delay=0) 检查MySQL服务器的可用性 mysql.connector.commit() 提交当前事务 mysql.connector.rollback() 回滚当前事务 mysql.connector.start_transaction(consistent_snapshot=False, isolation_level=None, readonly=None) 启动事务 mysql.connector.cursor(buffered=None,raw=None,prepared=None, cursor_class=None,dictionary=None, named_tuple=None) 创建一个游标 MySQLCursorAbstract常用接口如下: MySQLCursorAbstract.close() 关闭游标 MySQLCursorAbstract.execute(operation,params=(),multi=False) 执行SQL操作 MySQLCursorAbstract.executemany(operation, seqparams) 执行SQL操作多次 MySQLCursorAbstract.fetchone() 返回查询结果集的下一行,返回一个tuple或None。 MySQLCursorAbstract.fetchmany(size=1) 返回查询结果集的后续size行,返回一个tuple的链表或空链表。 MySQLCursorAbstract.fetchall() 返回查询结果集的所有行,返回一个tuple的链表 MySQLCursorAbstract.reset(self, free=True): 重置游标到默认状态

3、mysql-connector数据库编程

代码语言:javascript
复制
# -*- coding:utf-8 -*-
import mysql.connector

if __name__ == '__main__':
    mysql_db = mysql.connector.connect(
        host="47.110.45.34",
        port="3306",
        user="root",
        passwd="YangYuLiang@123.com")
    mysql_cursor = mysql_db.cursor()
    try:
        # 创建数据库
        mysql_cursor.execute("CREATE DATABASE sites;")
        # 使用数据库
        mysql_cursor.execute("USE sites;")
        # 创建数据库表
        mysql_cursor.execute("CREATE TABLE website (name VARCHAR(255), url VARCHAR(255));")
        # 创建主键
        mysql_cursor.execute("ALTER TABLE website ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY;")
        # 插入数据
        sql = "INSERT INTO website (name, url) VALUES (%s, %s);"
        value = ("BaiDu", "https://www.baidu.com")
        mysql_cursor.execute(sql, value)
        mysql_db.commit()
    except:
        mysql_db.rollback()
    # 批量插入数据
    sql = "INSERT INTO website (name, url) VALUES (%s, %s);"
    value = [
        ('Google', 'https://www.google.com'),
        ('Github', 'https://www.github.com'),
        ('TaoBao', 'https://www.taobao.com'),
        ('HuaWei', 'https://www.huawei.com')
    ]
    try:
        mysql_cursor.executemany(sql, value)
        # 更新记录
        sql = "UPDATE website SET name = 'GitHub' WHERE name = 'Github'"
        mysql_cursor.execute(sql)
        mysql_db.commit()
    except:
        mysql_db.rollback()
    # 查询记录
    try:
        mysql_cursor.execute("SELECT * FROM website;")
        result = mysql_cursor.fetchall()  # fetchall() 获取所有记录
        for x in result:
            print(x)
        # 删除记录
        mysql_cursor.execute("DELETE FROM website WHERE name='Google';")
        # 删除数据库
        mysql_cursor.execute("DROP DATABASE sites;")
        mysql_db.commit()
    except:
        # 回滚
        mysql_db.rollback()
    # 关闭数据库连接
    mysql_db.close()

二、PyMySQL驱动

1、PyMySQL简介

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 使用pipenv进行包管理,安装命令如下: pipenv install pymysql

2、PyMySQL常用接口

pymysql.Connect(*args, **kwargs) 连接到MySQL数据库,建立一个socket连接并返回Connection对象。Connection接收的关键字参数如下: Connection(host=None, user=None, password="", database=None, port=0, unix_socket=None, charset='', sql_mode=None, read_default_file=None, conv=None, use_unicode=None, client_flag=0, cursorclass=Cursor, init_command=None, connect_timeout=10, ssl=None, read_default_group=None, compress=None, named_pipe=None, autocommit=False, db=None, passwd=None, local_infile=False, max_allowed_packet=1610241024, defer_connect=False, auth_plugin_map=None, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False, program_name=None, server_public_key=None) Connection常用接口如下: Connection.close() 发送退出消息,关闭到MySQL数据库的socket连接 Connection.begin() 开启事务 Connection.commit() 提交变化到稳定存储 Connection.rollback() 回滚当前事务 Connection.select_db(self, db): 设置当前数据库,db为数据库名称 Connection.cursor(self, cursor=None) 创建一个用于SQL操作的游标 Cursor常用接口如下: Cursor.close() 关闭游标 Cursor.execute(query, args=None) 执行SQL查询操作,返回受影响的行的数量 Cursor.executemany(query, args) 批量执行SQL查询操作,返回受影响的行的数量 Cursor.fetchone() Fetch下一行 Cursor.fetchmany(size=None) Fetch多行 Cursor.fetchall() Fetch所有的行

3、PyMySQL数据库编程

代码语言:javascript
复制
import pymysql

if __name__ == '__main__':
    mysql_db = pymysql.Connect(
        host="47.110.45.34",
        port=3306,
        user='root',
        password='YangYuLiang@123.com')
    mysql_cursor = mysql_db.cursor()
    try:
        # 创建数据库
        mysql_cursor.execute("CREATE DATABASE sites;")
        # 使用数据库
        mysql_cursor.execute("USE sites;")
        # 创建数据库表
        mysql_cursor.execute("CREATE TABLE website (name VARCHAR(255), url VARCHAR(255));")
        # 创建主键
        mysql_cursor.execute("ALTER TABLE website ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY;")
        # 插入数据
        sql = "INSERT INTO website (name, url) VALUES (%s, %s);"
        value = ("BaiDu", "https://www.baidu.com")
        mysql_cursor.execute(sql, value)
        mysql_db.commit()
    except:
        mysql_db.rollback()
    # 批量插入数据
    sql = "INSERT INTO website (name, url) VALUES (%s, %s);"
    value = [
        ('Google', 'https://www.google.com'),
        ('Github', 'https://www.github.com'),
        ('TaoBao', 'https://www.taobao.com'),
        ('HuaWei', 'https://www.huawei.com')
    ]
    try:
        mysql_cursor.executemany(sql, value)
        # 更新记录
        sql = "UPDATE website SET name = 'GitHub' WHERE name = 'Github'"
        mysql_cursor.execute(sql)
        mysql_db.commit()
    except:
        mysql_db.rollback()
    # 查询记录
    try:
        mysql_cursor.execute("SELECT * FROM website;")
        result = mysql_cursor.fetchall()  # fetchall() 获取所有记录
        for x in result:
            print(x)
        # 删除记录
        mysql_cursor.execute("DELETE FROM website WHERE name='Google';")
        # 删除数据库
        mysql_cursor.execute("DROP DATABASE sites;")
        mysql_db.commit()
    except:
        # 回滚
        mysql_db.rollback()
    # 关闭数据库连接
    mysql_db.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python3快速入门(十一)——Python3数据库操作
    • 一、mysql-connector 驱动
      • 1、mysql-connector 简介
      • 2、mysql-connector常用接口
      • 3、mysql-connector数据库编程
    • 二、PyMySQL驱动
      • 1、PyMySQL简介
      • 2、PyMySQL常用接口
      • 3、PyMySQL数据库编程
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档