Sintaxis general:
a) insertando una nueva fila en la tabla:
INSERTAR<таблица>[(columnas)]
VALORES
b) Insertar en la tabla una o más filas tomadas de la fuente especificada en la subconsulta:
INSERTAR<таблица>[(columnas)]
Normas:
El número de elementos de la sección Columnas debe coincidir con el número de elementos de la sección Valores; los tipos de datos deben coincidir o permitir la conversión implícita;
En caso de que falte la sección "Columnas", la sección "Valores" debe contener tantos valores como columnas totales haya en la tabla editada, además, los valores deben estar listados en el mismo orden en que se declaran las columnas de la tabla; por lo tanto, se recomienda especificar siempre explícitamente la lista de columnas a las que se agregarán nuevos valores;
En el caso de la sintaxis (b), la subconsulta SELECT se puede dirigir a la misma tabla, a otra tabla de base de datos oa otra base de datos en el servidor;
Si se establece un valor predeterminado para alguna columna de la tabla y se requiere usar este valor en el registro agregado, entonces en la sección "Valores" para esta columna, debe escribir palabra clave POR DEFECTO.
Ejemplos :
INSERTAR EN detalle (detail_name)
VALORES ("rodamiento")
INSERTAR EN suministro (id_proveedor, cantidad_suministro, costo_suministro,
fecha_suministro, id_detalle)
VALORES (4, 177, 453.45, "25/09/2009", 1)
INSERTAR proveedor (tipo_proveedor, nombre_proveedor)
VALORES (POR DEFECTO, "Smirnov S. S.")
Sintaxis general:
ACTUALIZAR<таблица>
COLOCAR<столбец> = <значение> [, <столбец> = <значение>]
Ejemplos :
ESTABLECER peso = 210
SET material_name = "Estaño"
DONDE material_id = 2
SET departamento_id = NULL,
fecha_entrega = fecha_entrega + 1 /*aumenta la fecha de entrega en un día
DONDE delivery_id = 1 O departamento_id > 3
SET nombre_detalle = nombre_detalle + "!!!"
DONDE detail_name COMO "_%" Y peso ENTRE 6 Y 10
Sintaxis general:
BORRAR<таблица>
<условие>
Ejemplos :
DONDE detail_id EN (2, 5, 8)
DONDE EL PESO ES NULO
Ejercicio:
Rellene la base de datos con ManagementStudio. Para hacer esto, use el comando "Abrir tabla" del menú contextual de la tabla en el "Explorador de objetos" (Fig. 4.1).
SELECCIONAR<список столбцов>
DE<таблица(-ы) источник>
Las cláusulas SELECT y FROM deben estar presentes en cada consulta; otras secciones pueden faltar o estar parcialmente presentes.
Las consultas más simples:
1. Selecciona el nombre y el peso de las piezas
Arroz. 5.1. Resultados de la consulta #1
2. Seleccione toda la información de la tabla de materiales
Arroz. 5.2. Resultados de la Consulta #2
La singularidad de DISTINCT
3. Seleccione códigos de proveedor únicos de la tabla de suministro
Arroz. 5.3. Resultados de la Consulta #3
DONDE restricción
4. Selecciona la cantidad y fecha de entrega de la pieza con código 1
Arroz. 5.4. Consulta #4 Resultados
5. Seleccione los nombres de los proveedores con los códigos 1, 4 y 6
Arroz. 5.5. Resultados de la consulta #5
6. Seleccione toda la información sobre las entregas realizadas antes del 1/10/2009
Arroz. 5.6. Resultados de la Consulta #6
7. Seleccione toda la información de la pieza que no comience con la letra "B" (en ningún caso) y cuyo peso sea inferior a 50
Arroz. 5.7. Resultados de la consulta #7
8. Seleccione el nombre y código del material para piezas con un peso de 5 a 10 g o que tengan la letra “n” en el nombre en la tercera posición
Arroz. 5.8. Resultados de la consulta #8
9. Seleccione nombres de proveedores que no superen los 15 caracteres
Arroz. 5.9. Resultados de la consulta #9
10. Seleccione meses y años de suministro de piezas
Arroz. 5.10. Resultados de la consulta #10
Clasificación ORDENAR POR
11. Pida las entregas primero por código de proveedor y luego por fecha de entrega
Arroz. 5.11. Resultados de la consulta #11
12. Seleccione los nombres de los proveedores con los códigos 4, 6, 8, 9, ordenados alfabéticamente en orden inverso
Arroz. 5.12. Resultados de la consulta #12
Agregación y agrupación GROUP BY
Arroz. 5.13. Resultados de la consulta #13
14. Determinar el peso medio de las piezas de material con código 2
Arroz. 5.14. Resultados de la Consulta #2
15. De los envíos realizados antes del 1/10/2009, elige el envío más grande y el más pequeño
Arroz. 5.15. Resultados de la consulta #15
16. Para proveedores con códigos en el rango 5 - 8, calcule el número total de piezas suministradas por ellos
Arroz. 5.16. Resultados de la consulta #16
Arroz. 5.17. Resultados de la consulta #17
TENIENDO restricción de agrupación
18. Seleccionar materiales para los que el peso total de las piezas fabricadas con ellos no sea superior a 20
Arroz. 5.18. Resultados de la consulta #18
19. De las entregas de 2008, seleccione las piezas que se entregaron más de una vez
Arroz. 5.19. Resultados de la consulta #19
Tipo de conversiónELENCO
20. Obtenga información sobre las fechas de entrega en forma de texto
Arroz. 5.20. Resultados de la consulta #20
21. Obtenga información de la tabla de partes como cadenas "La parte X tiene peso Y"
Arroz. 5.21. Resultados de la consulta #21
AlternativasCASO
22. Divida las piezas en ligeras (con un peso de hasta 20), medias (entre 20 y 50) y pesadas
Arroz. 5.22. Resultados de la consulta #22
Manejo de valores NULL
23. Obtenga información sobre los detalles y sus pesos, y si el peso no está especificado para la pieza, escriba -100 en lugar de NULL
Arroz. 5.23. Resultados de la consulta #23
La función de existencia EXISTE
24. Seleccione el nombre y el código de material solo de aquellas piezas que se hayan suministrado alguna vez
Arroz. 5.24. Resultados de la consulta #24
25. Seleccione los nombres de aquellos materiales de los que no se hace una sola pieza
Arroz. 5.25. Resultados de la consulta #25
Subconsultas
26. Obtenga información sobre la entrega más reciente (por fecha)
Arroz. 5.26. Resultados de la consulta #26
27. Obtenga todas las entregas de piezas del código de material 2
Arroz. 5.27. Resultados de la consulta #27
28. Para cada proveedor, obtenga información sobre la primera (por fecha) de su entrega
Arroz. 5.28. Resultados de la consulta #28
29. Para cada proveedor, obtenga su nombre y fecha del último pedido
Arroz. 5.29. Resultados de la consulta #29
UNIRSE a las mesas
30. Obtenga una tabla de la vista: el nombre de la parte, el nombre del material del que está hecha esta parte
Arroz. 5.30. Resultados de la consulta #30
31. Obtenga una tabla de la forma: proveedor, nombre de la pieza, cantidad y fecha de entrega para las piezas que tienen un peso específico
Arroz. 5.31. Resultados de la consulta #31
32. Seleccione toda la información sobre las piezas que alguna vez se han suministrado
Arroz. 5.32. Resultados de la consulta #32
Arroz. 5.33. Resultados de la consulta #33
34. Selecciona los nombres de los materiales y las piezas que se fabrican con ellos
Arroz. 5.34. Resultados de la consulta #34
35. Obtén todos los datos sobre proveedores, entregas y detalles
Arroz. 5.35. Resultados de la consulta #35
Unión de mesas UNION
36. Obtenga una tabla de nombres y pesos de las partes, y la última línea de la tabla debe contener totales en forma de peso total de todas las partes.
Arroz. 5.36. Resultados de la consulta #36
37. Obtenga una tabla de dos campos, donde el primer campo es el nombre de la pieza, el material, el proveedor o la fecha de entrega, y el segundo campo es la longitud de la cadena del primer campo
Arroz. 5.37. Resultados de la consulta #37
Última actualización: 13/07/2017
Para agregar datos se utiliza el comando INSERT, que tiene la siguiente sintaxis formal:
INSERT table_name [(column_list)] VALORES (valor1, valor2, ... valorN)
Al principio hay una declaración INSERT INTO, luego entre paréntesis puede especificar una lista de columnas, separadas por comas, en las que se deben agregar datos, y al final, después de la palabra VALORES, entre paréntesis, los valores que se agregará para las columnas que se enumeran.
Por ejemplo, supongamos que la siguiente base de datos se creó anteriormente:
CREAR BASE DE DATOS productosdb; VAYA A USAR productosdb; CREAR TABLA Productos (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)
Agreguemos una línea usando el comando INSERT:
INSERTAR VALORES de productos ("iPhone 7", "Apple", 5, 52000)
Después de completar con éxito servidor SQL Management Studio debería mostrar "1 fila(s) afectada(s)" en el cuadro de mensaje:
Tenga en cuenta que los valores de las columnas entre paréntesis después de la palabra clave VALUES se pasan en el orden en que se declaran. Por ejemplo, en la instrucción CREATE TABLE anterior, puede ver que la primera columna es Id. Pero dado que el atributo IDENTIDAD está configurado para ello, el valor de esta columna se genera automáticamente y se puede omitir. La segunda columna representa ProductName, por lo que el primer valor, la cadena "iPhone 7", se pasará a esa columna. El segundo valor, la cadena "Apple", se pasará a la tercera columna Fabricante, y así sucesivamente. Es decir, los valores se pasan a las columnas de la siguiente manera:
Nombre del producto: "iPhone 7"
Fabricante: Manzana
Además, al ingresar valores, puede especificar las columnas inmediatas en las que se agregarán los valores:
INSERTAR EN Productos (Nombre del producto, Precio, Fabricante) VALORES ("iPhone 6S", 41000, "Apple")
Aquí el valor se especifica solo para tres columnas. Y ahora los valores se pasan en el orden de las columnas:
Nombre del producto: "iPhone 6S"
Fabricante: Manzana
Para columnas no especificadas (en este caso ProductCount) agregará un valor predeterminado si se establece el atributo DEFAULT o NULL. Sin embargo, las columnas no especificadas deben ser anulables o tener un atributo DEFAULT.
También podemos agregar varias líneas a la vez:
INSERTAR VALORES EN LOS PRODUCTOS ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)
En este caso, se agregarán tres filas a la tabla.
Además, al agregar, podemos especificar que se use el valor predeterminado para la columna usando la palabra clave DEFAULT o NULL:
INSERTAR EN Productos (ProductName, Manufacturer, ProductCount, Price) VALORES ("Mi6", "Xiaomi", DEFAULT, 28000)
En este caso, se usará el valor predeterminado para la columna ProductCount (si está configurado, si no, NULL).
Si todas las columnas tienen un atributo DEFAULT que define un valor predeterminado, o son anulables, puede insertar valores predeterminados para todas las columnas:
INSERTAR EN LOS VALORES POR DEFECTO DE LOS PRODUCTOS
Pero si toma la tabla Productos, dicho comando fallará, ya que varios campos no tienen un atributo DEFAULT y al mismo tiempo no permiten valores nulos.
La declaración INSERT inserta nuevos registros en una tabla. En este caso, los valores de la columna pueden ser constantes literales o ser el resultado de una subconsulta. En el primer caso, se usa una declaración INSERT separada para insertar cada fila; en el segundo caso, se insertarán tantas filas como devuelva la subconsulta.
La sintaxis del operador es la siguiente:
INSERTAR EN[(,...)]
(VALORES(,…) )
| ( VALORES PREDETERMINADOS )
Como puede ver en la sintaxis presentada, la lista de columnas es opcional (los corchetes en la descripción de la sintaxis indican esto). Si está ausente, la lista de valores insertados debe estar completa, es decir, proporcionar valores para todas las columnas de la tabla. El orden de los valores debe coincidir con el orden especificado por la declaración CREATE TABLE para la tabla en la que se insertan las filas. Además, estos valores deben ser del mismo tipo de datos que las columnas en las que se ingresan. Como ejemplo, considere insertar una fila en la tabla Producto creada por la siguiente instrucción CREATE TABLE:
CREAR TABLA producto
fabricante char (1) NO NULO,
modelo varchar (4) NO NULO,
tipo varchar (7) NO NULO
Que se requiera agregar a esta tabla la PC modelo 1157 del fabricante B. Esto se puede hacer mediante la siguiente declaración:
INSERTAR EN Producto
VALORES ("B", 1157, "PC");
Si especifica una lista de columnas, puede cambiar el orden "natural" de su secuencia:
INSERTAR EN Producto (tipo, modelo, fabricante)
VALORES ("PC", 1157, "B");
Parecería que esta es una característica completamente innecesaria, que solo hace que el diseño sea más engorroso. Sin embargo, gana si las columnas tienen valores predeterminados. Considere la siguiente estructura de tabla:
CREAR TABLA producto_D
fabricante char (1) NULL,
modelo varchar(4) NULL ,
tipo varchar (7) NO NULO PREDETERMINADO "PC"
Tenga en cuenta que aquí los valores de todas las columnas tienen valores predeterminados (los dos primeros son NULL y la última columna es tipo - PC). Ahora podríamos escribir:
INSERTAR EN Product_D (modelo, fabricante)
VALORES(1157 , "B" ) ;
En este caso, el valor faltante será reemplazado por el valor predeterminado, PC, cuando se inserte una fila. Tenga en cuenta que si no se especifica un valor predeterminado para una columna en una declaración CREATE TABLE y se especifica una restricción NOT NULL para evitar el uso de NULL en esta columna tabla, el valor predeterminado es NULL.
Surge la pregunta: ¿es posible no especificar una lista de columnas y, sin embargo, usar los valores predeterminados? La respuesta es positiva. Para hacer esto, en lugar de especificar explícitamente el valor, use palabra reservada POR DEFECTO :
INSERTAR EN Producto_D
VALORES ("B", 1158, POR DEFECTO);
Dado que todas las columnas tienen valores predeterminados, para insertar una fila con valores predeterminados, se podría escribir:
INSERTAR EN Producto_D
VALORES (POR DEFECTO, POR DEFECTO, POR DEFECTO);
Sin embargo, hay una construcción DEFAULT VALUES especial para este caso (consulte la sintaxis del operador), que se puede usar para reescribir el operador anterior como
INSERTAR EN Product_D VALORES POR DEFECTO;
Tenga en cuenta que al insertar una fila en una tabla, todas las restricciones impuestas en Esta mesa. pueden ser restricciones Clave primaria o un índice único, restricciones de verificación de tipo CHECK, restricciones de integridad referencial. Si se viola alguna restricción, se rechazará la inserción de la fila. Considere ahora el caso de usar una subconsulta. Supongamos que queremos insertar en la tabla Product_D todas las filas de la tabla Product relacionadas con los modelos. Computadoras personales(tipo='PC'). Dado que los valores que necesitamos ya están en alguna tabla, la formación de filas insertadas manualmente, en primer lugar, es ineficiente y, en segundo lugar, puede permitir errores de entrada. El uso de una subconsulta resuelve estos problemas:
El uso del símbolo "*" en la subconsulta está justificado en este caso, ya que el orden de las columnas es el mismo para ambas tablas. Si este no fuera el caso, se tendría que aplicar una lista de columnas en la declaración INSERT, o en la subconsulta, o en ambas, que coincidiría con el orden de las columnas:
Aquí, como antes, puede especificar no todas las columnas si desea utilizar los valores predeterminados existentes, por ejemplo:
En este caso, la columna de tipo de la tabla Product_D se establecerá en el valor predeterminado PC para todas las filas insertadas.
Tenga en cuenta que cuando se utiliza una subconsulta que contiene un predicado, solo se insertarán aquellas filas para las cuales el valor del predicado sea VERDADERO (¡no DESCONOCIDO!). En otras palabras, si la columna de tipo en la tabla Product fuera anulable y ese valor estuviera presente en varias filas, esas filas no se insertarían en la tabla Product_D.
Para superar la limitación de insertar una sola fila en una declaración INSERT cuando se usa un constructor de filas en una cláusula VALUES, un truco artificial es usar una subconsulta que forma una fila con una cláusula UNION ALL. Entonces, si necesitamos insertar varias filas con una sola instrucción INSERT, podemos escribir:
INSERTAR EN Producto_D
SELECCIONE "B" AS fabricante, 1158 AS modelo, "PC" AS tipo
UNIÓN TODOS
SELECCIONE "C", 2190, "Ordenador portátil"
UNIÓN TODOS
SELECCIONE "D", 3219, "Impresora";
Usar UNION ALL es preferible a UNION incluso si se garantiza que no habrá filas duplicadas, porque en este caso no habrá verificación de duplicados.
Cabe señalar que la inserción de varias tuplas mediante el constructor de cadenas ya está implementada en Sistema de administración de bases de datos relacionales (DBMS) desarrollado por Microsoft Corporation.El lenguaje de consulta estructurado es un lenguaje informático de propósito general que se utiliza para crear, modificar y manipular datos en bases de datos relacionales. servidor SQL 2008. Dada esta posibilidad, la última consulta se puede reescribir como:
INSERTAR EN VALORES Product_D
("B", 1158, "PC"),
("C", 2190, "Ordenador portátil"),
Este artículo está dedicado a llenar las tablas de la base de datos con datos, es decir, estudiaremos los comandos SQL para insertar nuevos registros. Cabe decir que la escritura en la tabla se puede hacer de dos formas:
Método número 1.
Intentemos agregar una nueva entrada de país a la tabla de países. La sintaxis para agregar sería:
INSERTAR EN nombre_tabla (campo_1, campo_2, ...) VALORES (Valor_1, Valor_2, ...); Según nuestra estructura de tabla, la consulta SQL sería:
INSERTAR EN países (nombre_país, nombre_acrónimo) VALORES ("Rusia", "RU"); Así es como ingresamos una entrada sobre el país "Rusia" en nuestra tabla. Todo debe ser claro y simple aquí, lo principal es observar cuidadosamente qué campos especifica en los primeros corchetes y escribir los valores en los segundos corchetes en el mismo orden.
Método número 2.
La segunda forma, en mi opinión, es un poco más fácil, porque ves qué y qué campo asignas. Créame, si la tabla tiene una gran cantidad de columnas, entonces es muy fácil confundir o pasar por alto el orden de los campos en el primero y el orden de los valores en el segundo paréntesis. La sintaxis para el segundo método es:
INSERTAR EN nombre_tabla SET campo_1 = valor_1, campo_2 = valor_2, ... ; Usemos este ejemplo para ingresar información en la placa. personas, ya que hay más campos, y la ventaja del segundo método se sentirá inmediatamente:
INSERTAR EN personas SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Ahora nuestra tabla tiene los siguientes datos:
Probablemente notó que no especificamos un valor para la edad, pero resultó estar lleno ... Todo es correcto, para campo dado establecemos el valor predeterminado en 25. Así que ahora nuestro Ivan Dulin aparece en la base de datos como 25 años. Puede que no sea el mejor ejemplo crear un valor predeterminado para el campo de edad, pero puede establecer propiedades en campos como, por ejemplo, la calificación del usuario del sitio o el número de visitas a la página. Inicialmente se establecen en 0.
También debe prestar atención al formato de fecha en MySQL: AAAA-MM-DD. Si no lo cumple, sus entradas simplemente no se incluirán en la tabla.
Como puede ver, el campo de profesión se completa como NULL, esto es valor vacío. Para este campo, establecemos la propiedad "no requerido para llenar (NULL)".
Como complemento, considere el siguiente comando:
CARGAR EL ARCHIVO LOCAL DE DATOS "D:\zapros.txt" EN LA TABLA personas; ¡¿Qué crees que hemos hecho ahora?! E hicimos lo siguiente: agregamos datos a la tabla personas de un archivo solicitud.txt, que se encuentra en la unidad D. La información del archivo debe tener la siguiente estructura:
Tabla de profesiones:
tabla de personas:
nombre de pila | apellido | edad | Fecha de Registro | país | profesión |
leonidas | Bilak | 45 | 2012-06-20 | 2 | 1 |
Yuri | Nazarov | 22 | 2012-06-21 | 3 | 1 |
alla | Savenko | 25 | 2012-06-22 | 2 | 3 |
irina | Nikolaeva | 31 | 2012-06-22 | 1 | 3 |
Además de la declaración SELECT discutida anteriormente, el lenguaje de manipulación de datos (DML) contiene otras tres declaraciones: INSERTAR, ACTUALIZAR y ELIMINAR. Al igual que la declaración SELECT, estas tres declaraciones operan en tablas o vistas. Este artículo trata sobre la declaración INSERT y las otras dos declaraciones se analizan en el siguiente artículo.
INSERTAR Declaración inserta filas (o partes de filas) en una tabla. Hay dos formas diferentes de esta instrucción:
INSERTAR tab_name [(col_list)] VALORES PREDETERMINADOS | VALORES ((DEFAULT | NULL | expresión ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement |execute_statement) Convenciones de sintaxis
La primera forma de la declaración le permite insertar una fila (o parte de ella) en la tabla. Y la segunda forma de la instrucción INSERT le permite insertar en la tabla el conjunto de resultados de una instrucción SELECT o un procedimiento almacenado ejecutado por una instrucción EXECUTE. El procedimiento almacenado debe devolver datos para insertarlos en la tabla. Cuando se usa con una instrucción INSERT, la instrucción SELECT puede seleccionar valores de una tabla diferente o de la misma en la que se insertan los datos, siempre que los tipos de datos de las columnas correspondientes sean compatibles.
Para ambos formularios, el tipo de datos de cada valor insertado debe ser compatible con el tipo de datos de la columna de la tabla correspondiente. Todos los datos temporales y de cadena deben ir entre comillas; Los valores numéricos no necesitan estar entre comillas.
Para ambas formas de la declaración INSERT, una lista explícita de columnas es opcional. La ausencia de una lista de columnas equivale a especificar todas las columnas de la tabla.
Parámetro VALORES POR DEFECTO inserta valores predeterminados para todas las columnas. Las columnas con el tipo de dato TIMESTAMP o la propiedad IDENTITY se insertan con valores por defecto, automáticamente generado por el sistema. Para las columnas de otros tipos de datos, se inserta el valor predeterminado no nulo correspondiente, si lo hay, o NULL en caso contrario. Si no se permiten valores nulos para una columna y no se define ningún valor predeterminado para la columna, la declaración INSERT falla y se muestra un mensaje apropiado.
El siguiente ejemplo inserta filas en la tabla Employee en la base de datos SampleDb, lo que demuestra cómo usar la declaración INSERT para insertar una pequeña cantidad de datos en la base de datos:
UTILIZAR SampleDb; INSERTAR EN VALORES de empleados (34990, "Andrey", "Batonov", "d1"); INSERTAR EN VALORES de empleados (38640, "Aleksey", "Vasin", "d3");
Hay dos diferentes caminos insertando valores en una nueva fila. La declaración INSERT en el ejemplo a continuación usa explícitamente la palabra clave NULL e inserta el valor NULL en la columna correspondiente:
UTILIZAR SampleDb; INSERTAR EN VALORES de empleados (34991, "Andrey", "Batonov", NULL);
Para insertar valores en algunas (pero no en todas) las columnas de una tabla, generalmente debe especificar explícitamente esas columnas. Las columnas no especificadas deben permitir valores NULL o deben tener un valor predeterminado definido para ellas.
UTILIZAR SampleDb; INSERTAR EN EMPLEADO (Id, Nombre, Apellido) VALORES (34992, "Andrey", "Batonov");
Los dos ejemplos anteriores son equivalentes. En la tabla Employee, la única columna que permite valores nulos es la columna DepartmentNumber, y para todas las demás columnas, este valor estaba prohibido por la cláusula NOT NULL en la instrucción CREATE TABLE.
Orden de valores en sentencia VALORES Las sentencias INSERT pueden diferir del orden especificado en la sentencia CREATE TABLE. En tal caso, su orden debe coincidir con el orden en que se enumeran las columnas correspondientes en la lista de columnas. El siguiente es un ejemplo de inserción de datos en un orden diferente al original:
UTILIZAR SampleDb; INSERTAR EN EMPLEADO (DepartamentNumber, LastName, Id, FirstName) VALORES ("d1", "Batonov", 34993, "Andrey");
La segunda forma de la declaración INSERT inserta una o más filas seleccionadas por la subconsulta en la tabla. El siguiente ejemplo muestra cómo insertar filas en una tabla utilizando la segunda forma de la instrucción INSERT. En este caso, se realiza una consulta para seleccionar los números y nombres de los departamentos ubicados en Moscú y se carga el conjunto resultante en una nueva tabla creada anteriormente.
La nueva tabla DepartamentoDeMoscú creada en el ejemplo anterior tiene las mismas columnas que la tabla Departamento existente, excepto por la columna Ubicación que falta. La subconsulta en la declaración INSERT selecciona todas las filas en la tabla Departamento para las cuales el valor de la columna Ubicación es Moscú, que luego se insertan en la nueva tabla creada al comienzo de la consulta.
El siguiente ejemplo muestra otra forma de insertar filas en una tabla utilizando la segunda forma de la instrucción INSERT. En este caso, se ejecuta una consulta para obtener los números de personal, los números de proyecto y las fechas de inicio del proyecto para todos los empleados con el puesto "Gerente" que trabajan en el proyecto p2 y luego se carga el conjunto resultante en una nueva tabla creada al principio. de la consulta:
UTILIZAR SampleDb; CREATE TABLE ManagerTeam(EmpId INT NOT NULL, ProjectNumber CHAR(4) NOT NULL, EnterDate DATE); INSERTAR EN ManagerTeam(EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Trabajo = "Gerente";
Antes de insertar filas con la declaración INSERT, las tablas DepartamentoDeMoscú y EquipoGerente (en los ejemplos anteriores) estaban vacías. Si la tabla ya existía y contenía filas de datos, se le agregarían nuevas filas.