python-learning-第二季-数据库编程
https://www.bjsxt.com/down/8468.html




代码实现:
#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
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)
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x106ded3b0>
创建表成功
操作sqlite3数据库插入数据

#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
cur = con.cursor() #pno是自增长的,可不赋值
#(?,?)表示占位符,在执行时会传入
sql = 'insert into t_person(pname, age) values (?,?)'
try:
#执行说sql语句
cur.execute(sql, ('张三', ))
#提交事务
con.commit()
print('插入成功')
except Exception as e:
print(e)
#回滚
con.rollback()
print('插入数据失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x10c6ac3b0>
插入成功 Process finished with exit code
插入多条数据:
#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
cur = con.cursor() #pno是自增长的,可不赋值
#(?,?)表示占位符,在执行时会传入
sql = 'insert into t_person(pname, age) values (?,?)'
try:
#执行插入多条sql语句
cur.executemany(sql, [('小李', ), ('小明', ), ('小雨', )])
#提交事务
con.commit()
print('插入多条数据成功')
except Exception as e:
print(e)
#回滚
con.rollback()
print('插入多条数据失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x1019fd3b0>
插入多条数据成功 Process finished with exit code
操作sqlite3数据库查询数据

#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
cur = con.cursor() sql = 'select * from t_person'
try:
#执行查询所有sql内容
cur.execute(sql)
#获取所有数据
person_all = cur.fetchall() #返回的是数组
#遍历输出
for p in person_all:
print(p) except Exception as e:
print(e)
print('查询失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x105f903b0>
(, '张三', )
(, '小李', )
(, '小明', )
(, '小雨', ) Process finished with exit code
查询一条:
#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
cur = con.cursor() sql = 'select * from t_person'
try:
#执行查询所有数据sql语句
cur.execute(sql)
#获取一条数据
person = cur.fetchone()
print(person) except Exception as e:
print(e)
print('查询失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x1092793b0>
(, '张三', ) Process finished with exit code
修改数据:
#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
cur = con.cursor() sql = 'update t_person set pname=? where pno=?'
try:
#执行修改sql语句
cur.execute(sql,('张四',))
#提交事务
con.commit()
print('修改成功') except Exception as e:
print(e)
#回滚
con.rollback()
print('修改失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x10d4bb3b0>
修改成功 Process finished with exit code
查询可见修改成功:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x10ab113b0>
(, '张四', ) Process finished with exit code
删除数据:
#coding:utf-
#导入模块
import sqlite3 #创建connect连接
con = sqlite3.connect('./sqlitedb/demo.db')
print(con) #查看连接是否成功生成,<sqlite3.Connection object at 0x10ae6b3b0> #创建游标对象
cur = con.cursor() sql = 'delete from t_person where pno=?'
try:
#执行删除sql语句
cur.execute(sql,(,)) #元组仅有一个参数,必需有面加逗号,保证参数类型为元组
#提交事务
con.commit()
print('删除成功') except Exception as e:
print(e)
#回滚
con.rollback()
print('删除失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x101ebb3b0>
删除成功 Process finished with exit code
此时查看第一条数据为:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<sqlite3.Connection object at 0x101e623b0>
(, '小李', ) Process finished with exit code
MySQL数据库的下载
我已经安装好了,这里省略,去官网下载即可,端口默认3306
安装对应的模块PyMySQL


以为之前的deeplearning中的可用在这,发现不行,所以就重新下载了:
(venv) (base) userdeMBP:python3 user$ pip install PyMySQL
Collecting PyMySQL
Using cached https://files.pythonhosted.org/packages/ed/39/15045ae46f2a123019aa968dfcba0396c161c20f855f11dea6796bcaae95/PyMySQL-0.9.3-py2.py3-none-any.whl
Installing collected packages: PyMySQL
Successfully installed PyMySQL-0.9.
我已经下载好了
操作MySQL数据库创建表
先是创建了数据库python_db:

首先先连接:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=)
print(con)
成功连接:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
<pymysql.connections.Connection object at 0x103d3f6a0> Process finished with exit code
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=) #创建游标对象
cur = con.cursor() #编写创建表的sql,score总共三位,小数点占一位
sql = '''
create table t_student(
sno int primary key auto_increment,
sname varchar() not null,
age int(),
score float(,)
)
''' try:
#执行创建表的sql
cur.execute(sql)
print('创建成功')
except Exception as e:
print(e)
print('创建失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
创建成功 Process finished with exit code
查看成功创建:

插入数据:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=) #创建游标对象
cur = con.cursor() #插入数据
sql = 'insert into t_student(sname, age, score) values(%s, %s, %s)' try:
#执行创建表的sql
cur.execute(sql, ('王一', , ))
#提交事务
con.commit()
print('插入成功')
except Exception as e:
print(e)
con.rollback()
print('插入失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
插入成功 Process finished with exit code
查看:

插入多条数据:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=) #创建游标对象
cur = con.cursor() #插入数据
sql = 'insert into t_student(sname, age, score) values(%s, %s, %s)'
temp = [('王二', , ), ('王三', , )]
try:
#执行创建表的sql
cur.executemany(sql, temp)
#提交事务
con.commit()
print('插入成功')
except Exception as e:
print(e)
con.rollback()
print('插入失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
插入成功 Process finished with exit code
查看:

查询数据

#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=) #创建游标对象
cur = con.cursor() #查询多个数据
sql = 'select * from t_student where age >= 19' try:
#执行创建表的sql
cur.execute(sql)
students = cur.fetchall()
print(students)
print('查询成功')
except Exception as e:
print(e)
print('查询失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
((, '王二', , 70.0), (, '王三', , 80.0))
查询成功 Process finished with exit code
查询:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=) #创建游标对象
cur = con.cursor() #查询多个数据
sql = 'select * from t_student where age >= 19' try:
#执行创建表的sql
cur.execute(sql)
students = cur.fetchall()
for student in students:
print(student[], end = ' ,')
print(student[], end=' ,')
print(student[], end=' ,')
print(student[]) except Exception as e:
print(e)
print('查询失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
,王二 , ,70.0
,王三 , ,80.0 Process finished with exit code
查询一个数据:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=) #创建游标对象
cur = con.cursor() #查询一个数据
sql = 'select * from t_student where age >= 19' try:
#执行创建表的sql
cur.execute(sql)
student = cur.fetchone()
print(student) except Exception as e:
print(e)
print('查询失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
(, '王二', , 70.0) Process finished with exit code
更新数据:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=3306) #创建游标对象
cur = con.cursor() #查询一个数据
sql = 'update t_student set sname=%s where sno =%s' try:
#执行创建表的sql
cur.execute(sql, ('王五', 1))
#提交事务
con.commit() print('更新成功') except Exception as e:
print(e)
con.rollback()
print('更新失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
更新成功 Process finished with exit code 0
查看:

删除数据:
#导入pymysql
import pymysql #创建连接
con = pymysql.connect(host='localhost', user='root', password='user78', database='python_db', port=3306) #创建游标对象
cur = con.cursor() #查询一个数据
sql = 'delete from t_student where sname =%s' try:
#执行创建表的sql
cur.execute(sql, ('王五',))
#提交事务
con.commit() print('删除成功') except Exception as e:
print(e)
con.rollback()
print('删除失败')
finally:
#关闭游标
cur.close()
#关闭连接
con.close()
返回:
/Users/user/PycharmProjects/python3/venv/bin/python /Users/user/PycharmProjects/python3/test.py
更新成功 Process finished with exit code 0
查看:

python-learning-第二季-数据库编程的更多相关文章
- python下的MySQL数据库编程
https://www.tutorialspoint.com/python/python_database_access.htm if you need to access an Oracle dat ...
- python 教程 第二十章、 数据库编程
第二十章. 数据库编程 环境设置 1).安装MySQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/ MySQL-python-1.2.3.win ...
- 小课堂week17 编程范式巡礼第二季 并发那些事
编程范式巡礼第二季 并发那些事 继续上周的编程范式话题,今天想聊一下并发范式. 并发也算一种范式? 真正的并发式编程,绝不只是调用线程API或使用synchronized.lock之类的关键字那么简单 ...
- 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...
- Python学习系列(七)( 数据库编程)
Python学习系列(七)( 数据库编程) Python学习系列(六)(模块) 一,MySQL-Python插件 Python里操作MySQL数据库,需要Python下安装访 ...
- Python程序设计9——数据库编程
1 数据持久化 持久化是将内存中的对象存储在关系数据库中,当然也可以存储在磁盘文件.XML数据文件中.实现数据持久化至少需要实现以下3个接口 void Save(object o):把一个对象保存到外 ...
- python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点
python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别 ...
- python之数据库编程
python之数据库编程 sqlite 1.前期准备工作 导入模块: import sqlite3 连接数据库 conn = sqlite3.connect("test.db") ...
- python数据库编程_sqlite
原文请看:http://blog.csdn.net/jj_liuxin/article/details/3584448 sqlite是一个轻量级的数据库,与很多大型的数据库(例如DB2,Oracle, ...
随机推荐
- 微信小程序API~检查登录状态
wx.checkSession(Object object) 检查登录态是否过期. 通过 wx.login 接口获得的用户登录态拥有一定的时效性.用户越久未使用小程序,用户登录态越有可能失效.反之如果 ...
- #2590. 「NOIP2009」最优贸易
C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道 ...
- mysql 截取字符串 函数
文章摘取自http://www.cnblogs.com/zdz8207/p/3765073.html 练习截取字符串函数(五个) mysql索引从1开始 一.mysql截取字符串函数 1.left(s ...
- HTML5 WebSocket与C# 建立Socket连接
一.WebSocket 概述 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务 ...
- 火狐谷歌webdriver驱动地址
ChormeDrive下载 打开百度搜索Chromedriver官网下载,点击进入这个页面,链接为:http://npm.taobao.org/mirrors/chromedriver/2.41/ ...
- django使用redis
django_redis 下载 >: pip install django-redis 说明 django连接django_redis后会顶替原memcache数据库 django使用djang ...
- webpack起服务器报JavaScript heap out of memory
配置如下: { "scripts": { "start": "node --max_old_space_size=4096 node_modules/ ...
- 学习Spring-Data-Jpa(六)---spring-data-commons中的repository
1.spring-data-commons项目 spring-data-commons项目是所有spring-data项目的核心,我们来看一下该项目下的repository包中的接口和注解. 2.Re ...
- 关于JS变量和作用域详解
ECMAScript 变量: 1.基本类型值(简单数据段) 2.引用类型值(可能由过个值构成的对象) → 保存在内存中的对象 ------ 动态属性: 只能给引用型值动态添加新属性,以便将来使用. - ...
- Logparser
http://www.microsoft.com/en-us/download/details.aspx?id=24659 Logparser 的用法 https://www.cnblogs.com/ ...