自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
1 下载安装MySQL
MySQL是一款开源的数据库软件,由于其免费特性得到了全世界用户的喜爱,是目前使用人数最多的数据库。下面将详细讲解如何下载和安装MySQL库。
(1)下载MySQL
在浏览器的地址栏中输入地址“https://dev.mysql.com/downloads/windows/installer/5.7.html”,并按下<Enter>键,将进入到当前最新版本MySQL 5.7的下载页面,选择离线安装包,如图3所示。
图3 下载MySQL
单击“Download”按钮下载,进入开始下载页面,如果有MySQL的账户,可以单击Login按钮,登录账户后下载,如果 没有可以直接单击下方的“No thanks, just take me to the download.”超链接,跳过注册步骤,直接下载,如图4所示。
图4 不注册下载
(2)安装MySQL
下载完成以后,开始安装MySQL。双击安装文件,在安装界面中勾选“I accept the license terms”,点击“next”,进入选择设置类型界面。在选择设置中有5种类型,说明如下:
l Developer Default:安装MySQL服务器以及开发MySQL应用所需的工具。工具包括开发和管理服务器的GUI工作台、访问操作数据的Excel插件、与Visual Studio集成开发的插件、通过NET/Java/C/C++/OBDC等访问数据的连接器、例子和教程、开发文档。
l Server only:仅安装MySQL服务器,适用于部署MySQL服务器。
l Client only:仅安装客户端,适用于基于已存在的MySQL服务器进行MySQL应用开发的情况。
l Full:安装MySQL所有可用组件。
l Custom:自定义需要安装的组件。
MySQL会默认选择“Developer Default”类型,这里选择“Server only”类型,如图5所示,选择默认选项,单击“Next”按钮进行安装。
图5 选择安装类型
(3)设置环境变量
安装完成以后,默认的安装路径是“C:\Program Files\MySQL\MySQL Server 5.7\bin”。下面设置环境变量,以便在任意目录下使用MySQL命令。右键单击“计算机”→选择“属性”,打开控制面板主页,选择“高级系统设置”→选择“环境变量”→选择“PATH”→单击“编辑”。将“C:\Program Files\MySQL\MySQL Server 5.7\bin”写在变量值中。如图6所示。
图6 设置环境变量
(4)启动MySQL
使用MySQL数据库前,需要先启动MySQL。在cmd窗口中,输入命令行“net start mysql57”,来启动MySQL 5.7。启动成功后,使用账户和密码进入MySQL。输入命令“mysql Cu root -p”,接着提示“Enter password:”,输入密码“root”(笔者用户名和密码均为root)即可进入MySQL。如图7所示。
图7 启动MySQL
(5)使用Navicat for MySQL管理软件
在命令提示符下操作MySQL数据库的方式对初学者并不友好,而且需要有专业的SQL语言知识,所以各种MySQL图形化管理工具应运而生,其中Navicat for MySQL就是一个广受好评的桌面版MySQL数据库管理和开发工具。它使用图形化的用户界面,可以让用户使用和管理更为轻松。官方网址:https://www.navicat.com.cn。
首先下载、安装Navicat for MySQL,然后新建MySQL连接,如图8所示。
图8 新建MySQL连接
接下来,输入连接信息:输入连接名“studyPython”,输入主机名后IP地址“localhost”或“127.0.0.1”,输入密码为“root”,如图9所示。
单击“确定”按钮,创建完成。此时,双击“localhost”,即进入“localhost”数据库,如图10所示。
图9 输入连接信息
图10 Navicat 主页
下面使用Navicat 创建一个名为“mrsoft”的数据库,步骤为:右键单击“studyPython”→选择“新建数据库”→填写数据库信息。如图11所示。
图11 创建数据库
说明:Navicat for MySQL的更多操作,请查阅相关资料。
2 安装PyMySQL
由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。在Python中支持MySQL的数据库模块有很多,我们选择使用PyMySQL。
PyMySQL的安装比较简单,在cmd中执行如下命令:
pip install PyMySQL
运行结果如图12所示。
图12 安装PyMySQL
3 连接数据库
使用数据库的第一步是连接数据库。接下来使用PyMySQL连接数据库。由于PyMySQL也遵循Python Database API 2.0规范,所以操作MySQL数据库的方式与SQLite相似。我们可以通过类比的方式来学习。
实例06 使用PyMySQL连接数据库
前面我们已经创建了一个MySQL连接“studyPython”,并且在安装数据库时设置了数据库的用户名“root”和密码“root”。下面通过connect()方法连接MySQL数据库mrsoft,具体代码如下:
import pymysql
# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
db = pymysql.connect("localhost", "root", "root", "mrsoft")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 使用execute()方法执行SQL查询
cursor.execute("SELECT VERSION()")
# 使用fetchone()方法获取单条数据
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()
上述代码中,首先使用connect()方法连接数据库,然后使用cursor()方法创建游标,接着使用excute()方法执行SQL语句查看MySQL数据库版本,然后使用fetchone()方法获取数据,最后使用close()方法关闭数据库连接。执行结果如下:
Database version : 5.7.21-log
4 创建数据表
数据库连接成功以后,我们就可以为数据库创建数据表了。下面通过一个实例,使用execute()方法来为数据库创建表books图书表。
实例07 创建books图书表
books表包含id(主键)、name(图书名称),category(图书分类),price(图书价格)和publish_time(出版时间)5个字段。创建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;
在创建数据表前,使用如下语句:
DROP TABLE IF EXISTS `books`;
如果mrsoft数据库中已经存在books,那么先删除books,然后再创建books数据表。具体代码如下:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "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()
运行上述代码后,mrsoft数据库下就已经创建了一个books表。打开Navicat(如果已经打开,则按下<F5>键刷新),发现mrsoft数据库下多了一个books表,右键单击books,选择设计表,效果如图13所示。
图13 创建books表效果
5 操作MySQL数据表
MySQL数据表的操作主要包括数据的增删改查,与操作SQLite类似,这里我们通过一个实例讲解如何向books表中新增数据,至于修改、查找和删除数据则不再赘述。
实例08 向books图书表添加图书数据
在向books图书表中插入图书数据时,可以使用excute()方法添加一条记录,也可以使用executemany()方法批量添加多条记录,executemany()方法的语法格式如下:
executemany(operation, seq_of_params)
l operation:操作的SQL语句。
l seq_of_params:参数序列。
executemany()方法批量添加多条记录的具体代码如下:
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "root", "mrsoft",charset="utf8")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 数据列表
data = [("零基础学Python",'Python','79.80','2018-5-20'),
("Python从入门到精通",'Python','69.80','2018-6-18'),
("零基础学PHP",'PHP','69.80','2017-5-21'),
("PHP项目开发实战入门",'PHP','79.80','2016-5-21'),
("零基础学Java",'Java','69.80','2017-5-21'),
]
try:
# 执行sql语句,插入多条数据
cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)
# 提交数据
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
注意:
(1)使用connect()方法连接数据库时,额外设置字符集charset=utf-8,可以防止插入中文时出错。
(2)在使用insert语句插入数据时,使用%s作为占位符,可以防止SQL注入。
运行上述代码,在Navicat中查看books表数据,如图14所示。
图14 books表数据