{"id":3983,"date":"2025-06-07T08:59:24","date_gmt":"2025-06-07T08:59:24","guid":{"rendered":"https:\/\/w3buddy.com\/?post_type=cposts&#038;p=3983"},"modified":"2025-06-07T08:59:25","modified_gmt":"2025-06-07T08:59:25","slug":"sql-unique","status":"publish","type":"cposts","link":"https:\/\/w3buddy.com\/blog\/notes\/sql\/sql-unique\/","title":{"rendered":"SQL UNIQUE"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>UNIQUE<\/strong> constraint ensures all values in a column (or group of columns) are distinct \u2014 no duplicates allowed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd39 <strong>Basic Syntax<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>-- Single column UNIQUE constraint\ncolumn_name data_type UNIQUE;\n\n-- Multiple columns (composite unique key)\nUNIQUE (column1, column2);<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd39 <strong>Example<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>CREATE TABLE users (\n  user_id INT PRIMARY KEY,\n  email VARCHAR(100) UNIQUE,       -- no two users can have the same email\n  username VARCHAR(50),\n  UNIQUE (username)                -- usernames must also be unique\n);\n\n-- Inserting unique values\nINSERT INTO users (user_id, email, username) VALUES (1, 'alice@example.com', 'alice');\n\n-- Trying duplicate email will fail\n-- INSERT INTO users (user_id, email, username) VALUES (2, 'alice@example.com', 'alice2'); -- ERROR\n\n-- Trying duplicate username will fail\n-- INSERT INTO users (user_id, email, username) VALUES (3, 'bob@example.com', 'alice'); -- ERROR<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd39 <strong>Important Notes<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UNIQUE allows NULL values but behavior can vary by DBMS (some allow multiple NULLs, others don\u2019t).<\/li>\n\n\n\n<li>A table can have multiple UNIQUE constraints on different columns.<\/li>\n\n\n\n<li>UNIQUE constraints create an index automatically for performance.<\/li>\n\n\n\n<li>Use UNIQUE to enforce business rules like unique emails, usernames, or product codes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83e\udde0 <strong>Quick Recap<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table has-small-font-size\"><table><thead><tr><th>Key Point<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td>UNIQUE<\/td><td>Ensures all values are distinct<\/td><\/tr><tr><td>Allows NULL?<\/td><td>Usually yes, but depends on DBMS<\/td><\/tr><tr><td>Multiple keys<\/td><td>Multiple UNIQUE constraints allowed<\/td><\/tr><tr><td>Use case<\/td><td>Unique emails, usernames, identifiers<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udca1 Use UNIQUE to guarantee no duplicate values in critical columns and improve query speed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The UNIQUE constraint ensures all values in a column (or group of columns) are distinct \u2014 no duplicates allowed. \ud83d\udd39 Basic Syntax \ud83d\udd39 Example \ud83d\udd39 Important Notes \ud83e\udde0 Quick Recap Key Point Explanation UNIQUE Ensures all values are distinct Allows NULL? Usually yes, but depends on DBMS Multiple keys Multiple UNIQUE constraints allowed Use case [&hellip;]<\/p>\n","protected":false},"template":"","meta":{"googlesitekit_rrm_CAowu461DA:productID":""},"categories":[952,979],"class_list":["post-3983","cposts","type-cposts","status-publish","hentry","category-notes","category-sql"],"_links":{"self":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/cposts\/3983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/cposts"}],"about":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/types\/cposts"}],"wp:attachment":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/media?parent=3983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/categories?post=3983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}