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-第二季-数据库编程的更多相关文章

  1. python下的MySQL数据库编程

    https://www.tutorialspoint.com/python/python_database_access.htm if you need to access an Oracle dat ...

  2. python 教程 第二十章、 数据库编程

    第二十章. 数据库编程 环境设置 1).安装MySQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/ MySQL-python-1.2.3.win ...

  3. 小课堂week17 编程范式巡礼第二季 并发那些事

    编程范式巡礼第二季 并发那些事 继续上周的编程范式话题,今天想聊一下并发范式. 并发也算一种范式? 真正的并发式编程,绝不只是调用线程API或使用synchronized.lock之类的关键字那么简单 ...

  4. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  5. Python学习系列(七)( 数据库编程)

    Python学习系列(七)( 数据库编程)        Python学习系列(六)(模块) 一,MySQL-Python插件       Python里操作MySQL数据库,需要Python下安装访 ...

  6. Python程序设计9——数据库编程

    1 数据持久化 持久化是将内存中的对象存储在关系数据库中,当然也可以存储在磁盘文件.XML数据文件中.实现数据持久化至少需要实现以下3个接口 void Save(object o):把一个对象保存到外 ...

  7. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...

  8. python之数据库编程

    python之数据库编程 sqlite 1.前期准备工作 导入模块: import sqlite3 连接数据库 conn = sqlite3.connect("test.db") ...

  9. python数据库编程_sqlite

    原文请看:http://blog.csdn.net/jj_liuxin/article/details/3584448 sqlite是一个轻量级的数据库,与很多大型的数据库(例如DB2,Oracle, ...

随机推荐

  1. K-D树详解

    K-D树最近邻算法https://blog.csdn.net/image_fzx/article/details/80624968 一般说来,索引结构中相似性查询有两种基本的方式: 一种是范围查询,范 ...

  2. linux系统编程之进程(三)

    今天继续学习进程相关的东东,继上节最后简单介绍了用exec函数替换进程映像的用法,今天将来深入学习exec及它关联的函数,话不多说,正式进入正题: exec替换进程映象:   对于fork()函数,它 ...

  3. The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use

    java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more tha ...

  4. vue-cli 3 按需引入 element-ui

    1.安装按需引入必要插件 npm install babel-plugin-component --save-dev 2.修改babel.config.js 3.在main.js中引入用到的组件,例如 ...

  5. vscode——设置自动保存

    前言 懒就一个字 步骤 打开设置第一项就是,选择焦点改变自动保存即可

  6. 关于Spring的常用注解和接口

    接口 1. BeanPostProcessor 2. FactoryBean 3. Condition 4. ImportSelector 5. ImportBeanDefinitionRegitra ...

  7. php获取时期时间信息函数

    在正式学习日期函数前大家得了解几个概念: 1.时区 2.世界时 3.unix时间戳 时区 这个概念,之前大家听说过很多.我们来啰嗦两句,我们现实生活中使用的实区,在电脑里面也是一样有规定的.大理石机械 ...

  8. IDEA设置提示生成序列化ID

    背景: 实现Serializable接口的类,没有提示生成序列化ID 解决问题: 1.FIle->Settings->Editor->inspections 2.点击java-> ...

  9. [C++11]C++可变参数模板

    可变参数模板 原文链接: http://blog.csdn.net/xiaohu2022/article/details/69076281 普通模板只可以采取固定数量的模板参数.然而,有时候我们希望模 ...

  10. C# 线程小结

    进程与线程 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行流,每个线 ...