Yes, you can use punctuation, white space, international characters, and SQL reserved words if you use delimited identifiers:
SELECT * FROM `my-table`;
In MySQL, use the back-ticks. In standard SQL, use double-quotes.
Or if you use MySQL you can set the ANSI_QUOTES
SQL mode:
SET SQL_MODE = ANSI_QUOTES;
SELECT * FROM "my-table";