Difference between Primary key, Unique key and Surrogate Key

Primary Key: A column in a table whose values uniquely identify the rows in the table. A primary key value cannot be NULL.

Unique Key: Unique Keys are used to uniquely identify each row in an Oracle table. There can be one and only one row for each unique key value.

Surrogate Key: A system generated key with no business value. Usually implemented with database generated sequences.

Primary Key should not dontain nulls and  unique key can contains null values. Also here is only one  primary key for a table. However there may be more than 1 Unique key in a table.

Primary key can be associated with other tables with foreign key relationship, But there is no relationship for unique key.

In SQL both primary key and unique enforce uniqueness of the column on which they are defined. But by default primary key creates a clustered index on the column, where are unique creates a non-clustered index by default.