Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

目录

一,Python内置数据库编程—SQLite

1,SQLite数据库

2,数据类型

3,Python操作SQLite数据库

①. 导入模块

②. 获得连接对象

连接数据库

③. 获取游标对象

④.通过游标c对数据进行CRUD

建表

增加

多条数据增加

修改

删除

多条数据删除

查询

执行多条sql

⑤. 提交事务

⑥. 关闭游标

⑦. 关闭连接

4,注册自定义函数

二,Python第三方数据库编程—MySQL

1,安装PyMySQL模块

①命令行:pip install pymysql

②导入模块时根据提示下载

③文件–>设置–>项目–>Python解释器–>+号–>下图操作

2,使用pymysql连接

①. 导入pymysql模块

②.获得连接对象

③.获取游标对象

④.通过游标c对数据进行CRUD

⑤. 提交事务

⑥. 关闭游标

⑦. 关闭连接

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

一,Python内置数据库编程—SQLite

1,SQLite数据库

本质就是一个数据库文件【包含数据库表结构及数据】

2,数据类型

NULL
text(字符)
integer(整型)
real(浮点)
blob(二进制)

注意:在创建表的时候,可以不用指定数据类型(除非是定义了 integer Primary key类型的字段,只能为64位的整数)

3,Python操作SQLite数据库

①. 导入模块

import sqlite3(不需要下载)

②. 获得连接对象

连接数据库

pycharm社区版没有数据库,需要下一个数据库插件,然后重启pycharm就好了,操作步骤如下图

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

点击+号,然后选择数据库路径

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

测试连接,如果连接成功则应用,如下图

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

conn = sqlite3.connect(“数据库文件.db”)

(如果数据库文件不存在,则创建;如果数据库文件存在,则打开;)

conn=sqlite3.connect('test.db')

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

③. 获取游标对象

获得执行对象 游标 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))

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

多条数据删除

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内置数据库编程—SQLite与Python第三方数据库编程—MySQL

③文件–>设置–>项目–>Python解释器–>+号–>下图操作

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

Python内置数据库编程—SQLite与Python第三方数据库编程—MySQL

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球