​​分享一个Python 遇到数据库超好用的模块!

​​分享一个Python 遇到数据库超好用的模块!

 

这篇文章主要介绍了 分享一个Python 遇到数据库超好用的模块,SQLALchemy这个模块,该模块是Python当中最有名的ORM框架,该框架是建立在数据库API之上,使用关系对象映射进行数据库的操作,,需要的朋友可以参考下。

 

前言:

大家好,今天我和大家来聊一下SQLALchemy这个模块,该模块是Python当中最有名的ORM框架,该框架是建立在数据库API之上,使用关系对象映射进行数据库的操作,简而言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

看到这里,相信不少的读者可能会感觉到云里雾里,我们就通过一个简单的案例在说明一下吧。

例如我们想要在mysql当中新建一个表格,我们首先需要连接上数据库,代码如下:

1

2

3

4

5

6

:# 连接数据库

sql_connect = 'mysql+pymysql://root:123456@localhost:3306/sql_prac?charset=utf8'

engine = create_engine(sql_connect)

DBSession = sessionmaker(bind=engine)

# 创建对象的基类:

BaseModel = declarative_base()

 

一、定义表结构

对于新创建的表格,我们命名为是“User”,同时我们还需要定义表结构,

代码如下:

1

2

3

4

5

6

7

8

#定义对象

class User(BaseModel):

# 表名

__tablename__ = 'user'

# 表结构,其中ID设为是主键,并且是自动增加的

id = Column(Integer, primary_key=True, autoincrement=True)

name = Column(String(20))

age = Column(Integer)

 

二、创建以及删除表

对于创建表以及删除表的操作,代码如下:

1

2

3

4

5

6

7

#创建映射的数据库表

def init_db():

BaseModel.metadata.create_all(engine)

#删除映射的数据库表

def drop_db():

BaseModel.metadata.drop_all(engine)

 

三、插入数据

我们可以尝试往新建的表格当中插入几个值,

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

def insert_data(name_1, age_1):

# 创建session对象,相当于MySQLdb里面的游标

session = DBSession()

# 创建新User对象:

new_user = User(name=name_1, age=age_1)

# 添加到session:

session.add(new_user)

# 提交添加数据的操作

session.commit()

# 关闭session

session.close()

 

if __name__ == "__main__":

insert_data(name_1="Mike", age_1=20)

insert_data(name_1="John", age_1=35)

.......

运行后的结果如下图所示:

006fRELkly4h9yq8hg509j30c708nt8o

 

四、查询

要是我们想要查询表格中的数据,可以这么来做

1

2

3

4

5

6

7

8

# 创建Session:

session = DBSession()

# 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:

user = session.query(User).filter(User.name == 'Tom').one()

# 打印类型和对象的name属性和age属性:

print(user.name, user.age)

# 关闭Session:

session.close()

要是调用的是all()则返回所有行,因此我们需要通过for循环遍历出来的结果然后打印,

代码如下:

1

2

3

users = session.query(User).filter(User.name == 'John').all()

for u in users:

print(u.name, u.age)

 

五、更新和删除数据

我们尝试来更新表格中的一些数据,代码如下:

1

2

3

4

5

6

7

8

9

# 创建Session:

session = DBSession()

# 可以进行多条数据更新

user = session.query(User).filter(User.id == 3)

user.update({User.age: 30})

# 提交数据

session.commit()

# 关闭Session

session.close()

通过“ID”来锁定要更新的数据的位置,然后我们通过调用update()方法将其年龄改成指定的值。与此同时我们还可以来删除表格当中的一些值,

代码如下:

1

2

3

4

5

6

7

8

9

# 创建Session

session = DBSession()

# 删除哪些数据

user = session.query(User).filter(User.id == 5).one()

session.delete(user)

# 提交数据

session.commit()

# 关闭session

session.close()

同样我们也是通过“ID”来锁定要删除数据的位置,然后调用delete()方法。

 

六、直接运行SQL语句

当然我们在创建session之后,我们也可以在里面直接运行SQL语句,例如我们想要查看一下总共有哪些数据库,

代码如下:

1

2

3

session = DBSession()

print(session.execute('show databases').fetchall())

session.close()

或者我们是想返回表格中的所有数据,代码如下:

1

2

3

session = DBSession()

print(session.execute('select * from user').fetchall())

session.close()

 

七、DataFrame到MySQL数据库

我们同时也可以批量的将excel或者csv文件当中的数据批量的导入到MySQL数据库当中,我们先通过Pandas读取文件中的数据,

代码如下:

1

2

3

4

sql_connect = 'mysql+pymysql://用户名:密码@ip地址:端口号/数据库名称?charset=utf8'

engine = create_engine(sql_connect)

df = pd.read_excel("sqlalchemy_test1.xlsx")

df.to_sql("user", engine, index=False, if_exists='append')

当然我们也可以从数据库的某个表格当中来读取数据,代码如下:

1

2

df = pd.read_sql("表格名", engine)

print(df.head())

到此这篇关于 分享一个Python 遇到数据库超好用的模块的文章就介绍到这了,快来试试吧。

 

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

Excelbook.cn Excel技巧 SQL技巧 Python 学习!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需129元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>