文档章节

MySQL数据库在Python中的操作

o
 osc_wws45aot
发布于 2019/08/20 15:45
字数 1507
阅读 29
收藏 0

精选30+云产品,助力企业轻松上云!>>>

1.MySQL数据库的安装配置和启动

1.1.下载:

打开MySQL的官网www.mysql.com,发现有一个DOWNLOADS

1.2配置环境变量:

  环境变量的配置,和java的配置方式一致,就是把MySQL 的bin路径 D:\mysql-5.7.20-winx64\bin,放到环境变量中。配置完成后,打开cmd命令窗口,输入mysql -V, 如果输出版本号,表示配置成功。

1.3.MySQL配置:

  1.打开我们解压后的文件夹,就是D盘下的mysql-5.7.20-winx64 文件夹,新建一个my.ini文件

  2.然后双击它,用记事本打开, 输入如下内容

[client]
port=3306
default-character-set=utf8

[mysqld] 
# 设置为自己MYSQL的安装目录 
basedir=D:\mysql-5.7.20-winx64
# 设置为MYSQL的数据目录 
datadir=D:\mysql-5.7.20-winx64\data
port=3306
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
#开启查询缓存
explicit_defaults_for_timestamp=true
skip-grant-tables 

  3.在powershell或cmd窗口中,切换到mysql的bin目录, 完成配置。

    首先输入mysqld --initialize 命令,它表示初始化mysql,生成data文件夹中的文件。如果没有报错,就表示初始化完成。

    输入 mysqld -install 命令,安装MySQL. 如果出现Service successfully installed 说明注册成功了  因为我的已经注册好了,所以会出现下图, 已存在。

  现在终于可以启动服务器了 net start mysql 命令启动服务器。关闭服务器用net stop mysql

  4.MySQL 登录和退出

  这涉及到MySQL 命令的常用参数: -u: u代表username, 表示用户名; -p: p 代表password, 表示登录密码; -h: host-name主机名; -P: port 端口。

  所以我们要登录MySQL,需要提供用户名,密码,主机名,端口号信息。语法  mysql [-u username] [-h host] [-p[password]];  安装MySQL后,我们会得到初始的用户名root, 但没有初始密码,但输入密码怎么办?我们只需键入mysql即可。如果访问本地服务器的话和使用mysql的默认端口时,-h和-P可以不写。 现在我们就登录一下, 在这之前要先启动mysql服务器。这里还是要以管理员的身份运行powershell

  当我们在命令行中输入mysql -u root -p 后,提示我们输入密码,这时输入mysql, 就可以登录到mysql 了。

如果某一天MySQL数据库出现问题重新安装 click here

2.在python中操作mysql

Python操作MySQL主要使用两种方式:

  • 原生模块 pymsql
  • ORM框架 SQLAchemy(SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。)

2.1.pymysql操作mysql

python的标准库中,是没有可以直接连接操作mysql的模块,首先我们应安装python的第三方模块pymysql。

使用pymysql操作mysql的步骤:

  1)使用pymysql.connect连接并登录mysql

conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db="liuyandb")

  首先依次创建Connection对象(数据库连接对象)用于打开数据库连接,创建Cursor对象(游标对象)用于执行查询和获取结果;然后执行SQL语句对数据库进行增删改查等操作并提交事务,此过程如果出现异常则使用回滚技术使数据库恢复到执行SQL语句之前的状态;最后,依次销毁Cursor对象和Connection对象。

以流程图的方式展示python操作MySQL数据库的流程:

  

 

Connection对象

  Connection对象即为数据库连接对象,在python中可以使用pymysql.connect()方法创建Connection对象,该方法的常用参数如下:

  host:连接的数据库服务器主机名,默认为本地主机(localhost);字符串类型 user:用户名,默认为当前用户;字符串类型 passwd:密码,无默认值;字符串类 db:数据库名称,无默认值;字符串类型 port:指定数据库服务器的连接端口,默认为3306;整型

Connection对象常用的方法如下:

  cursor():使用当前连接创建并返回游标 commit():提交当前事务 rollback():回滚当前事务 close():关闭当前连接

  2) 使用connection.cursor建立游标

