As Fur already stated, SQL is a "must have". Date & Time functions are also very useful.
I guess one should know how to hash a password. It is important so that a database breach won't reveal the passwords right away (there's always brute-force, but that's another matter). Also, some javascript is useful if you want to implement functions like auto-refresh, opening pop-ups, refreshing the parent windows after the popup is closed (useful if you need some "edit" function) etc...
I've been working on a repair shop application, where the reception can fill in the problem and what services are to be made, and the technician only has to check the page, do what he has to do and fill in what has been done and how much time it took. I used mostly SQL, some date and time functions to keep track of the dates of each repair, mail function for notification e-mails, cookies and session and pretty much everything else OP mentioned, javascript for the functions mentioned above, css for looks,... The only thing I haven't done yet is a way of hashing the passwords, which I already know how to implement.
EDIT: Just remembered and this is very important: A way of making SQLi impossible. This is relatively easy to accomplish, I'm using a function that strips unneeded characters before making the query.