四十一、数据库
在python中,使用第三方库:pymysql来完成对mysql数据库的操作
安装:
pip install pymysql
1、创建到MySQL的数据库连接
首先要进行导包操作,接着创建一个链接对象,填写对应的参数即可完成操作,完成操作后,记得要用close()关闭连接,具体代码如下
from pymysql import Connection
# 获取到MySQL数据库的链接对象
coon = Connection(
host = 'localhost', # 主机名(或者IP地址)
port = 3306, # 端口,MySQL默认为3306
user = 'root', # 账户名
password = '123456' # 密码
)
# 打印MySQL数据库软件信息
print(coon.get_server_info()) # 当输出你数据库的相关版本时则证明已经成功链接了
# 关闭数据库的链接
coon.close()
2、执行非查询性质的sql语句:
在成功连接了数据库的基础上,通过建立游标对象来执行对应的sql语句,记得先用数据库对象选择需要的数据库,具体代码如下;
from pymysql import Connection
# 获取到MySQL数据库的链接对象
coon = Connection(
host = 'localhost', # 主机名(或者IP地址)
port = 3306, # 端口,MySQL默认为3306
user = 'root', # 账户名
password = '123456' # 密码
)
# 获取游标对象
cursor = coon.cursor()
coon.select_db('aaa') # 选择数据库,如果没有aaa则需要提前创建一个
# 使用游标对象,执行sql语句
cursor.execute('CREATE TABLE test(ID INT, INFO VARCHAR(255))')
#关闭数据库的链接
coon.close()
3、执行查询性质的sql语句:
前置内容跟非查询类似,只是需要调用fetchall()来接收查询的数据,接收的数据为元组类型,具体代码如下;
from pymysql import Connection
# 获取到MySQL数据库的链接对象
coon = Connection(
host = 'localhost', # 主机名(或者IP地址)
port = 3306, # 端口,MySQL默认为3306
user = 'root', # 账户名
password = '123456' # 密码
)
# 获取游标对象
cursor = coon.cursor()
coon.select_db('TEST02') # 选择数据库,如果没有aaa则需要提前创建一个
# 使用游标对象,执行sql语句
cursor.execute('SELECT * FROM ACCOUNT')
result:tuple = cursor.fetchall() # 会以元组的形式输出
for row in result:
print(row)
#关闭数据库的链接
coon.close()
4、执行插入性质的sql语句:
直接是能直接对数据库的表进行操作的,但是对于插入来说,没有进行事务的提交的话,是无法将内容添加到数据库中的,所以插入性质的sql语句,需要多一步操作是commit(),具体代码如下;
from pymysql import Connection
# 获取到MySQL数据库的链接对象
coon = Connection(
host = 'localhost', # 主机名(或者IP地址)
port = 3306, # 端口,MySQL默认为3306
user = 'root', # 账户名
password = '123456' # 密码
)
# 获取游标对象
cursor = coon.cursor()
coon.select_db('TEST02') # 选择数据库,如果没有aaa则需要提前创建一个
# 使用游标对象,执行sql语句
cursor.execute('insert into classes values (999,2021,"计算机科学","20班")')
# 通过commit确认
coon.commit()
# 关闭连接
coon.close()
5、自动commit
如果不想手动commit确认,可以在构建连接对象的时候,设置自动commit的属性
# 获取到MySQL数据库的链接对象
coon = Connection(
host = 'localhost', # 主机名(或者IP地址)
port = 3306, # 端口,MySQL默认为3306
user = 'root', # 账户名
password = '123456', # 密码
autocommit = True # 设置自动提交
)