Insertar datos en una base de datos en SQL puede ser un proceso intrigante, especialmente cuando se utiliza AdventureWorks, una base de datos de prueba robusta. Uno de los aspectos esenciales al trabajar con bases de datos es saber cómo ingresar datos nuevos. Esto no sólo enriquece la base de datos, sino que también proporciona una oportunidad de practicar y entender mejor el funcionamiento interno de las mismas.
Ejemplo de una sentencia de inserción en SQL
Para insertar datos en SQL utilizamos la sentencia INSERT INTO. Al aplicar esto, es fundamental definir explícitamente las columnas a las que se añadirá la información. Aquí te proporciono un ejemplo relevante usando AdventureWorks:
¿Qué elementos conforman una sentencia de inserción?
Nombre de la tabla: En este caso, Production.ProductCategory.
Columnas que recibirán datos: Name, rowguid, ModifiedDate.
Valores a insertar: 'Boxers' para el nombre de la categoría, NEWID() para generar un identificador único y '2019-06-01' para la fecha de modificación.
Problemas comunes al insertar datos
Al insertar datos en una tabla, pueden surgir ciertos problemas. Un error común es intentar insertar valores duplicados en campos que deben ser únicos, como el campo rowguid en nuestra base de datos. Este error se reflejaría en el siguiente mensaje:
No se puede insertar un valor duplicado en una columna única.
Solución a errores de inserción
La forma de abordar este problema es asegurarse de que los valores que se están insertando sean realmente únicos o se ajusten a la estructura definida en la base de datos:
Actualizar valores problemáticos: Modifica los valores duplicados antes de ejecutar de nuevo la sentencia.
Después de corregir los errores, al ejecutar la sentencia de nuevo, podrás observar un mensaje indicando "1 fila afectada", confirmando que la inserción se realizó exitosamente.
¿Cómo borrar datos de una tabla?
Eliminar datos es una operación delicada, que debe manejarse con cuidado. Para borrar registros específicos, empleamos la sentencia DELETE.
Ejemplo de una sentencia de borrado
La sentencia DELETE se utiliza junto con WHERE para especificar qué registros eliminar. Aquí un ejemplo:
DELETEFROM Production.ProductCategory
WHERE Name ='Boxers';
Consideraciones al eliminar registros
Especificidad: Utiliza siempre una cláusula WHERE para evitar borrar todos los registros de una tabla accidentalmente.
Verificación: Antes de ejecutar una sentencia DELETE, verifica que los criterios en tu cláusula WHERE sean precisos.
Conclusión: Dominando estas sentencias básicas de SQL se adquiere una comprensión más profunda sobre el manejo de datos, una habilidad invaluable para cualquier desarrollador o analista de datos. ¡Continúa practicando y perfeccionando tus habilidades para seguir aprendiendo nuevas técnicas en desarrollo SQL!
Aquí estaría un comando ejemplo para crear una tabla:
CREATE TABLE citas
(
citaId INT IDENTITY PRIMARY KEY,
titulo NVARCHAR(50) NOT NULL,
fecha NVARCHAR(20) NOT NULL,
hora NVARCHAR(20) NOT NULL,
descripcion NVARCHAR(255) NOT NULL,
para NVARCHAR(20) NOT NULL,
quien NVARCHAR(20) NOT NULL
);
Para el INSERT demo las siguientes funciones y constantes se pueden utilizar para obtener los valores correspondientes: NEWID(), CURRENT_TIMESTAMP, quedando un INSERT de la siguiente forma:
me salta este error: Msg 8169, Level 16, State 2, Line 1
Conversion failed when converting from a character string to uniqueidentifier.
esto es lo que ingresé: INSERT INTO SalesLT.ProductCategory (Name, rowguid,ModifiedDate)
VALUES ('Boxers','cfbhh25c-df71-08a7-b81b-64ee161pp37c',2019-06-01);
Posiblemente porque la columna está definida como uniqueidentifier y cuenta con esta función (newid()).
También me salió ese error, entonces mejor pones default a la sentencia y listo.
INSERT INTO registrosprueba.SalesLT.ProductCategory
(ParentProductCategoryID, Name, rowguid, ModifiedDate)
VALUES (null, 'Boxers',default,2020-06-28).
Gracias por tu respuesta
¿Aprendiendo SQL?
¿No estás seguro por dónde empezar?
Día 1 - Concéntrese en los 6 GRANDES:
1. SELECT2. FROM3. WHERE4. GROUP BY5. HAVING6. ORDER BY
1. SELECTenumere las columnas que desea recuperar
2. FROM nombre la tabla de la que se extraerán los datos
3. WHERE aplique la lógica de filtrado para limitar los registros en sus resultados
4. GROUP BY crea segmentos / grupos para resumir datos
5. HAVING - aplique la lógica de filtrado a sus segmentos / grupos
6. ORDER BY describe cómo quieres que se ordenen tus datos
Es un lenguaje bastante intuitivo.
Básicamente, escribe lo que está pensando.
Cualquiera puede aprender. Y abre un mundo de posibilidades.
No es necesario que seas un experto en ciencias de la computación. #NuncaParesDeAprender
--Insertar registro en SalesLT.ProductCategoryINSERTINTOSalesLT.ProductCategory(Name, rowguid,ModifiedDate)VALUES('Boxers','cfbda25c-df71-47a7-b11b-61ee111aa17c','2020-09-03');--Eliminar registro en SalesLT.ProductCategory cuando Name es igual a BoxersDELETEFROMSalesLT.ProductCategoryWHEREName='Boxers';--Mostrar los registros de SalesLT.ProductCategorySELECT*FROMSalesLT.ProductCategory;
INSERT into SalesLT.ProductCategory(Name, rowguid,ModifiedDate)VALUES('prueba','cfbda55c-df81-49a7-b81b-63ee161aa30c','2021-12-27 00:00:00')DELETEFROMSalesLT.ProductCategoryWHEREName='prueba'SELECT*FROMSalesLT.ProductCategory;
cómo hacer la consulta sea más rápida. Porque tengo una base de datos con 2 millones de datos y tarda
Necesitas crearle índices por los campos que mas usas, de hecho en el portal de Azure, te sugiere que índices crear y los puede generar por tí, mi base tiene tablas de 5 millones, aunque ya estoy pensando usar Elasticsearch, es rapidísimo, solo que es No SQL, así que hay que cambiar varias cosas
Si tienes algunas dudas con los comandos, te recomiendo este curso basico de SQL
Es muy bueno y lo tomé antes de este.
Se puede administrar una base de SQL Azure desde PgAdmin o algun otro administrador que no sea este de VS Code? lo estoy intentando pero me rechaza la conexion.
a que se refiere los comandos de DDL, DML y DCL.
Este link lo explica leve y fácil: https://www.todopostgresql.com/diferencias-entre-ddl-dml-y-dcl/
En resumen:
DML (Data Manipulation Languaje): para crear, modificar, eliminar, consultar datos. SELECT, DELETE, UPDATE....
DDL (Data Definition Languaje): para crear, modificar, eliminar estructuras u 'objetos' como tablas, índices, jobs... CREATE, DROP...
DCL (Data Control Languaje): básicamente para administrar accesos o permisos (que puede realizar un login o usuario sobre que objetos)
Hola, ¿Es normal que mientras escribo las sentencias en VS CODE no aparezcan los atajos de las tablas creadas en Azure como muestra el profe (SalesLT.ProductCategory)?
Gracias.
Lo solucionaste?
No, sabes que no terminé el curso porque habían muchos pre-requisitos de otros cursos que no estaban en la ruta de Data Science. Platzi terminó por sacar este curso de esa ruta.
Espero retomar este curso pronto
Insert en Visual Studio
Dios no sabia lo potetente que es Azure !!!! increible!, mudare mi web para alla al tiro!!!