Python基础——PyCharm版本——第九章、MySQL操作(核心4)

举报
红目香薰 发表于 2022/04/20 20:08:03 2022/04/20
【摘要】 ​ ​🤵🤗Python_Base:Chapter ninth🤗🤵安装MySQL依赖包如果pip版本不够【python -m pip install --upgrade pip】,先更新pip到最新版本。​安装语句:【pip install pymysql】​测试数据库以及数据表:CREATE TABLE `userinfo` ( `id` int(8) NOT NULL AUTO_...

 

🤵🤗Python_Base:Chapter ninth🤗🤵

安装MySQL依赖包

如果pip版本不够【python -m pip install --upgrade pip】,先更新pip到最新版本。

安装语句:【pip install pymysql】

测试数据库以及数据表:

CREATE TABLE `userinfo` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `createDate` datetime NOT NULL,
  `userName` varchar(32) NOT NULL,
  `introduce` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

链接测试

import pymysql  # 导入pymysql库

# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
print(conn)

使用pymysql执行SQL语句的步骤如下:

  1. 创建数据库连接,并返回一个数据库连接对象
  2. 使用数据库连接对象中的cursor()函数获取游标对象
  3. 调用游标对象中的execute()函数执行SQL语句,该函数返回影响的行数
  4. 提交数据库操作,如果不提交将无法保存新建或者修改的数据
  5. 关闭游标,释放资源
  6. 关闭连接,释放资源

SQL语句测试

建表测试:

import pymysql  # 导入pymysql库
import time

# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象


def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)


# 建表语句
sql = '''
CREATE TABLE `users` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `createDate` datetime NOT NULL,
  `userName` varchar(32) NOT NULL,
  `introduce` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
'''
rows = cursor.execute(sql)  # 执行SQL语句
conn.commit()  # 提交
print("创建表不会返回行数:", rows)
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接

增删改测试:

import pymysql  # 导入pymysql库
import time

# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象


def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)


# 增删改SQL
sql = str.format("insert into userinfo values(0,'{0}','{1}','{2}')",
                 GetNow(time.localtime()),
                 "wangyuyan",
                 "王语嫣")
rows = cursor.execute(sql)  # 执行SQL语句
conn.commit()  # 提交数据库连接,如果是增、删、改操作,则必须提交
print("执行成功")
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接
if rows > 0:
    print("操作成功")

select查询测试:

import pymysql  # 导入pymysql库
import time

# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象


def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)


# 增删改SQL
sql = str.format("select * from userinfo")
rows = cursor.execute(sql)  # 执行SQL语句
print("信息行数:", rows)
result = cursor.fetchall()  # 获取所有信息
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接
print("为了保证数据安全故而数据个数为:", type(result))
for row in result:
    print(row[0], row[1], row[2], row[3])


聚合函数测试:

import pymysql  # 导入pymysql库
import time

# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象


def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)


# 增删改SQL
sql = str.format("select sum(id) from userinfo")
rows = cursor.execute(sql)  # 执行SQL语句
print("信息行数:", rows)
result = cursor.fetchall()  # 获取所有信息
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接
print("为了保证数据安全故而数据个数为:", type(result))
print(result[0][0])  # 第一个数据的第一个值肯定就对对应返回的信息


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。