Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Yes, on any RDBMS, if you still have a unique index with non-nullable columns to identify individual rows.

The difference between a "unique key" and a "primary key" is a PK does not allow NULLs. NULL does not compare to NULL so you can not uniquely identify a row with a nullable unique key. Especially if your RDBMS ignores NULLs for uniqueness (e.g. SQL Server allows at most one NULL in a unique index)

Any of the indexes (A PK is an index) can be clustered: but every table should have clustered index (outside of staging table that are cleared after use). The clustered index can be the PK, the unique key, or another index.

InnoDB will first test to see if there is a PRIMARY KEY, if there isn't one, it will check for a UNIQUE KEY and use it for clustering the data, if there is no UNIQUE KEY, then InnoDB will generate an internal 6-byte integer key and use it as the PRIMARY KEY,.