Как вытаскивать из БД написанно в доках
https://developer.android.com/training/basics/data...
Создавать можно либо напрямую new Button с последующей установкой всех параметров, либо лучше с помощью inflate (позволяет создать нормальный layout в xml).
id присваивать не надо, надо ставить setOnClickLisener на кнопки.
Использовать листы - хз, возможно, в зависимости от того сколько этих кнопок будет и что надо с ними делать.