SQL: Insertar instrucción

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_number 
  

This 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!

(Visited 8 times, 1 visits today)