python操作数据库

0.操作SQLite3数据库

(1) 导入相关库或模块(SQLite3)。
(2) 使用connect()连接数据库并获取数据库连接对象。它提供了以下方法:
.cursor() 方法来创建一个游标对象
.commit() 方法来处理事务提交
.rollback() 方法来处理事务回滚
.close() 方法来关闭一个数据库连接
(3) 使用con.cursor()获取游标对象。
(4) 使用游标对象的方法(execute()、executemany()、fetchall()等)来操作数据库,实现插入、修改和删除操作,并查询获取显示相关的记录。在Python程序中,连接函数sqlite3.connect()有如下两个常用参数。
database:表示要访问的数据库名。
timeout:表示访问数据的超时设定。
(5) 使用close()关闭游标对象和数据库连接。数据库操作完成之后,必须及时调用其close()方法关闭数据库连接,这样做的目的是减轻数据库服务器的压力

1.创建表

import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
# 创建游标对象
cur=con.cursor()
#编写创建表的sql语句
sql='''create table t_person(
          pno INTEGER primary key autoincrement,
          pname VARCHAR not null,
          age INTEGER 
      )'''
try:
    #执行sql语句
    cur.execute(sql)
    print('创建表成功')
except Exception as e:
    print(e)
    print('创建表失败')
finally:
    #关闭游标
    cur.close()
    #关闭连接
    con.close()

2.插入数据

2.1插入一条数据

#导入模块
import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
#创建游标对象
cur=con.cursor()
#编写插入sql
sql='insert into t_person(pname,age) values(?,?)'
try:
    # 执行sql
    cur.execute(sql, ('张三', 24))
    #提交事务
    con.commit()
    print('插入数据成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入数据失败')
finally:
    #关闭游标连接
    cur.close()
    #关闭数据库连接
    con.close()

2.2插入多条数据

#导入模块
import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
#创建游标对象
cur=con.cursor()
#编写插入sql
sql='insert into t_person(pname,age) values(?,?)'
try:
    # 执行插入多条数据的sql
    cur.executemany(sql,[('小李',23),('小花',34),('小明',28)])
    #提交事务
    con.commit()
    print('插入多条数据成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入多条数据失败')
finally:
    #关闭游标连接
    cur.close()
    #关闭数据库连接
    con.close()

3.查询数据

3.1查询全部数据

#导入模块
import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
#创建游标对象
cur=con.cursor()
#创建查询sql
sql='select * from t_person'
try:
    cur.execute(sql)
    #获取结果集
    person_all=cur.fetchall()#返回一个列表
    # print(person_all)
    for person in person_all:
        print(person)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭游标
    cur.close()
    #关闭连接
    con.close()

3.2查询一条数据

#导入模块
import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
#创建游标对象
cur=con.cursor()
#创建查询sql
sql='select * from t_person'
try:
    cur.execute(sql)
    #获取结果集,获取一条数据
    person=cur.fetchone()#返回一个元组
    print(person)

except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭游标
    cur.close()
    #关闭连接
    con.close()

4.修改数据

#导入模块
import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
#创建游标对象
cur=con.cursor()
#编写修改的SQL语句
sql='update t_person set pname=? where pno=?'
#执行sql
try:
    cur.execute(sql, ('小张', 1))
    #提交事务
    con.commit()
    print('修改成功')
except Exception as e:
    print(e)
    print('修改失败')
    con.rollback()
finally:
    #关闭连接
    con.close()

5.删除数据

#导入模块
import sqlite3
#创建连接
con=sqlite3.connect('e:/sqlite3Demo/demo.db')
#创建游标对象
cur=con.cursor()
#编写删除数据的SQL语句
sql='delete from t_person where pno=?'
#执行sql
try:
    cur.execute(sql, (2,))
    #提交事务
    con.commit()
    print('删除成功')
except Exception as e:
    print(e)
    print('删除失败')
    con.rollback()
finally:
    #关闭连接
    con.close()

1.操作MySQL数据库

1.下载安装社区版,win版本
2.配置,直接进入参数配置页面中的“Type and NetWorking”界面,我们要选择的是“Standalone MySQL Server / Classic MySQL Replication”选项,服务器配置类型“Config Type”选择“Development machine”,不同的选择将决定系统为MySQL服务器实例分配资源的大小,“Development machine”占用的内存是最少的;连接方式保持默认的TCP/IP,端口号也保持默认的3306即可,接下来就是设置MySQL数据库Root账户密码,需要输入两遍。这个密码必须记住,后边会用到
3.在配置Windows服务时,需要以下几部操作:勾选“Configure MySQL Server as a Windows Service”选项,将MySQL服务器配置为Windows服务;取消“Start the MySQL Server at System Startup”选项前边的“√”(该选项是设置是否开机自启动MySQL服务,在此我们选择开机不启动,大家也可以根据自己的需要来选择);勾选“Standard System Account”选项,该选项是标准系统账户,推荐使用该账户

1.1导包

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL

 pip  install PyMySQL

或者进入python官网https://www.python.org 点击菜单PyPI,输入pymsql,进行搜索,下载,命令行安装

pip install PyMySQL-0.9.3-py2.py3-none-any.whl

1.创建表

#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='root',password='root',database='python_db',port=3306)
#创建游标对象
cur=con.cursor()
#编写创建表的sql
sql="""
    create table t_student(
     sno int primary key auto_increment,
     sname varchar(30) not null,
     age int(2),
     score float(3,1)
    )
"""
try:
    # 执行创建表的sql
    cur.execute(sql)
    print('创建表成功')
except Exception as e:
    print(e)
    print('创建表失败')
finally:
    #关闭连接
    con.close()

2.插入数据

2.1插入一条数据

#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',password='root',user='root',port=3306,database='python_db')
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.execute(sql, ('小强', 18, 99.9))
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入失败')
finally:
    #关闭连接
    con.close()

2.2插入多条数据

#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',password='root',user='root',port=3306,database='python_db')
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.executemany(sql,[('小明',19,99.8),('小红',18,99.9),('晓丽',18,99.8),('小花',19,99.6)])
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入失败')
finally:
    #关闭连接
    con.close()

3.查询数据

3.1查询全部数据

#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    students=cur.fetchall()
    for student in students:
        sno=student[0]
        sname=student[1]
        age=student[2]
        score=student[3]
        print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()

3.2查询一条数据

#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    student=cur.fetchone()
    print(student)
    sno=student[0]
    sname=student[1]
    age=student[2]
    score=student[3]
    print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()

4.修改数据

#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='127.0.0.1',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写修改的sql
sql='update t_student set sname=%s where sno=%s'
#执行sql语句
try:
    cur.execute(sql,('张三丰',1))
    con.commit()
    print('修改成功')
except Exception as e:
    print(e)
    con.rollback()
    print('修改失败')
finally:
    #关闭连接
    con.close()

5.删除数据

#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='127.0.0.1',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写删除的sql
sql='delete from t_student where sname=%s'
#执行sql语句
try:
    cur.execute(sql,('张三丰'))
    con.commit()
    print('删除成功')
except Exception as e:
    print(e)
    con.rollback()
    print('删除失败')
finally:
    #关闭连接
    con.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值