Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)

在这里插入图片描述 

活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记(4)

目录

学习日记(4)

一、下载和安装MySQL

1、下载MySQL

2、安装MySQL

3、设置环境变量

 3、启动MySQL

二、安装PyMySQL

三、MySQL的使用

1、连接数据库

2、创建数据表

3、操作MySQL数据表

四、注意事项


    MySQL是一款开源的数据库软件,由于其免费特性得到了全世界用户的喜爱,因此MySQL成为当前使用人数最多的数据库之一。

    pymysql是一个Python编写的MySQL驱动程序,让我们能用Python语言操作MySQL数据库。

一、下载和安装MySQL

1、下载MySQL

可以再浏览器输入地址“https://dev.mysql.com/downloads/windows/installer/8.0.html”,并按Enter键,进入MySQL8.0的下载页面,选择离线安装包下载。

Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)_第1张图片

 如果有MySQL账户,可以单击“Login”登录账户后下载,没有账户的,可以单击下方“No thanks, just start my download.”超链接,跳过注册步骤,直接下载。Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)_第2张图片

 

2、安装MySQL

    下载完成后,开始安装MySQL。双击安装文件,在所示界面选中I accept the license terms 复选框,点击NEXT,进入选择设置类型界面,这里有五种类型,MySQL会默认选择Developer Default类型,这里选择纯净的Server only类型,然后一直默认选择安装

Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)_第3张图片

 

3、设置环境变量

右击“此电脑”v→选择“属性”→选择“高级系统设置”→单击“环境变量”→选择“Path”→点击“编辑”后输入安装的路径并保存。(默认安装路径是:C:\Program Files\MySQL\MySQL Server 8.0\bin)

Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)_第4张图片Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)_第5张图片

 

 3、启动MySQL

    在“命令提示符”窗口输入命令 net start mysql80 ,启动MySQL 8.0.启动后使用账户和密码进入MySQL。输入命令 mysql-u root-p ,会提示“Enter password:”,输入密码root,即可进入MySQL。

二、安装PyMySQL

win+r打开后输入cmd并Enter一下

Python操作MySQL库结(MySQL详细下载、安装、操控及第三方库中的使用)_第6张图片

输入下面指令后回车

pip install PyMySQL

 即可安装成功

再次重复pip命令,出现下图情况即安装成功

三、MySQL的使用

1、连接数据库

#由于PyMySQL遵循Python Database API 2.0 规范,因此操作MySQL数据库的方式与SQLite相似,可以通过类比的方式来学习。

首先import MySQL库

import pymysql

先前已经建立MySQL数据库mrsoft,并且安装数据库时设置了数据库的账户名和密码均为root,下面就通过这些信息,使用connect()方法连接MySQL数据库。


# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
db = pymysql.connect(host="localhost", user="root", password="root", database="mrsoft")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute()  方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()

2、创建数据表

使用execute()方法为数据库创建表books

books表包含id(主键)、name(图书名称)、category(图书分类)、price(图书价格)和publish_time(出版时间)5个字段

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="root", database="mrsoft")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS books")
# 使用预处理语句创建表
sql = """
CREATE TABLE books (
  id int(8) NOT NULL AUTO_INCREMENT,
  name varchar(50) NOT NULL,
  category varchar(50) NOT NULL,
  price decimal(10,2) DEFAULT NULL,
  publish_time date DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)
# 关闭数据库连接
db.close()

3、操作MySQL数据表

MySQL数据表主要操作包括数据的新增、删除、修改和查找。

例如,可以用excute()方法增加一条记录,也可以用executemany()方法批量增加多条记录。executemany()方法格式如下:

executemany(operation,seq_of_params)

详细操作如下:

# 增
sql = """insert into students(name) values("痔疮")"""
cursor.execute(sql)  # 打印受影响的行数
 
# 删
sql = """delete from students where name="痔疮"""";
cursor.execute(sql)
# 改
sql = """update students set name="小王" where id=6;"""
cursor.execute(sql)

# 提交之前的操作,如果之前已经执行过多次的execute,那么就都进行提交
conn.commit()

# conn.rollback()  # 对之前的操作进行回退处理

实例:

import pymysql
# host:连接的mysql主机,如果本机是a
# port:连接的mysql主机的端口,默认是1234
# database:数据库的名称
# user:连接的用户名
# password:连接的密码
# charset:通信采用的编码方式,推荐使用utf8
conn = pymysql.connect(host="a",
                       port=1234,
                       user="root",
                       password="mysql",
                       database="python41",
                       charset="utf8"
                       )

获取游标,目的就是要执行sql语句
cursor = conn.cursor()

# 增加操作
sql = "insert into classes(name) values('嘿嘿)"
# 修改操作
# sql = "update classes set name = '漆漆' where id = 2"
# 删除操作
# sql = "delete from classes where id=2"

try:
    # 4. 执行sql语句
    cursor.execute(sql)
    # 增删改都必须提交数据
    conn.commit()
except:
    # 如果报错就对修改的数据进行撤销
    conn.rollback()

# 5.关闭游标
cursor.close()

# 6.关闭连接
conn.close()

四、注意事项

    使用connect()方法连接数据库时,额外设置字符集charset=utf-8,可以防止插入中文时出错。

使用insert语句插入数据时,使用%作为占位符,可以防止SQL注入。

你可能感兴趣的:(Python,python,mysql)