实习Day 1 记录 - SQLAlchemy
SQLAlchemy
author: zzy
date: 2024-7-1
数据库结构
结构树
- MetaData(元数据:可看做Table对象目录)
- Table
- column
- key
- constraint
- index
- Table
MetaData
保存数据库结构, 把数据库结构结合在一起
1 |
|
Table
通过调用Table构造函数来初始化Table
对象.
在构造函数中提供MetaData
对象和表名
, 任何其他参数都被认为是列对象, 列对象通过调用Column
函数创建.
1 |
|
Column
Column(<键名>, <数据类型>, <约束>)
key and constraint
1 |
|
连接到数据库
1 |
|
engine使用
1 |
|
代码和注释摘自视频https://www.youtube.com/watch?v=Uym2DHnUEno的20:00处
处理数据
增 insert
作为
Table
对象的实例方法:1
2
3
4
5
6
7
8
9
10ins = cookies.insert().values(
cookie_name="chocolate chip",
cookie_recipe_url="example.com",
cooki_sku="CC01",
quantity="12",
unit_cost="0.50"
)
print(str(ins))# 实际要执行的SQL语句
ins.compile().params# 编译语句, 但不执行, 得到执行后的结果
result = connection.execute(ins)# 执行插入语句作为独立的函数:
1
2
3
4
5
6
7
8from sqlalchemy import insert
ins = insert(cookies).values(
cookie_name="chocolate chip",
cookie_recipe_url="example.com",
cookie_sku="CC01",
quantity="12",
unit_cost="0.50"
)使用关键字参数
1
2
3
4
5
6
7
8
9ins = cookies.insert()
result = connection.executte(
ins,
cookie_name='dark chocolate chip',
cookie_recipe_url='example.com',
cookie_sku='CC01',
quantity='12',
unit_cost='0.50'
)插入多条记录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15inventory_list = [
{
'key1': 'value1',
'key2': 'value2',
},
{
'key3': 'value3',
'key4': 'value4',
},
{
'key5': 'value5',
'key6': 'value6',
},
]
result = connection.execute(ins, inventory_list)
删 delete
1 |
|
改 update
1 |
|
查 select
1 |
|
ORM
Object-Relational Mapping, ORM)
1 |
|
在视频中提到, 不建议使用close()方法
同样地优化框架为:
1 |
|