目录
③文件–>设置–>项目–>Python解释器–>+号–>下图操作
一,Python内置数据库编程—SQLite
1,SQLite数据库
本质就是一个数据库文件【包含数据库表结构及数据】
2,数据类型
NULL
text(字符)
integer(整型)
real(浮点)
blob(二进制)
注意:在创建表的时候,可以不用指定数据类型(除非是定义了 integer Primary key类型的字段,只能为64位的整数)
3,Python操作SQLite数据库
①. 导入模块
import sqlite3(不需要下载)
②. 获得连接对象
连接数据库
pycharm社区版没有数据库,需要下一个数据库插件,然后重启pycharm就好了,操作步骤如下图
点击+号,然后选择数据库路径
测试连接,如果连接成功则应用,如下图
conn = sqlite3.connect(“数据库文件.db”)
(如果数据库文件不存在,则创建;如果数据库文件存在,则打开;)
conn=sqlite3.connect('test.db')
③. 获取游标对象
获得执行对象 游标 cursor相当于session
cursor=conn.cursor()
④.通过游标c对数据进行CRUD
建表
cursor.execute("""
create table student(
_id integer primary key autoincrement,
name text not null,
weight real
)
""")
注:execute执行 不能二次执行,会 报错,因为已经存在
增加
cursor.execute('insert into student values(null,"小明",120)')
多条数据增加
cursor.executemany("insert into student values(null,?,?)",
(
('小🐖',250.0),
('小🐕',20.5),
('小🐱',5.5)
))
修改
('小黑',200.50,2) ()代表元组
cursor.execute('update student set name=?,weight=?,where _id=?',('小黑',200.50,2))
删除
%d代表数字 s字符串 f浮点型
cursor.execute('delete from student where _id=%d'%1)
存在sql注入
在元组中多个元素用,隔开,因此打上逗号会自动识别为元组
cursor.execute("delete from student where _id=?",(3,))
cursor.execute(“delete from student where _id=?”,(3))
多条数据删除
cursor.executemany("delete from student where _id=?",
(
(3,),
(4,)
))
查询
r = cursor.execute("select * from student limit 0,2")
#拿所有:c.fetchall()
r.fetchall()
#拿单条:c.fetchone()
r.fetchone()
#拿多条:c.fetchmany(size)
r.fetchmany(2)
#
print(r.fetchall()) 返回列表[]
执行多条sql
cursor.executescript('''
''')
⑤. 提交事务
conn.commit()
⑥. 关闭游标
c.close()
⑦. 关闭连接
conn.close()
4,注册自定义函数
conn. create_function(name, num_params, func)
def reverse_text(text:str):
return text[::-1]
mysql中md5
conn.create_function('rt',1,reverse_text)
cursor.execute("insert into student values(null,rt('小明'),125.5)")
二,Python第三方数据库编程—MySQL
1,安装PyMySQL模块
①命令行:pip install pymysql
②导入模块时根据提示下载
③文件–>设置–>项目–>Python解释器–>+号–>下图操作
2,使用pymysql连接
①. 导入pymysql模块
import pymysql
②.获得连接对象
conn = pymysql.connect(host=””, user=””, password=””, database=””,charset=”utf8″)
获得连接
主机 端口 用户名 密码 数据库名 编码格式
conn = pymysql.connect(host='localhost', port=3306,
user='root', password='root123',
database='vue', charset='utf8')
③.获取游标对象
cursor = conn.cursor()
④.通过游标c对数据进行CRUD
查询
cursor.execute('select * from t_book_vue')
输出所有数据的名字
for i in cursor.fetchall():
print(i[1])
⑤. 提交事务
conn.commit()
⑥. 关闭游标
c.close()
⑦. 关闭连接
conn.close()
Original: https://blog.csdn.net/weixin_53436351/article/details/123440846
Author: 小宝的宝呢
Title: Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816612/
转载文章受原作者版权保护。转载请注明原作者出处!