前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 操作Mysql

Python 操作Mysql

原创
作者头像
度假的小鱼
修改2023-11-16 20:10:33
2800
修改2023-11-16 20:10:33
举报
文章被收录于专栏:产品体验产品体验

Python 操作Mysql

1.Pymsql 介绍

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。

1.1 python安装pymsql模块

PIP 是 Python 包或模块的包管理器。

注释:如果您使用的是 Python 3.4 或更高版本,则默认情况下会包含 PIP

普通安装 :

pip install PyMySQL

卸载已安装的库:

pip uninstall PyMySQL

列出已安装的库:

pip list

1.2 Python操作mysql

代码语言:text
复制
1.导入pymysql模块 : import pymysql
2.使用connect() 函数来创建连接对象
     *host :连接的mysq|主机,如果本机是'localhost'
     *port : 连接的mysq|主机的端口, 默认是3306
     *database :数据库的名称
     *user :连接的用户名
     *password :连接的密码
     *charset :通信采用的编码方式,推荐使用utf8

3.连接对象操作说明
     conn.close() : 关闭连接
     conn. commit() :提交数据
     conn.rollback() : 撤销数据

代码:

代码语言:python
复制
import pymysql  # 连接mysql数据库的模块

# 1.连接数据库
"""
需要传入的参数:
  host=None,
  user=None,
  password="",
  database=None,
  port=0,
  charset='',
  autocommit=True
"""
client = pymysql.connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="123",
    database="test",
    charset='utf8',  # 一定不要写utf-8
    # 针对增删改操作,执行重要程度高,若要执行,必须要有一步确认的操作,autocommit=True默认对数据库进行增删改操作时自动提交至数据库;若此处不写,在下面代码 cursor_obj.execute(sql) 后面手动需要添加 client.commit()操作
    autocommit=True
)
# print(client)  # 打印结果:<pymysql.connections.Connection object at 0x00000000028A8B88>


# 2.获取游标对象。游标:可以用来提交sql命令
# pymysql.cursors.DictCursor:将查询出来的结果制作成字典的形式返回
cursor_obj = client.cursor(pymysql.cursors.DictCursor)

# 3.通过execute可以提交sql语句(增删改查都可以,可以使用try来捕获异常)
try:
    # 1.1)查数据
    sql = "select * from books"  # 不用写分号

    # 1.2)插入数据
    # sql = "insert into student(id, name, sex, birthday, class) values('110', '张芳', '男', '1946', '95030')"  # 不用写分号

    # 2)提交sql语句
    res = cursor_obj.execute(sql)
    # print(res)  # execute返回的是当前sql语句所影响的行数
    # client.commit()  # 上面连接数据库的代码处已写了autocommit=True,此处注释掉

    # 3.1)提交后,通过cursor_obj对象.fetchall()  获取所有查询到的结果
    data = cursor_obj.fetchall()
    for i in data:
        print(i)

    # 3.2).fetchone()  只获取查询结果中的一条
    # print(cursor_obj.fetchone())

    # 3.3).fetchmany() 可以指定获取几条数据
    # print(cursor_obj.fetchmany(4))  # 获取四条数据

except Exception as e:
    print(e)

# 关闭游标
cursor_obj.close()
# 关闭客户端连接
client.close()

2.数据库

DBMS

mysql -RDBMS 关系型

2.1 数据库分类

代码语言:txt
复制
关系型:mysql\oracle\sqlserver\access
非关系型:redis,mongodb...

2.2 修改密码

代码语言:txt
复制
mysql>set password for root@'127.0.0.1' =password('666')
mysqladmin -uroot -p老密码 password 新密码;
mysql>update user set password=password('66') where user='root';

2.3 库操作

代码语言:txt
复制
创建库:
	create database 库名 charset='utf8';
连接库
	use 库名
查询库
	show databases;
	show create database 库名  (查看库的详细创建语句)
删库
	drop database 库名;

2.4 表操作

代码语言:txt
复制
创建:
	create table 表名(
		字段1名 类型(宽度) 约束条件,
		字段2名 类型(宽度) 约束条件
	);

删除
	drop table 表名;
查看表
	show create table 表名;  #表信息竖向展示
	show create table 表名\G
	show tables;
	select * from userinfo\G  #表信息竖向展示

清空表
	truncate 表名;    清空表,自增重置
	delete from 表名; 清空表

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 python安装pymsql模块
  • 1.2 Python操作mysql
  • 2.数据库
    • 2.1 数据库分类
      • 2.2 修改密码
        • 2.3 库操作
          • 2.4 表操作
          相关产品与服务
          云数据库 MySQL
          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档