Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL: Insertar instrucción
Este tutorial de SQL explica cómo usar SQL insertar declaración Viene con gramática, ejemplos y ejercicios.
describir
La instrucción SQL INSERT se usa para insertar uno o más registros en una tabla. Hay 2 sintaxis para la declaración INSERT, dependiendo de si está insertando un solo registro o varios registros.
sintaxis
Al insertar un solo registro en SQL, la sintaxis de la instrucción INSERT es:
INSERT INTO table (column1, column2, ... ) VALUES (expression1, expression2, ... );
O la sintaxis de la instrucción INSERT al insertar varios registros en SQL es:
INSERT INTO table (column1, column2, ... ) SELECT expression1, expression2, ... FROM source_tables [WHERE conditions];
parámetro o parámetro
tabla La tabla en la que se van a insertar los registros. column1, column2 Estas son las columnas de la tabla donde se insertará el valor. expresión1, expresión2 Estos son los valores asignados a las columnas de la tabla. Por lo tanto, a la columna1 se le asignará el valor de expresión1, a la columna2 se le asignará el valor de expresión2, y así sucesivamente. source_tables se usa cuando se insertan registros de otra tabla. Esta es la tabla de origen cuando se realiza la inserción. La condición WHERE es opcional. Se utiliza al insertar registros de otra tabla. Estas son las condiciones que se deben cumplir para insertar un registro.
notas
- Al insertar registros en una tabla mediante la instrucción SQL INSERT, debe proporcionar un valor para cada columna NOT NULL. Una columna solo se puede omitir de una instrucción INSERT si permite valores NULL.
Ejemplo de DDL/DML
Si desea seguir este tutorial, obtenga DDL para crear las tablas y DML para completar los datos. ¡Entonces pruebe los ejemplos en su propia base de datos!
Ejemplo: insertar un registro mediante la instrucción INSERT
La forma más fácil de usar la declaración INSERT es usar la palabra clave VALUES para insertar un registro en una tabla. Veamos un ejemplo de cómo hacer esto en SQL.
En este ejemplo, tenemos una tabla llamada categorías con los siguientes datos:
categoria ID | nombre de la categoría |
---|---|
25 | fiambres |
50 | Producción |
75 | panadería |
100 | grandes almacenes |
125 | Tecnología |
Insertemos un nuevo registro de categoría. Ingrese la siguiente instrucción SQL:
INSERT INTO categories (category_id, category_name) VALUES (150, 'Miscellaneous');
Se insertará 1 registro. Seleccione de nuevo los datos de la tabla de categorías:
SELECT * FROM categories;
Estos son los resultados que deberías ver:
categoria ID | nombre de la categoría |
---|---|
25 | fiambres |
50 | Producción |
75 | panadería |
100 | grandes almacenes |
125 | Tecnología |
150 | Varios tipos |
Este ejemplo insertará un registro en la tabla de categorías. Este nuevo registro tiene un category_id de 150 y un category_name de “Varios”.
En este ejemplo, debido a que está proporcionando valores para todas las columnas en la tabla de categorías, puede omitir los nombres de las columnas y escribir la declaración INSERT así:
INSERT INTO categories VALUES (150, 'Miscellaneous');
Sin embargo, hacerlo es peligroso por dos razones. Primero, si agrega columnas adicionales a la tabla de categorías, la instrucción INSERT generará un error. En segundo lugar, si cambia el orden de las columnas de la tabla, los datos se insertarán en la columna incorrecta. Por lo tanto, como regla general, es mejor listar los nombres de las columnas en la instrucción INSERT.
Ejemplo: insertar varios registros mediante la instrucción INSERT
Al colocar una instrucción SELECT dentro de una instrucción INSERT, puede realizar múltiples inserciones rápidamente. Veamos un ejemplo de cómo hacer esto.
En este ejemplo, tenemos una tabla llamada empleados con los siguientes datos:
ID de empleado | apellido | nombre | salario | dept_id |
---|---|---|---|---|
1001 | Herrero | John | 62000 | 500 |
1002 | anderson | simple | 57500 | 500 |
1003 | el Monte Everest | Puntilla | 71000 | 501 |
1004 | Horvath | Jack | 42000 | 501 |
También existe una tabla llamada clientes con los siguientes datos:
Identificación del cliente | apellido | nombre | sitio favorito |
---|---|---|---|
4000 | jackson | José | Red de Ciencia y Tecnología |
5000 | Herrero | simple | digminecraft.com |
6000 | Ferguson | samantha | granactividad.com |
7000 | Reynolds | Alan | revisatumath.com |
8000 | anderson | Página | nulo |
9000 | Johnson | Derek | Red de Ciencia y Tecnología |
Ahora, insertemos información de los empleados en la tabla de clientes:
INSERT INTO customers (customer_id, last_name, first_name) SELECT employee_number AS customer_id, last_name, first_name FROM employees WHERE employee_number TIP: With this type of INSERT, some databases require you to alias the column names in the SELECT to match the column names of the table you are inserting into. As you can see in the example above, we have aliased the first column in the SELECT statement to customer_id.There will be 2 records inserted. Select the data from the customers table again:
SELECT * FROM customers;Estos son los resultados que deberías ver:
Identificación del cliente | apellido | nombre | sitio favorito |
---|---|---|---|
4000 | jackson | José | Red de Ciencia y Tecnología |
5000 | Herrero | simple | digminecraft.com |
6000 | Ferguson | samantha | granactividad.com |
7000 | Reynolds | Alan | revisatumath.com |
8000 | anderson | Página | nulo |
9000 | Johnson | Derek | Red de Ciencia y Tecnología |
1001 | Herrero | John | nulo |
1002 | anderson | simple | nulo |
En este ejemplo, los últimos 2 registros en la tabla de clientes se insertaron utilizando datos de la tabla de empleados.
Con este tipo de inserción, es posible que desee comprobar el número de filas insertadas.Puede determinar cuántas filas se insertarán ejecutando COUNT en la instrucción SELECT adelante
SELECT COUNT(*) FROM employees WHERE employee_numberThis will return number of records that will be inserted when you execute the INSERT statement.
Ejecutar insertar. Por ejemplo: |
---|
contando |
2
Preguntas frecuentes
Pregunta: Estoy construyendo una base de datos con un cliente. Sé que usa declaraciones SQL INSERT para insertar información en la base de datos, pero ¿cómo se asegura de que no se vuelva a ingresar la misma información del cliente?
INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id AS client_id, supplier_name AS client_name, 'advertising' AS client_type FROM suppliers WHERE NOT EXISTS (SELECT * FROM clients WHERE clients.client_id = suppliers.supplier_id);
Respuesta: puede asegurarse de que no se inserte información duplicada utilizando la condición SQL EXISTS.
Por ejemplo, si tiene una tabla llamada clients con una clave principal de client_id, puede usar la siguiente instrucción SQL INSERT:
INSERT INTO clients (client_id, client_name, client_type) SELECT 10345, 'IBM', 'advertising' FROM dual WHERE NOT EXISTS (SELECT * FROM clients WHERE clients.client_id = 10345);
Esta instrucción SQL INSERT inserta múltiples registros usando subselecciones. Si desea insertar un solo registro, puede usar la siguiente instrucción SQL INSERT: uso de
Doble
table le permite ingresar valores en una declaración de selección incluso si esos valores no están actualmente almacenados en la tabla.
práctica práctica
Si quiere poner a prueba sus habilidades con las instrucciones SQL INSERT, pruebe algunos de nuestros ejercicios. Estos ejercicios le permiten usar declaraciones INSERT para probar sus habilidades. Recibirá preguntas que necesitan ser resueltas. Después de cada ejercicio, proporcionamos soluciones para que puedas comprobar tus respuestas. ¡Darle una oportunidad!