Default new record value from the table
It's not possible with DEFAULT. Docs says:


  Restrictions on Default Column Values
  Default column values are
  subject to the following restrictions:
  
  A DEFAULT expression cannot contain references to PL/SQL functions or
  to other columns, the pseudocolumns LEVEL, PRIOR, and ROWNUM, or date
  constants that are not fully specified.
  
  The expression can be of any form except a scalar subquery expression.


So DEFAULT (SELECT country_if FROM country where default_country =1 and rownum=1), and even  DEFAULT (SELECT 1 FROM DUAL) fail because it cannot contain subquery .   You cannot work it around by defining your own function either.
The only way is to create row level before insert trigger .