La restricción UNIQUE en SQL garantiza que los valores de una columna o conjunto de columnas sean distintos, evitando duplicados. A diferencia de una CLAVE PRIMARIA, permite múltiples valores NULL ya que cada NULL se trata como único, mientras que una clave principal requiere que todos los valores sean únicos y no NULL.
convertir caracteres en cadenas
Características:
- Garantiza que las columnas tengan valores únicos.
- Se permiten varios NULL.
- Puede aplicarse a una o más columnas.
- No crea automáticamente un índice (aunque muchas bases de datos lo hacen para mejorar el rendimiento).
- Se puede agregar o eliminar usando ALTER TABLE.
Sintaxis:
CREATE TABLE table_name (
column1 datatype UNIQUE
column2 datatype
...
);
En la sintaxis anterior:
- CREAR TABLA nombre_tabla: crea una nueva tabla.
- tipo de datos columna1 ÚNICO: define una columna con un tipo de datos y aplica valores únicos.
- tipo de datos columna2: define otra columna sin la restricción única.
- Repita para columnas adicionales según sea necesario.
Ejemplo de uso de la restricción ÚNICA de SQL
Ejemplo 1: creación de una tabla con restricciones ÚNICAS
Creemos una tabla Clientes donde la columna Correo electrónico debe ser única.
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
Name VARCHAR(100)
Email VARCHAR(100) UNIQUE
Country VARCHAR(50)
);
En este caso cada cliente debe tener una dirección de correo electrónico única. Si intentas insertar un correo electrónico duplicado SQL generará un error.
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (1 'John Doe' '[email protected]' 'USA');
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (2 'Jane Smith' '[email protected]' 'Canada');
-- This will fail because '[email protected]' already exists
INSERT INTO Customers (CustomerID Name Email Country)
VALUES (3 'Alice Johnson' '[email protected]' 'UK');
La tercera inserción fallará porque el correo electrónico [email protected] ya existe en la tabla Clientes.
Ejemplo 2: uso de UNIQUE con varias columnas
También podemos aplicar la restricción ÚNICA a varias columnas para garantizar que la combinación de esas columnas sea única.
CREATE TABLE Orders (
OrderID INT PRIMARY KEY
CustomerID INT
ProductID INT
OrderDate DATE
UNIQUE (CustomerID ProductID)
);
En este ejemplo, la combinación de CustomerID y ProductID debe ser única, lo que significa que un cliente no puede pedir el mismo producto más de una vez.
Ejemplo 3: comprobar valores únicos mediante subconsultas
SQL le permite verificar la unicidad en las subconsultas. Puede utilizar la palabra clave UNIQUE en una subconsulta para asegurarse de que los resultados no contengan valores duplicados.
SELECT CustomerID
FROM Orders
WHERE UNIQUE (
SELECT OrderID
FROM OrderDetails
WHERE Orders.CustomerID = OrderDetails.CustomerID
);
En este ejemplo, verificamos si hay valores de ID de pedido duplicados para cada cliente en la tabla de pedidos. Si la subconsulta devuelve valores únicos, se seleccionará el CustomerID.
Puntos importantes
- Se evalúa como verdadero en una subconsulta vacía.
- Devuelve verdadero solo si hay tuplas únicas presentes como resultado de la subconsulta (dos tuplas son únicas si el valor de cualquier atributo de las dos tuplas difiere).
- Devuelve verdadero si la subconsulta tiene dos filas duplicadas con al menos un atributo como NULL.
¿Qué garantiza la restricción ÚNICA en SQL?
- A
La columna almacena solo valores que no están duplicados
- B
La columna permite valores sin verificar duplicados
- do
La columna acepta múltiples valores idénticos en filas
- D
La columna almacena solo valores que siempre no son NULL
UNIQUE garantiza que todos los valores de la columna (o grupo de columnas) deben ser distintos, evitando entradas duplicadas.
¿En qué se diferencia ÚNICA de una CLAVE PRIMARIA?
- A
UNIQUE permite muchos valores NULL; la clave primaria no
- B
UNIQUE elimina NULL; la clave primaria siempre almacena NULL
- do
Indexación de fuerzas ÚNICAS; La clave primaria evita los índices.
- D
UNIQUE impone la clasificación; La clave principal evita realizar pedidos.
UNIQUE permite múltiples valores NULL porque cada NULL se considera diferente a diferencia de PRIMARY KEY que prohíbe los NULL por completo.
¿Qué sucede al insertar un valor duplicado en una columna ÚNICA?
- A
SQL acepta filas duplicadas y almacena ambos valores
- B
SQL reemplaza el valor anterior con el insertado más recientemente
- do
SQL rechaza duplicados y genera un error de integridad
- D
SQL convierte el valor duplicado en NULL automáticamente
Si un valor viola la restricción ÚNICA, SQL bloquea la inserción o actualización e informa un error.
¿Qué afirmación sobre UNIQUE y NULL es correcta?
- A
UNIQUE trata todos los valores NULL como duplicados iguales
- B
UNIQUE trata todos los valores NULL como filas únicas separadas
- do
UNIQUE convierte todas las entradas NULL en cadenas vacías
- D
UNIQUE permite NULL solo cuando no existen datos en la columna
Se permiten varios NULL porque cada NULL se evalúa como un valor distinto e incomparable en UNIQUE.
¿Por qué muchas bases de datos crean un índice para UNIQUE?
- A
Para organizar los valores alfabéticamente antes de insertarlos
- B
Para formatear datos numéricos antes de almacenarlos en una tabla
- do
Para convertir NULL en valores secuenciales únicos
- D
Para mejorar la verificación de duplicados durante la validación.
Un índice ayuda al motor a detectar rápidamente valores duplicados, lo que hace que la aplicación de restricciones UNIQUE sea más eficiente.
¿Qué comprueba la palabra clave ÚNICA en una subconsulta?
- A
Garantiza que la subconsulta devuelva exactamente una columna numérica
- B
Garantiza que la salida de la subconsulta contenga solo filas distintas
- do
Garantiza que la subconsulta compare valores sin utilizar combinaciones
- D
Garantiza que la subconsulta ignore las filas que contienen cualquier NULL
UNIQUE valida que la subconsulta no produzca tuplas duplicadas; cada fila devuelta debe diferir en al menos un atributo.
Prueba completada con éxito Su puntuación: 2/6Exactitud : 0%Inicie sesión para ver la explicación 1/6 1/6 < Previous Siguiente >