只要 indicates a sufficient condition, i.e. "只要A就B" means "A => B", "The fact A guarantees the fact B". 就 or 便 usually gives a sense that something is simpler than one expects, so such adverbs match with 只要.
You will (simply) succeed as long as you work hard.
只有 indicates a necessary condition, i.e. "只有A才B" means "A <= B",
"Condition A is mandatory for B to be present". 方 or 才 usually gives a sense that something is more difficult than expected, or some scenario requires more conditions than expected to achieve, so these adverbs match with 只有.
You can only succeed if you work hard.
In other usages of 就 and 才, they play similar roles, i.e. giving optimistic/pessimistic senses.
It was only 3 p.m. that my husband came home yesterday. (I didn't expect him to come home so early, but he did).
It was not until 9 p.m. that my husband came home yesterday. (I expected him to come home earlier, but he just kept me waiting).
In English it doesn't require an adverb to complete a sentence with a conditional clause; but in Chinese, without an appropriate adverb like 才 or 就, the sentence will sound incomplete. Since these words are required to form a sentense, your grammar book may suggest they are conjunctions/连词, but I think in fact they are adverbs/副词.
Among them, 才 and 就 are more common in everyday use, while 便 and 方 may sound too formal. Other possibilities are rare as far as I can think of. I would suggest that you only memorize these two patterns: "只要……就……" and "只有……才……", for these two appear in our primary school textbooks as well.