将关系数据库转换为扁平数据库及反向转换
我想写一个脚本,把关系型数据库的数据转换成扁平化的格式,反过来也可以。这个数据库的每一行大部分是从文本输入中得到的数据,但也有一些下拉列表的选项,这些选项会输入来自其他表的主键ID。目前,我的数据库行看起来像这样:
(1, 4, 2, 45.508582, -73.610102, 3),我想把它转换成:
(1, Sherbrooke, "Park Frontenac", 45.508582, -73.610102, John, Doe),然后再把它转换回去。
有些表格每个主键ID只占一列(比如城市和公园的表),但有些表格则有两列或更多(比如人员的表)。
写一个这样的脚本,最简单的方法是什么呢?我对编写脚本不太熟悉,除了基本的php,不过我打算很快开始学习python。
1 个回答
0
写一个SQL查询,来获取你需要的数据
select name1, name2, number1, number2
from table1
join table2 on table1.id = table2.t1_id
然后使用sqlalchemy来创建并运行你的脚本
from sqlalchemy import create_engine
engine = create_engine('user_pass_address_port')
dbc = engine.connect()
dbr = dbc.execute(sql)
for row in dbr:
print row
每一行都会有一个包含所需数据的元组