Difference between DEFAULT ' ', DEFAULT 0

Definitely not. The only time I’d put an empty string (or a space) in a field is where the field is supposed to be empty and that therefore is the actual correct value of the field.

The only time I ever use dummy values is when I am setting up dummy data for a test and then I wouldn’t use empty strings or spaces as the dummy data unless that was meaningful data for the field.

Except for when you have added a new field to an existing table you ought to always know a value for each field before loading it into the table. You might have a number of special cases such as ‘refused to supply information’ or ‘client doesn’t remember’ but where those are possible values for a field you’d need to allocate specific values to each.