STEP5:进入主界面,重新进入blank用户操作选项卡,我们会在schemas中看到test_s这个schema。blank这个用户可以对root授权的test_s这个schema中的表进行操作。
至此,我们完成了MySQL中用户的新建和授权。
03 Python操作MySQL目前,关于Python操作数据库主要有以下几种方法:
MySQLdb的使用
MySQLdb是用于Python连接MySQL数据库的接口,它实现了Python数据库API规范V2.0,基于MySQL C API上建立的,目前只支持Python2.x。
PyMySQL的使用
PyMySQL是Python中用于连接MySQL服务器的一个库,它支持Python3.x,是一个纯Python写的MySQL客户端,它的目标是替代MySQLdb。PyMySQL在MIT许可下发布。
mysql.connector 的使用
由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的 MySQL 驱动来连接到 MySQL 服务器。
目前,有两个 MySQL 驱动:
mysql-connector-python:是 MySQL 官方的纯 Python 驱动
MySQL-python :是封装了 MySQL C驱动的 Python 驱动
SQLAlchemy的使用
是一种ORM(Object-Relational Mapping)框架,将关系数据库的表结构映射到对象上,隐藏了数据库操作背后的细节,简化了数据操作。
3.1 在Python3.X上安装MySQL驱动STEP1:由于MySQL官方提供了mysql-connector-python驱动。安装时,在Anaconda Prompt中输入:
conda install mysql-connector-pythonSTEP2:使用以下代码来测试mysql-connector是否安装成功:
import mysql.connector如果没有产生错误,则表明安装成功。
3.2 创建数据库连接这里连接的是我之前创建的blank这个user。如果数据库已经存在的话,我们可以直接连接;如果数据库不存在,直接连接则会报错,这个时候我们就需要创建一个数据库,创建数据库可以在MySQL Workbench中创建,也可以在python中使用"CREATE DATABASE"语句,在本实验中,我们使用已经在MySQL workbench中已经建好的test_s这个数据库。
import mysql.connector #连接数据库 config = { \'user\' : \'blank\' #用户名 \'password\' : \'password\' #自己设定的密码 \'host\' : \'127.0.0.1\' #ip地址,本地填127.0.0.1,也可以填localhost \'port\' : \'3306\' #端口,本地的一般为3306 \'database\' : \'test_s\' #数据库名字,这里选用test_s } con = mysq;.connector.connect(**config) 3.3 创建数据表STEP1:当Python 和数据之间的连接建立起来之后,要操作数据库,就需要让 Python对数据库执行SQL语句。创建数据表我们使用"CREATE TABLE"语句,在test_s这个数据库中创建一个叫做customers的表格,其中包含id、name、address、sex、age、sl这六个columns。Python是通过游标执行SQL语句的,所以,连接建立之后,就要利用连接对象得到游标对象。
cursor():表示游标
execute():是执行语句
STEP2****:一般在创建新表的时候,我们还会设置一个主键(PRIMARY KEY)来方便进行查询工作。创建主键,我们可以用"INT AUTO_INCREMENT PRIMARY KEY"
# 创建一个表 # buffered = True 不设的话,查询结果没有读完会报错 # raise errors.InternalError("Unread result found") mycursor = con.cursor(buffered = True) mycursor.execute("CREATE TABLE customers(id INT AUTO_INCREMENT PRIMARY KEY, \ name VARCHAR(255) , address VARCHAR(255), \ 7sex VARCHAR(225) , age INT(10) , sl INT(10))")VARCHAR()表示的是数据类型,定义的是变长字符串;INT()表示整型
STEP3:执行语句。执行完后,我们可以回到MySQL workbench,可以看到在test_s下面的customers这个表格,其中Columns为我们创建的id,name,address,sex,age和sl。