Valeria Vides

Generation

text to sql syntaxTue, 08 Apr 2025

haz una base de datos de supermercado y realiza todas estas cosas. Inserte al menos 10 registro en su base de datos del supermercado.

Aquí te muestro un ejemplo de cómo crear una base de datos de supermercado en C++ utilizando la biblioteca `sqlite3` para interactuar con una base de datos SQLite. **Crear la base de datos y las tablas** Primero, debemos crear la base de datos y las tablas que la compondrán. En este caso, crearemos tres tablas: `productos`, `categorias` y `proveedores`. ```cpp #include <sqlite3.h> #include <iostream> // Función para crear la base de datos y las tablas void crearBaseDeDatos(sqlite3* db) { // Crear la tabla de categorías const char* sqlCategorias = R"( CREATE TABLE IF NOT EXISTS categorias ( id INTEGER PRIMARY KEY, nombre TEXT NOT NULL ); )"; // Crear la tabla de proveedores const char* sqlProveedores = R"( CREATE TABLE IF NOT EXISTS proveedores ( id INTEGER PRIMARY KEY, nombre TEXT NOT NULL, direccion TEXT NOT NULL, telefono TEXT NOT NULL ); )"; // Crear la tabla de productos const char* sqlProductos = R"( CREATE TABLE IF NOT EXISTS productos ( id INTEGER PRIMARY KEY, nombre TEXT NOT NULL, descripcion TEXT NOT NULL, precio REAL NOT NULL, categoria_id INTEGER NOT NULL, proveedor_id INTEGER NOT NULL, FOREIGN KEY (categoria_id) REFERENCES categorias(id), FOREIGN KEY (proveedor_id) REFERENCES proveedores(id) ); )"; // Ejecutar las consultas SQL int rc = sqlite3_exec(db, sqlCategorias, NULL, NULL, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al crear la tabla de categorías: " << sqlite3_errmsg(db) << std::endl; } rc = sqlite3_exec(db, sqlProveedores, NULL, NULL, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al crear la tabla de proveedores: " << sqlite3_errmsg(db) << std::endl; } rc = sqlite3_exec(db, sqlProductos, NULL, NULL, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al crear la tabla de productos: " << sqlite3_errmsg(db) << std::endl; } } int main() { // Abrir la base de datos sqlite3* db; int rc = sqlite3_open("supermercado.db", &db); if (rc) { std::cerr << "Error al abrir la base de datos: " << sqlite3_errmsg(db) << std::endl; return 1; } // Crear la base de datos y las tablas crearBaseDeDatos(db); // Insertar registros en la base de datos insertarRegistros(db); // Cerrar la base de datos sqlite3_close(db); return 0; } ``` **Insertar registros en la base de datos** Ahora, debemos insertar al menos 10 registros en la base de datos. En este caso, insertaremos 10 productos con sus respectivas categorías y proveedores. ```cpp // Función para insertar registros en la base de datos void insertarRegistros(sqlite3* db) { // Insertar categorías const char* sqlCategorias = R"( INSERT INTO categorias (id, nombre) VALUES (1, 'Frutas'), (2, 'Verduras'), (3, 'Carnes'), (4, 'Lácteos'), (5, 'Granos'); )"; // Insertar proveedores const char* sqlProveedores = R"( INSERT INTO proveedores (id, nombre, direccion, telefono) VALUES (1, 'Proveedor 1', 'Calle 1', '123456789'), (2, 'Proveedor 2', 'Calle 2', '987654321'), (3, 'Proveedor 3', 'Calle 3', '555555555'), (4, 'Proveedor 4', 'Calle 4', '666666666'), (5, 'Proveedor 5', 'Calle 5', '777777777'); )"; // Insertar productos const char* sqlProductos = R"( INSERT INTO productos (id, nombre, descripcion, precio, categoria_id, proveedor_id) VALUES (1, 'Manzana', 'Fruta roja', 10.99, 1, 1), (2, 'Lechuga', 'Verdura verde', 5.99, 2, 2), (3, 'Ternera', 'Carnes rojas', 19.99, 3, 3), (4, 'Queso', 'Lácteos blancos', 14.99, 4, 4), (5, 'Arroz', 'Granos blancos', 8.99, 5, 5), (6, 'Plátano', 'Fruta amarilla', 6.99, 1, 1), (7, 'Zanahoria', 'Verdura roja', 4.99, 2, 2), (8, 'Pollo', 'Carnes blancas', 16.99, 3, 3), (9, 'Mantequilla', 'Lácteos blancos', 12.99, 4, 4), (10, 'Cereal', 'Granos blancos', 9.99, 5, 5); )"; // Ejecutar las consultas SQL int rc = sqlite3_exec(db, sqlCategorias, NULL, NULL, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al insertar categorías: " << sqlite3_errmsg(db) << std::endl; } rc = sqlite3_exec(db, sqlProveedores, NULL, NULL, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al insertar proveedores: " << sqlite3_errmsg(db) << std::endl; } rc = sqlite3_exec(db, sqlProductos, NULL, NULL, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al insertar productos: " << sqlite3_errmsg(db) << std::endl; } } ``` **Consultar la base de datos** Finalmente, podemos consultar la base de datos para ver los registros que hemos insertado. ```cpp // Función para consultar la base de datos void consultarBaseDeDatos(sqlite3* db) { // Consultar categorías const char* sqlCategorias = "SELECT * FROM categorias"; sqlite3_stmt* stmt; rc = sqlite3_prepare_v2(db, sqlCategorias, -1, &stmt, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al preparar la consulta de categorías: " << sqlite3_errmsg(db) << std::endl; } else { while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) { int id = sqlite3_column_int(stmt, 0); const unsigned char* nombre = sqlite3_column_text(stmt, 1); std::cout << "Categoria " << id << ": " << nombre << std::endl; } sqlite3_finalize(stmt); } // Consultar proveedores const char* sqlProveedores = "SELECT * FROM proveedores"; sqlite3_stmt* stmt; rc = sqlite3_prepare_v2(db, sqlProveedores, -1, &stmt, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al preparar la consulta de proveedores: " << sqlite3_errmsg(db) << std::endl; } else { while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) { int id = sqlite3_column_int(stmt, 0); const unsigned char* nombre = sqlite3_column_text(stmt, 1); const unsigned char* direccion = sqlite3_column_text(stmt, 2); const unsigned char* telefono = sqlite3_column_text(stmt, 3); std::cout << "Proveedor " << id << ": " << nombre << ", " << direccion << ", " << telefono << std::endl; } sqlite3_finalize(stmt); } // Consultar productos const char* sqlProductos = "SELECT * FROM productos"; sqlite3_stmt* stmt; rc = sqlite3_prepare_v2(db, sqlProductos, -1, &stmt, NULL); if (rc != SQLITE_OK) { std::cerr << "Error al preparar la consulta de productos: " << sqlite3_errmsg(db) << std::endl; } else { while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) { int id = sqlite3_column_int(stmt, 0); const unsigned char* nombre = sqlite3_column_text(stmt, 1); const unsigned char* descripcion = sqlite3_column_text(stmt, 2); double precio = sqlite3_column_double(stmt, 3); int categoria_id = sqlite3_column_int(stmt, 4); int proveedor_id = sqlite3_column_int(stmt, 5); std::cout << "Producto " << id << ": " << nombre << ", " << descripcion << ", $" << precio << ", Categoria " << categoria_id << ", Proveedor " << proveedor_id << std::endl; } sqlite3_finalize(stmt); } } ``` **Ejecutar la aplicación** Finalmente, podemos ejecutar la aplicación para crear la base de datos y insertar los registros. ```cpp int main() { // Abrir la base de datos sqlite3* db; int rc = sqlite3_open("supermercado.db", &db); if (rc) { std::cerr << "Error al abrir la base de datos: " << sqlite3_errmsg(db) << std::endl; return 1; } // Crear la base de datos y las tablas crearBaseDeDatos(db); // Insertar registros en la base de datos insertarRegistros(db); // Consultar la base de datos consultarBaseDeDatos(db); // Cerrar la base de datos sqlite3_close(db); return 0; } ``` Al ejecutar la aplicación, se creará la base de datos y se insertarán los registros en la base de datos. Luego, se consultarán los registros en la base de datos para ver los resultados.

Want to kickstart your project?Use the new AI Studio to create your code