ITPub博客

首页 > 数据库 > > sqlite附加数据库

sqlite附加数据库

作者:u_9ff4c058a0e0 时间:2022-03-17 11:24:38 0 删除 编辑
当使用sqlite连接一个数据库之后,如果再想查询别的数据库之中的数据,那又该怎么办呢?脑洞大的朋友可能会直接把该数据库关闭,然后再打开新的数据库,这样确实可行,但是,如果查完新的数据又想查询原来的数据,岂不是又要关闭新的数据库,然后再打开原来的数据库,这样会不会显得自己很傻很纯很天真,其实数据库之间的操作还是很多很复杂的,这点小事使用数据库的附加操作就可以实现,所以没有那么麻烦。
附加数据库可以理解为将数据库连接在一起,形成新的数据库,在这个新的数据库之中就可以查询数据了,数据库的附加和分离操作如下:
附加数据库
ATTACH DATABASE file_name AS database_name
分离数据库
DETACH DATABASE database_name
实例如下:
"""附加与分离数据库
附加数据库
ATTACH DATABASE file_name AS database_name

分离数据库
DETACH DATABASE database_name

the statistics of this file:
lines(count) understand_level(h/m/l) classes(count) functions(count) fields(count)
000000000066 ----------------------l 00000000000000 0000000000000001 ~~~~~~~~~~~~~
"""


import time
import sqlite3

__author__ = '与C同行'


def print_pretty_outcome(cursor):
print('-' * 80)
all_outcome = cursor.fetchall()
for column_desc in cursor.description:
print(f'{column_desc[0]:<20}', end='')
print()
for item in all_outcome:
for cell in item:
try:
print(f'{cell:<20}', end='')
except TypeError:
cell = 'None'
print(f'{cell:<20}', end='')
print()
print('-' * 80)
print()


if __name__ == '__main__':
print(f'当前时间:{time.ctime()}')
print()

print('创建一个附加的数据库')
conn = sqlite3.connect('attach.db')
c = conn.cursor()
print('创建一个临时表格')
c.execute('''create table temp1_tb(
first_col text,
second_col text)'''
)
c.executemany('insert into temp1_tb values (?, ?)',
(('aa', 'bb'),
('cc', 'dd')))
conn.commit()
c.close()
conn.close()
print()

conn = sqlite3.connect('learn.db')
c = conn.cursor()
print('附加attach数据库')
c.execute('attach database "attach.db" as "attach_db"')
print('查询附加数据库中的数据')
c.execute('select * from temp1_tb')
print_pretty_outcome(c)
print('分离数据库')
c.execute('detach database attach_db')
c.close()
conn.close()

结果如下:

附加数据库就是把两个数据库连接在一起,所以这样的操作是数据库之间的操作,以前的操作都是数据库之内的操作,这就是他们之间最大的不同。

来源 https://mp.weixin.qq.com/s/_STUkr45yyCVMm8RYSpBEQ

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3148618/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-02-11

  • 博文量
    1828
  • 访问量
    20574