CREATE INDEX en SQL

CREATE INDEX crea una estructura que acelera búsquedas y ordenaciones. Mejora lecturas, aunque consume espacio y añade trabajo a escrituras.

Esta lección trata DDL (definición de datos): cambiar la estructura de bases, tablas, índices o vistas. En producción, estas operaciones requieren permisos elevados y planificación.

Practica primero en entornos de prueba. Un DROP mal ejecutado puede ser irreversible sin copia de seguridad.

Esta lección trata DDL (definición de datos): cambiar la estructura de bases, tablas, índices o vistas. En producción, estas operaciones requieren permisos elevados y planificación.

Practica primero en entornos de prueba. Un DROP mal ejecutado puede ser irreversible sin copia de seguridad.


Sintaxis CREATE INDEX

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

Plantillas

    CREATE INDEX nombre_indice ON tabla (columna);
CREATE UNIQUE INDEX nombre_indice ON tabla (columna1, columna2);
  

Índice para buscar clientes por ciudad

Madrid

    CREATE INDEX idx_clientes_ciudad ON Clientes(Ciudad);
SELECT Nombre_Cliente, Ciudad FROM Clientes WHERE Ciudad = 'Madrid' ORDER BY Nombre_Cliente;
  
Abrir en editor
Nombre_ClienteCiudad
Ana GarcíaMadrid
Carlos RuizMadrid

Índice para filtrar precios

Productos de más de 10

    CREATE INDEX idx_productos_precio ON Productos(Precio);
SELECT Nombre_Producto, Precio FROM Productos WHERE Precio > 10 ORDER BY Precio DESC;
  
Abrir en editor
Nombre_ProductoPrecio
Jamón serrano22.00
Salmón fresco18.50
Queso manchego15.00
… 1 producto más

Índice único compuesto

Un UNIQUE INDEX compuesto exige que la combinación de columnas no se repita. Creamos la tabla Oficinas (cada par país+ciudad es único):

País y ciudad sin duplicar

    CREATE TABLE Oficinas (
    ID INTEGER PRIMARY KEY,
    Pais TEXT NOT NULL,
    Ciudad TEXT NOT NULL
);
CREATE UNIQUE INDEX idx_oficinas_pais_ciudad ON Oficinas(Pais, Ciudad);
INSERT INTO Oficinas (ID, Pais, Ciudad) VALUES
  (1, 'España', 'Madrid'),
  (2, 'España', 'Barcelona'),
  (3, 'Francia', 'París');
SELECT Pais, Ciudad FROM Oficinas ORDER BY Pais, Ciudad;
  
Abrir en editor
PaisCiudad
EspañaBarcelona
EspañaMadrid
FranciaParís

Tablas demo

Base de datos de demostración: Clientes

Estas filas son las mismas en la mayoría de ejemplos del tutorial. Referencia esta tabla cuando adaptes las consultas a tus propios datos.

ID_Cliente Nombre_Cliente Ciudad Pais N_Ventas
1Ana GarcíaMadridEspaña120
2Luis PérezBarcelonaEspaña85
3María LópezValenciaEspaña200
4Carlos RuizMadridEspaña45
5Elena TorresSevillaEspaña67
6John SmithLondonUK150
7Marie DuboisParisFrancia92
8Hans MüllerBerlinAlemania78
9Luca RossiRomaItalia110
10Sofia AndersStockholmSuecia55
Tabla Clientes en el editor SQL (10 filas). La usamos en la mayoría de ejemplos de esta fase.

Base de datos de demostración: Productos

ID_Producto Nombre_Producto Precio Stock
1Café expreso12.50120
2Té verde8.00200
3Salsa de tomate3.20340
4Galletas de avena4.50180
5Queso manchego15.0090
6Arroz integral2.80500
7Jamón serrano22.0060
8Manzanas Golden1.90400
9Salmón fresco18.5045
10Aceite de oliva9.90150
Tabla Productos en el editor SQL.

Resumen CREATE INDEX

  • Acelera consultas sobre columnas frecuentes.
  • Un índice compuesto sigue el orden de sus columnas.
  • UNIQUE INDEX también impide duplicados.

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.