En el artículo anterior, hemos creado dos tablas, y ahora estamos listos para usar el comando SQL INSERT INTO TABLE y rellenar estas tablas con datos. Para ello, prepararemos sentencias en Excel y, a continuación, las pegaremos en SQL Server y las ejecutaremos. También comprobaremos el contenido de ambas tablas antes y después de estos comandos utilizando la instrucción SELECT. Así que, empecemos.
instrucción INSERT INTO TABLE
No tiene sentido crear estructuras de base de datos y no tener ningún dato en la base de datos. La instrucción INSERT INTO TABLE es la que usaremos para resolver este problema. Es una de las cuatro sentencias importantes de SQL DML (Data Manipulation Language) SELECT FROM FROM, INSERT INTO TABLE, UPDATE SET SET y DELETE FROM The La sintaxis completa es bastante compleja ya que INSERT INTO también podría ser una sentencia muy compleja. Por favor, eche un vistazo a la sintaxis de INSERCIÓN DE T-SQL EN LA TABLA completa aquí.
En este artículo usaremos la sintaxis simplificada, pero también la más común:
INSERTAR EN nombre_dela tabla (column_list) VALORES (column_values);
En dicha instrucción INSERT INTO, deberá definir el nombre_dela tabla en la que está insertando datos, enumerar todas las columnas (tal vez use todas, pero tal vez solo algunas) y, a continuación, enumerar todos los valores. Observe que los valores de columna deben coincidir con la definición de tipos de columna (por ejemplo, no puede insertar un valor textual en la columna/atributo numérico).
En caso de que usted esté de insertar todos los valores en la tabla, usted no necesita a la lista de todas las columnas después de la table_name y usted podría utilizar incluso más simplificado sintaxis:
INSERT INTO nombre_tabla VALORES (column_values);
yo personalmente prefiero listado de todos los nombres de columna, debido a que este enfoque de trabajo, incluso si queremos añadir nuevas columnas a la tabla existente.
-
Nota: La instrucción INSERTAR EN LA TABLA podría escribirse de tal manera que insertemos varias filas con 1 instrucción o incluso combinadas con la instrucción SELECT.
La sintaxis simplificada para uno de estos casos en los que se combinan las instrucciones INSERT y SELECT se muestra a continuación:
INSERT INTO destination_table (column_list, colum)
SELECT column_list
DE source_table
condición WHERE;
INSERT INTO TABLE example
Antes de hacer nada, comprobemos lo que está almacenado en nuestras tablas. Este es el modelo que hemos creado en el artículo anterior. Puedes ver que tenemos una tabla donde almacenaremos datos relacionados con países y otra para datos relacionados con ciudades. También están relacionados entre sí, pero hablaremos de eso en el siguiente artículo:
Para verificar el contenido de estas dos tablas, usaremos dos instrucciones de SELECCIÓN simples:
1
2
|
SELECCIONE * DEL país;
SELECCIONE * DE la ciudad;
|
Aunque SELECT no es el tema de este artículo, debe mencionarse que su sintaxis básica es:
SELECCIONAR 1 o más atributos DE la tabla;
La estrella (*) después de SELECT representa que queremos mostrar los valores de todos los atributos/columnas de esa tabla en el resultado de la consulta.
Como se esperaba, no hay nada en estas dos tablas, y SQL Server devuelve el resultado, como se muestra en la imagen de abajo. Las instrucciones devuelven los nombres de las columnas de las tablas que usamos en la consulta SELECT, pero no hay nada debajo de estos nombres de columna. Puede verlo como una hoja de Excel vacía con nombres de columna definidos (encabezados). Sabes qué tipo de datos deberían estar ahí, pero no hay nada:
Ahora, tendremos que cambiar eso.
En primer lugar, rellenaremos la tabla de países utilizando las siguientes instrucciones INSERT INTO TABLE:
1
2
3
4
5
|
INSERT INTO pais (country_name, country_name_eng, country_code) VALUES (‘Deutschland’, ‘Alemania’, ‘DEU’);
INSERT INTO pais (country_name, country_name_eng, country_code) VALUES (‘Srbija’, ‘Serbia’, ‘SRB’);
INSERT INTO pais (country_name, country_name_eng, country_code) VALUES (‘Hrvatska’, ‘Croacia’, ‘la VFC’);
INSERT INTO pais (country_name, country_name_eng, country_code) VALUES (‘Estados unidos de América’, ‘Estados unidos de América’, ‘USA’);
INSERT INTO pais (country_name, country_name_eng, country_code) VALUES (‘Polska’, ‘Polonia’, ‘POL’);
|
Datos de cinco países se inserta correctamente. El resultado se muestra en la imagen de abajo. Dado que teníamos 5 instrucciones de INSERCIÓN EN LA TABLA, tenemos un mensaje de 1 «(1 fila afectada) «para cada uno de estos cinco comandos en la sección» Mensajes»:
Tenga en cuenta que todos los valores (después de VALORES) se ordenaron de la misma manera en que enumeramos las columnas (después de INSERTAR EN EL país). Los tres valores son textos. La consulta funcionaría incluso si no las hemos ordenado de la manera correcta porque todas tienen el mismo tipo de datos (texto), pero los datos se almacenarían en las columnas incorrectas. En ese caso, tendríamos un error semántico.
Lo siguiente que tenemos que hacer es rellenar la tabla de la ciudad. Lo haremos usando las siguientes declaraciones:
1
2
3
4
5
6
|
INSERTAR EN la ciudad (city_name, lat, long, country_id) VALUES (‘Berlín’, 52.520008, 13.404954, 1);
INSERTAR EN la ciudad (city_name, lat, long, country_id) VALUES (‘Belgrado’, 44.787197, 20.457273, 2);
INSERTAR EN la ciudad (city_name, lat, long, country_id) VALUES (‘Zagreb’, 45.815399, 15.966568, 3);
INSERTAR EN la ciudad (city_name, lat, long, country_id) VALUES (‘Nueva York’, 40.73061, -73.935242, 4);
INSERTAR EN LOS VALORES DE la ciudad (city_name, lat, long, country_id) (‘Los Ángeles’, 34.052235, -118.243683, 4);
INSERTAR VALORES EN city (city_name, lat, long, country_id) (‘Varsovia’, 52.237049, 21.017532, 5);
|
Después de ejecutar estas declaraciones, este fue el resultado. Como era de esperar, se agregaron 6 filas. Y una vez más tenemos 1 mensaje para cada inserción en la sección Mensajes:
En este caso, tendríamos un problema si no hemos enumerado los valores de la misma manera, enumeramos las columnas porque sus tipos de datos no son los mismos (están en orden: texto, número decimal, número decimal, entero). Este tipo de error se denomina error de sintaxis y el propio DBMS impediría que la consulta se ejecutara en absoluto.
SELECCIONAR-Comprobar lo que se insertó
Ahora comprobaremos una vez más lo que está almacenado en nuestras tablas. Usaremos las mismas dos sentencias SELECT que hemos usado anteriormente:
1
2
|
SELECT * FROM país;
SELECT * FROM city;
|
El resultado se muestra en la imagen de abajo. Tenga en cuenta que, después de ejecutar consultas, ahora tenemos secciones de Resultados y Mensajes en consultas:
Podemos concluir que ambas tablas de nuestra base de datos contienen datos y ahora estamos listos para «jugar» con algo mucho más genial que esto.
INSERTAR EN LA TABLA mediante Excel
En muchos casos, deberá ejecutar varias instrucciones SQL basadas en el conjunto de datos que se le proporcione. Esto representa no solo la instrucción INSERT INTO TABLE, sino también las instrucciones UPDATE y DELETE. No tiene sentido escribir estas instrucciones manualmente, pero debería optar por un enfoque más inteligente: preparar fórmulas (o un script) que automatizarán esta parte. En tales situaciones, prefiero usar Excel y fórmulas.
Nota: Personalmente, en el contexto de las bases de datos, encuentro que Excel es muy útil cuando necesito crear varias declaraciones y al presentar resultados y/o crear paneles de control.
echemos un vistazo a estas fórmulas:
La fórmula utilizada para insertar el primer país (Alemania) :
1
|
=»INSERT INTO pais (country_name, country_name_eng, country_code) VALUES (‘» & B2 & «‘, ‘» & C2 & «‘, ‘» & D2 & «‘);»
|
La fórmula que se utiliza para insertar la primera ciudad (Berlin) es:
1
|
=»INSERTAR EN la ciudad (city_name, lat, long, country_id) VALUES (‘» & B2 & «‘, » & C2 & «, » & D2 & «, » & E2 & «);»
|
Siéntase libre de utilizar estas fórmulas para automatizar tareas. Utilizaremos un enfoque similar más adelante cuando ejecutemos varias instrucciones UPDATE y DELETE (e incluso al crear instrucciones SELECT).
Conclusión
En este artículo, hemos cubierto una de las cuatro sentencias SQL más importantes: la instrucción INSERT INTO TABLE. Lo hemos utilizado para rellenar tablas creadas en el artículo anterior. Este era un requisito previo para pasar a cosas más inteligentes, como la teoría de bases de datos y, lo que es más importante, devolver resultados de nuestra base de datos.
En el próximo artículo, hablaremos sobre la clave principal: qué es y por qué es importante en las bases de datos.
Tabla de contenido
Aprender SQL: CREATE DATABASE & CREAR TABLA de Operaciones
Aprender SQL: INSERT INTO TABLA
Aprender SQL: Clave Primaria
Aprender SQL: Foreign Key
Aprender SQL: instrucción SELECT
Aprender SQL: INNER JOIN vs LEFT JOIN
Aprender SQL: SQL Scripts
Aprender SQL: Tipos de relaciones
Aprender SQL: Unirse a varias tablas
Aprender SQL: Funciones agregadas
Aprender SQL: Cómo escribir una consulta de selección compleja
Aprender SQL: La base de datos INFORMATION_SCHEMA
Aprender SQL: Tipos de datos SQL
Aprender SQL: Teoría de conjuntos
Aprender SQL: Funciones definidas por el usuario
Aprender SQL: Procedimientos almacenados definidos por el usuario
Aprender SQL: Vistas SQL
Aprender SQL: Disparadores SQL
Aprender SQL: Practicar consultas SQL
Aprender SQL: Consulta SQL ejemplos
Aprender SQL: Crear un informe de forma manual mediante consultas SQL
Aprender SQL: SQL Server funciones de fecha y hora
Aprender SQL: Create SQL del Servidor de informes utilizando funciones de fecha y hora
Aprender SQL: SQL Server Tablas dinámicas
Aprender SQL: SQL Server exportar a Excel
Aprender SQL: Introducción a SQL Server bucles
Aprender SQL: SQL Cursores de Servidor
Aprender SQL: SQL Mejores Prácticas para la Eliminación y Actualización de datos
Aprender SQL: Convenciones de Nomenclatura
Aprender SQL: Trabajos relacionados con SQL
Aprender SQL: Uniones no Equis en SQL Server
Aprender SQL: Inyección SQL
Aprender SQL: SQL dinámico
- Autor
- Publicaciones recientes
Sus compromisos pasados y presentes varían desde el diseño y la codificación de bases de datos hasta la enseñanza, la consultoría y la escritura de bases de datos. También para no olvidar, BI, algoritmos de creación, ajedrez, filatelia, 2 perros, 2 gatos, 1 esposa, 1 bebé…
Lo puedes encontrar en LinkedIn
Ver todas las publicaciones de Emil Drkusic
- Aprender SQL: SQL dinámico-3 de marzo de 2021
- Aprender SQL: Inyección SQL-2 de noviembre de 2020
- Aprender SQL: No Equi-Une en SQL Server – septiembre 29, 2020