sql.execute('SELECT id FROM name WHERE call_data = (?)', (ii[1],))
sql.execute('INSERT INTO name VALUES (?, ?)', (ii[0], ii[1]))
sql.execute('SELECT id FROM name WHERE call_data = (?)', (call.data,))
В SQLite ты не можешь хранить файлы, в лучшем случае использовать её для индексирования файлов, если их будет слишком много. А вообще научись гуглить - это очень просто: пишешь в гугле "python file share bot telegram" и по первой ссылке сразу репозиторий ровно с тем, что ты хочешь, прям 1 в 1, вот оно.
Только один недостаток - это большой начальный размер приложения, если данных будет очень много.
В целом для любого "контентника" лучше всего хранить данные локально, а обновлять базу с обновлением самого приложения в gplay.
cursor = db.execute('SELECT * FROM table_name WHERE (id IS ? AND name IS ?)', (id, name))
row = cursor.fetchone()
if row is None:
cursor = db.execute('INSERT INTO table_name (id, name) VALUES (?,?)', (id, name))
db.commit()