In my day job, I use MSSQL... it's great most of the time, but it is decidedly NOT free.
For side projects where I'm using PHP and ASP.NET 5 (both running on OS X), I've recently switched from MySQL to PostgreSQL, and I have to say I'm impressed.
It performs admirably so far, has excellent free admin tools, and the type system is impressive (for example: you don't need to choose between text and varchar(x) for performance, just choose text and it'll do the right thing). The syntax is a little different than either MSSQL or MySQL, but I caught on quickly.
You may find this link useful:
(The article mentions read performance as an issue with PostgreSQL -- while my server loads are minimal, I haven't noticed any difference at all vs. my old MySQL database. YMMV. The article is almost 2 years old, so perhaps the more recent versions have closed that gap.)
Personally, I wouldn't put my eggs in the SQL Server Express basket. It's purposefully hobbled so it is only really useful for desktop-mode applications, has no free GUI management tools, and is limited to the Windows platform.
EDIT: I was wrong about Express not having a GUI admin tool. The capabilities and license restrictions are also more amenable than the last time I looked. But it is still, for now, Windows-only, which if of course fine if that's what you're targeting.