cursor = conn.cursor()

   Cursor对象

  Cursor对象即为游标对象,用于执行查询和获取结果,在python中可以使用conn.cursor()创建,conn为Connection对象。Cursor对象常用的方法和属性如下:

  execute():执行数据库查询或命令,将结果从数据库获取到客户端 fetchone():获取结果集的下一行 fetchmany():获取结果集的下几行 fetchall():获取结果集中剩下的所有行   close():关闭当前游标对象 rowcount:最近一次的execute返回数据的行数或受影响的行数

 

  3) 使用cursor.execute()或cursor.executemany()执行sql语句

cursor.execute(sql)

execute()方法和fetch类方法的工作示原理如下图所示:

增删改查函数:

import pymysql
conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db="days")
cursor = conn.cursor()

# SQL语句:向数据表中插入数据
sql = """SELECT * FROM ren WHERE id=1"""

def cha(sql):
    # sql = input("请输入查询语句:")
    # 异常处理
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 获取所有的记录列表
        results = cursor.fetchall()
        # 遍历列表
        for row in results:
            # 打印列表元素
            print(row)
    except:
        print('Uable to fetch data!')

    # 关闭数据库连接
    conn.close()


def add(sql):
    # 异常处理
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 提交事务到数据库执行
        conn.commit()  # 事务是访问和更新数据库的一个程序执行单元
    except:
        # 如果发生错误则执行回滚操作
        conn.rollback()
    # 关闭数据库连接
    conn.close()


def delete(sql):
    # 异常处理
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 提交到数据库执行
        conn.commit()
    except:
        # 发生错误时回滚
        conn.rollback()
    # 关闭数据库连接
    conn.close()


def change(sql):
    # 异常处理
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 提交到数据库执行
        conn.commit()
    except:
        # 发生错误时回滚
        conn.rollback()
    # 关闭数据库连接
    conn.close()

  

 

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Django中使用mysql数据库并使用原生sql语句操作

Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库。 准备的软件 mysql数据库,版本5.7及以上。 navicat,...

osc_66bgndnm
2018/12/28
3
0
42.MySQL数据库安装,及驱动程序选择

MySQL驱动程序安装: 我们使用Django来操作Mysql,实际上底层还是通过Python来操作的,因此我们想要使用Django来操作mysql,首先还是需要安装一个驱动程序,在Python3中,驱动程序有多种选择。...

osc_mgt0rm0m
01/19
6
0
python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库

前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库。 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用的IDE是 “神奇” 的 pycharm:...

osc_8k5qho63
2018/06/20
2
0
python学习笔记之——操作mysql数据库

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL Po...

osc_h3robkrt
2018/02/28
2
0
python连接Oracel、postgreSQL、SQLserver、Mysql、mongodb、redis等常用数据库方法汇总!

python对接常用数据库,快速上手! 很多同学在使用python进行自动化测试的时候,会涉及到数据库数据校验的问题,因为不知道如何在python中如何对数据库,这个时候会一脸茫然,今天在这里给大...

osc_cesboqi4
2019/08/24
7
0

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-07-10

更新时间: 2020-07-10 01:15 US Supreme Court deems half of Oklahoma a Native American Reservation - (reuters.com) 美国最高法院认为俄克拉荷马州的一半是印第安人保留地 得分:131 | 评...

FalconChen
43分钟前
16
0
OSChina 周五乱弹 —— 求求你吃了我吧,不要再玩弄食物的感情了

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :张喆的单曲《陷阱 》 这首歌已经在网易找不到原唱了,不知道被哪家买了版权。#今日歌曲推荐# 《陷阱 》- 张喆 手机党少年们想听歌...

小小编辑
54分钟前
24
1
清华陈文光教授:AI 超算基准测试的最新探索和实践。

道翰天琼认知智能平台为您揭秘新一代人工智能。 无规矩不成方圆。放在超级计算机的研发领域,没有一个大家普遍接受的算力评测指标,便难以推动超算迅猛发展。 而现在伴随着人工智能的发展,大...

jackli2020
今天
7
0
@RequestMapping, consumes 提交简单有意思的测试

getParm @GetMapping("getParm")public Result getParm(String id){ System.out.println(); return ResultFactory.success(id);} 等同于 == bodyParm @PostMapping("bodyParm......

莫库什勒
今天
25
0
63. Unique Paths II

题目: 63. Unique Paths II A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The robot can only move either down or right at any p......

JiaMing
今天
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部