You can create a field type of "blob" and put binary data (like a PDF) in there but it's rarely necessary. And by "rarely", I mean I can't really think of a reason why you'd want to.
What I do (and everyone I know does) is one of these solutions:
- just make a text field and store the filename in the database
- create a record in the database, get the record's ID number, and rename the PDF to $id.pdf
I can't really think of a good reason to put the data in the database when you can just make a pointer to a file.