You shouldn't delete things direct from the database because that messes up post indexing (used for searches, related questions etc).
You can hide all posts by a user - there is a button for that on their profile after you block them. Same for IP addresses I think. Then you can go to Admin > Stats and click the button to delete hidden posts.
Unfortunately that won't necessarily delete all the posts, only ones where all the children are hidden. i.e. if a question is hidden but the answers are not set to hidden, the question won't be deleted. You would need to go to the question and hide all answers and comments for it to get deleted.