Una base de datos sin datos es como una biblioteca vacía. Para que una base de datos sea útil, necesitas llenarla con información relevante. En el mundo de SQL (Structured Query Language), la sentencia fundamental para añadir nuevos registros, o filas, a tus tablas es INSERT INTO.

Dominar esta sentencia es crucial para cualquier persona que trabaje con bases de datos, ya que es el primer paso para poblar tus estructuras de datos y prepararlas para consultas y análisis posteriores.

La Sentencia INSERT INTO: ¿Qué Hace?
En esencia, la sentencia INSERT INTO se utiliza para añadir una nueva fila de datos a una tabla existente en tu base de datos. Cada ejecución de esta sentencia típicamente añade un único registro, aunque existen variaciones para insertar múltiples filas, nos centraremos en la forma más común y fundamental.
Sintaxis Básica de INSERT INTO
La forma más completa y recomendada de utilizar la sentencia INSERT INTO implica especificar tanto las columnas en las que deseas insertar datos como los valores correspondientes. La sintaxis general es la siguiente:
INSERT INTO nombre_tabla (columna1, columna2, columna3, ...)VALUES (valor1, valor2, valor3, ...);Analicemos las partes clave de esta sintaxis:
INSERT INTO nombre_tabla: Indica la tabla específica a la que deseas añadir datos.(columna1, columna2, columna3, ...): Es una lista de las columnas de la tabla en las que vas a insertar valores. La lista debe estar entre paréntesis y las columnas separadas por comas. Especificar las columnas es una buena práctica, ya que hace tu código más legible y menos propenso a errores si la estructura de la tabla cambia en el futuro (por ejemplo, si se añade una nueva columna).VALUES (valor1, valor2, valor3, ...): Es la lista de los valores que se insertarán en la nueva fila. Cada valor corresponde, por posición, a la columna especificada en la lista anterior. Esta lista también debe estar entre paréntesis y los valores separados por comas.
Es vital que el número de columnas especificadas coincida con el número de valores proporcionados, y que el tipo de dato de cada valor sea compatible con el tipo de dato definido para su columna correspondiente.
Manejo de Tipos de Datos al Insertar
La forma en que especificas los valores depende del tipo de dato de la columna:
- Cadenas de Texto (VARCHAR, TEXT, etc.): Los valores de texto deben estar siempre encerrados entre comillas simples (
'). Por ejemplo:'Luke','Hazard Co'. - Números (INT, DECIMAL, FLOAT, etc.): Los valores numéricos no deben llevar comillas. Por ejemplo:
45,19500.00. - Fechas y Horas (DATE, TIME, DATETIME, etc.): Generalmente, se encierran entre comillas simples, pero el formato específico puede variar según el sistema de base de datos (MySQL, PostgreSQL, SQL Server, etc.). Un formato común es
'YYYY-MM-DD'o'YYYY-MM-DD HH:MM:SS'. - Valores Nulos (NULL): Para insertar un valor nulo en una columna, simplemente usas la palabra clave
NULLsin comillas. Esto solo es posible si la columna permite valores nulos.
Ejemplo Práctico de Inserción
Consideremos un ejemplo concreto. Supongamos que tenemos una tabla llamada empleado con las siguientes columnas: nombre, apellido, edad, direccion, ciudad y estado.
Para insertar un nuevo empleado llamado 'Luke Duke', de 45 años, residente en '2130 Boars Nest' en 'Hazard Co', 'Georgia', la sentencia INSERT INTO sería:
INSERT INTO empleado (nombre, apellido, edad, direccion, ciudad, estado)VALUES ('Luke', 'Duke', 45, '2130 Boars Nest', 'Hazard Co', 'Georgia');Observa cómo los valores de texto ('Luke', 'Duke', etc.) están entre comillas simples, mientras que el valor numérico (45) no las lleva. El orden de los valores coincide exactamente con el orden de las columnas especificadas.
Insertando Múltiples Registros de Ejemplo
Ahora, apliquemos esto a un escenario con varios empleados. Imagina una tabla llamada mi_empleados con las columnas nombre, apellido, puesto, edad y salario.
Aquí tienes las sentencias para insertar los primeros tres empleados mencionados en los ejercicios prácticos:
INSERT INTO mi_empleados (nombre, apellido, puesto, edad, salario)VALUES ('Jonie', 'Weber', 'Secretary', 28, 19500.00);INSERT INTO mi_empleados (nombre, apellido, puesto, edad, salario)VALUES ('Potsy', 'Weber', 'Programmer', 32, 45300.00);INSERT INTO mi_empleados (nombre, apellido, puesto, edad, salario)VALUES ('Dirk', 'Smith', 'Programmer II', 45, 75020.00);Después de ejecutar estas sentencias, tu tabla mi_empleados contendrá estas tres filas de datos. Podrías continuar insertando más empleados siguiendo el mismo patrón.
Verificando Tus Inserciones con SELECT
Una vez que has insertado datos, ¿cómo confirmas que se han guardado correctamente? Aquí es donde entra en juego otra sentencia SQL fundamental: la sentencia SELECT. La sentencia SELECT te permite recuperar datos de una o más tablas.
Aquí te mostramos cómo puedes usar SELECT para verificar los datos que acabas de insertar, basándonos en los ejemplos de consulta proporcionados:
1. Seleccionar todas las columnas para todos los empleados:
Esta es la forma más sencilla de ver todo el contenido de la tabla.
SELECT * FROM mi_empleados;El asterisco (*) significa "todas las columnas". Esta consulta te mostrará todas las filas que has insertado con todos sus datos.
2. Seleccionar todos los empleados con un salario superior a 30000:
Aquí usamos la cláusula WHERE para filtrar los resultados basándonos en una condición.
SELECT * FROM mi_empleados WHERE salario > 30000;Esta consulta solo devolverá las filas donde el valor en la columna salario sea mayor que 30000.
3. Seleccionar nombre y apellido para empleados menores de 30 años:
Puedes seleccionar solo columnas específicas en lugar de todas, y combinarlo con el filtrado.
SELECT nombre, apellido FROM mi_empleados WHERE edad < 30;Esto te dará una lista de nombres y apellidos de los empleados cuya edad es menor de 30.
4. Seleccionar nombre, apellido y salario para empleados con "Programmer" en su puesto:
La cláusula LIKE se usa para buscar patrones en columnas de texto, a menudo combinada con el comodín %, que representa cero o más caracteres.
SELECT nombre, apellido, salario FROM mi_empleados WHERE puesto LIKE '%Programmer%';El patrón '%Programmer%' buscará la subcadena "Programmer" en cualquier parte del texto de la columna puesto.
5. Seleccionar todos los empleados cuyo apellido contenga "ebe":
Otro ejemplo usando LIKE para buscar un patrón en el apellido.
SELECT * FROM mi_empleados WHERE apellido LIKE '%ebe%';Esto devolverá empleados como 'Weber'.
6. Seleccionar el nombre para empleados cuyo nombre sea exactamente "Potsy":
Para coincidencias exactas, usas el operador de igualdad (=).
SELECT nombre FROM mi_empleados WHERE nombre = 'Potsy';Esta consulta es más específica que usar LIKE.
7. Seleccionar todos los empleados mayores de 80 años:
Otro ejemplo de filtrado numérico con WHERE.
SELECT * FROM mi_empleados WHERE edad > 80;8. Seleccionar todos los empleados cuyo apellido termine en "ith":
Usando LIKE con el comodín % al principio busca cadenas que terminen con el patrón.
SELECT * FROM mi_empleados WHERE apellido LIKE '%ith';Esto encontraría apellidos como 'Smith'.
Estos ejemplos de SELECT demuestran cómo, una vez que has insertado datos, puedes interactuar con ellos de maneras muy específicas, recuperando solo la información que necesitas.
Consejos Importantes al Insertar Datos
- Verifica la Estructura de la Tabla: Antes de insertar, asegúrate de conocer los nombres exactos de las columnas y sus tipos de datos.
- Respeta los Tipos de Datos: Insertar un valor de texto en una columna numérica, o viceversa (sin la conversión adecuada), causará un error. Recuerda las comillas para texto y fechas, y la ausencia de ellas para números.
- Considera las Restricciones (Constraints): Las tablas pueden tener reglas como
NOT NULL(la columna no puede estar vacía),UNIQUE(los valores deben ser únicos), o claves foráneas (los valores deben existir en otra tabla). Violar estas reglas impedirá la inserción. - El Orden Importa (Si Especificas Columnas): Si especificas la lista de columnas, el orden de los valores en la cláusula
VALUESdebe coincidir con el orden de las columnas listadas. - Si No Especificas Columnas: Es posible omitir la lista de columnas después del nombre de la tabla (
INSERT INTO nombre_tabla VALUES (valor1, valor2, ...)). En este caso, *debes* proporcionar valores para *todas* las columnas de la tabla, en el orden en que fueron definidas originalmente. Esta forma es menos segura, ya que un cambio en el orden de las columnas de la tabla podría romper tu sentenciaINSERT.
Preguntas Frecuentes (FAQ) sobre INSERT INTO
¿Qué error obtendré si no pongo comillas en un valor de texto?
Generalmente, obtendrás un error de sintaxis o un error relacionado con el tipo de dato, indicando que el valor proporcionado no es válido para la columna.
¿Puedo insertar una fila si solo tengo valores para algunas columnas?
Sí, siempre y cuando las columnas para las que no proporcionas un valor permitan valores NULL o tengan un valor predeterminado definido (DEFAULT). En este caso, *debes* especificar la lista de columnas para las que sí proporcionas valores.
¿Qué pasa si intento insertar un valor duplicado en una columna UNIQUE?
La base de datos rechazará la inserción y te devolverá un error indicando una violación de la restricción de unicidad.
¿La sentencia INSERT INTO distingue entre mayúsculas y minúsculas?
Los nombres de las sentencias SQL (INSERT INTO, VALUES) y los nombres de columnas/tablas generalmente no distinguen entre mayúsculas y minúsculas (aunque esto puede configurarse en algunos sistemas). Sin embargo, los valores de texto *dentro* de las comillas simples sí suelen distinguir entre mayúsculas y minúsculas, a menos que la configuración de la base de datos o la columna especifiquen lo contrario.
Conclusión
La sentencia INSERT INTO es una de las operaciones más fundamentales en SQL. Es la puerta de entrada para que tus datos lleguen a la base de datos. Comprender su sintaxis, cómo manejar los diferentes tipos de datos y cómo verificar tus inserciones con SELECT te proporciona una base sólida para trabajar con bases de datos relacionales. Practica con ejemplos y pronto te sentirás cómodo poblando tus tablas con la información que necesitas.
Si quieres conocer otros artículos parecidos a Cómo Insertar Filas en Tablas SQL puedes visitar la categoría Bases de datos.

Aprende mas sobre MySQL