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

python脚本操作数据库

作者头像
cuijianzhe
发布2022-06-14 17:33:55
5330
发布2022-06-14 17:33:55
举报
文章被收录于专栏:cuijianzhe

python 数据库基本操作


操作关键字

创建连接 connect kə ˈ nekt 连接

实例化游标 cursor ˈ kɜ ː sə(r) 游标

执行 sql 语句 execute ˈ eksɪkju ː t 实行;执行;

提交修改 commit kə ˈ mɪt 做出

事务回滚 rollback ˈ rəʊlbæk 回落;

关闭游标和链接 close

一、用脚本连接数据库:

代码语言:javascript
复制
import pymysql
#创建一个对象,用于连接数据库,参数分别设置为地址,用户名,密码,数据库,字符集
db = pymysql.connect(host = 'localhost',user='root',password='598941324',database='cuijianzhe',charset='utf8')
#使用cursor方法创建一个游标对象,相当一个操作者
cursor = db.cursor()
#编写下sql语句
sql = '''create table teacher(
id int primary key auto_increment,
name varchar(30),
age int,
classroom int)'''
#使用execute方法执行sql语句,相当于操作都在mysql命令中输入sql语句并回车
cursor.execute(sql)
#关闭游标
cursor.close()
#关闭数据库

查看数据库:

代码语言:javascript
复制
mysql> show tables;
+----------------------+
| Tables_in_cuijianzhe |
+----------------------+
| student              |
| teacher              |
+----------------------+
2 rows in set (0.00 sec)
mysql> desc teacher;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| id        | int(11)     | NO   | PRI | NULL    | auto_increment |
| name      | varchar(30) | YES  |     | NULL    |                |
| age       | int(11)     | YES  |     | NULL    |                |
| classroom | int(11)     | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

connect 参数详解:

• host=None, # 要连接的主机地址

• user=None, # 用于登录的数据库用户

• password='', # 密码

• database=None, # 要连接的数据库

• port=0, # 端口,一般为 3306

• charset='', # 字符编码

• conv=None, # 转换字典

• use_unicode=None, # 是否使用 unicode 编码

• init_command=None, # 连接建立时运行的初始语句

• connect_timeout=10, # 连接超时时间,(default: 10, min: 1, max: 31536000)

• autocommit=False, # 是否自动提交事务

• db=None, # 同 database,为了兼容 MySQLdb

• passwd=None, # 同 password,为了兼容 MySQLdb

• local_infile=False, # 是否允许载入本地文件

• read_timeout=None, # 读取超时时间

• write_timeout=None, # 写入时间

二、增添一条数据:

代码语言:javascript
复制
import pymysql

#连接数据库,参数分别为本地地址,用户名,密码,数据库,字符集
db = pymysql.connect(host = '10.200.36.66',user = 'root',password ='598941324',database='cuijianzhe',charset='utf8')
#使用cursor方法创建一个游标对象,相当于一个操作者
cursor = db.cursor()
# 插入sql语句
sql = "insert into  teacher(name,age,classroom)value ('cnm',19,'200')"
#使用execute方法执行sql语句,相当于操作者在mysql命令中输入SQL语句并回车
cursor.execute(sql)
#提交给数据库,主要配合为增加删除修改这些操作
db.commit()
#关闭游标
cursor.close()
#关闭数据库
db.close()

查看表结构:

代码语言:javascript
复制
mysql> select * from teacher\G
*************************** 1. row ***************************
       id: 1
     name: 哈哈哈
      age: 19
classroom: 1995
*************************** 2. row ***************************
       id: 2
     name: cnm
      age: 19
classroom: 200
2 rows in set (0.00 sec)

三、删除表:

代码语言:javascript
复制
import pymysql

#连接数据库,参数分别为本地地址,用户名,密码,数据库,字符集
db = pymysql.connect(host = '10.200.36.66',user = 'root',password ='598941324',database='student',charset='utf8')
#使用cursor方法创建一个游标对象,相当于一个操作者
cursor = db.cursor()
# 使用 execute()  方法执行sql语句
#drop的时候提不提交都行,delect 的时候要commit
#delete from tab_name where id =1 
cursor.execute("drop table student")     
#提交给数据库,主要配合为增加删除修改这些操作
db.commit()
#关闭游标
cursor.close()
#关闭数据库连接
db.close()

查看相关操作结果:

代码语言:javascript
复制
mysql> show tables;
+----------------------+
| Tables_in_cuijianzhe |
+----------------------+
| student              |
| teacher              |
+----------------------+
2 rows in set (0.00 sec)

mysql> show tables;
+----------------------+
| Tables_in_cuijianzhe |
+----------------------+
| teacher              |
+----------------------+
1 row in set (0.00 sec)

四、更改数据

代码语言:javascript
复制
import  pymysql
#连接下数据库
db = pymysql.connect(host = '10.200.36.66',user = 'root',password ='598941324',database='cuijianzhe',charset='utf8')
#创建游标对象
cursor = db.cursor()
#使用execute执行sql语句
cursor.execute("update teacher set name='gunnimabi' where id=2")
#提交给数据库,用于配合修改操作
db.commit()
#关闭游标
cursor.close()
#关闭数据库连接
db.close
代码语言:javascript
复制
mysql> select * from teacher\G
*************************** 1. row ***************************
       id: 1
     name: 哈哈哈
      age: 19
classroom: 1995
*************************** 2. row ***************************
       id: 2
     name: gunnimabi
      age: 19
classroom: 200
2 rows in set (0.00 sec)

mysql> 

五、数据库查询操作

Python 查询 Mysql 使用 fetchone() 方法获取单条数据, 使用 fetchall() 方法获取多条数据。

fetchone(): 该方法获取下一个查询结果集。结果集是一个对象

fetchall(): 接收全部的返回结果行.

rowcount: 这是一个只读属性,并返回执行 execute()方法后影响的行数。

代码语言:javascript
复制
import  pymysql
#连接下数据库
db = pymysql.connect(host = '10.200.36.66',user = 'root',password ='598941324',database='cuijianzhe',charset='utf8')
#创建游标对象
cursor = db.cursor()
#使用execute执行sql语句
cursor.execute("select * from teacher")
#使用fetchone()方法获取单条数据
# data = cursor.fetchone()
# print('单条信息',data)
#fetcall查所有,以元组的形式返回
all_data = cursor.fetchall()
print(all_data)
#提交给数据库,用于配合修改操作
db.commit()
#关闭游标
cursor.close()
#关闭数据库连接
db.close

标题:python脚本操作数据库

作者:cuijianzhe

地址:https://cloud.tencent.com/developer/article/2022753

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python 数据库基本操作
    • 一、用脚本连接数据库:
      • 二、增添一条数据:
        • 三、删除表:
          • 四、更改数据
            • 五、数据库查询操作
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档