AFAIK, it is common practice to have a separate database for testing that is reset before each test. This could be an in-memory or sqlite database.
Why would you need to leave data in your db? Are you not setting up the data as required for the test? Surely you are not performing unit tests on your production database (potentially dangerous, also the tests could be affected by existing data since they are not performed in a "neutral" environment)? Side note: some would argue that it's not a unit test but an integration test (or some other type of test) if you are using the db.