Este proyecto proporciona una librería para gestionar bases de datos SQLite3 de manera sencilla y estandarizada. Incluye funcionalidades útiles para manejar bases de datos SQLite.
- Conexión y desconexión a bases de datos SQLite.
- Listar tablas y columnas de una base de datos.
- Ejecutar consultas personalizadas.
- Insertar, actualizar y eliminar registros.
- Crear y modificar tablas dinámicamente.
- Soporte para Python 3.10 en adelante.
- Python 3.10 o superior.
- SQLite3 instalado en el sistema.
Puedes instalar la librería directamente desde PyPI utilizando pip:
pip install sqlite3-managerSi deseas clonar el repositorio y usar la versión de desarrollo:
git clone https://github.com/SurivZ/sqlite3-manager.git
cd sqlite3-manager
pip install .-
Crear una instancia y conectarse a la base de datos
Usamos el métodoconnect()para establecer una conexión con la base de datos.from sqlite3manager import Connect conn = Connect('mi_base_de_datos.db') conn.connect()
-
Crear una tabla
Creamos una tabla llamadauserscon campos para ID, nombre, edad y correo electrónico usandocreate_table().conn.create_table('users', { 'id': 'INTEGER PRIMARY KEY', 'name': 'TEXT', 'age': 'INTEGER', 'email': 'TEXT' })
-
Insertar datos
Usamos el métodoinsert()para insertar un solo registro:conn.insert('users', {'name': 'John Doe', 'age': 30, 'email': 'john@example.com'})
También podemos insertar múltiples registros a la vez con
bulk_insert():conn.bulk_insert('users', [ {'name': 'Jane Doe', 'age': 25, 'email': 'jane@example.com'}, {'name': 'Alice', 'age': 28, 'email': 'alice@example.com'} ])
-
Leer todos los registros de la tabla
Leemos todos los registros de la tablauserscon el métodoread_table():users = conn.read_table('users') print(users) # [(1, 'John Doe', 30, 'john@example.com'), (2, 'Jane Doe', 25, 'jane@example.com'), (3, 'Alice', 28, 'alice@example.com')]
-
Buscar registros
Buscamos registros que cumplan con una condición específica usando el métodosearch():search_result = conn.search('users', {'name': 'Alice'}) print(search_result) # [(3, 'Alice', 28, 'alice@example.com')]
-
Actualizar un registro
Modificamos el correo electrónico de un usuario utilizandoupdate():conn.update('users', {'email': 'john.new@example.com'}, {'name': 'John Doe'})
-
Listar tablas y columnas
Obtenemos una lista de las tablas disponibles en la base de datos conlist_table_names():tables = conn.list_table_names() print(tables) # ['users']
También podemos obtener los nombres de las columnas de una tabla usando
get_column_names():columns = conn.get_column_names('users') print(columns) # ['id', 'name', 'age', 'email']
-
Modificar la estructura de la tabla
Añadimos una columna nueva a la tablausersconadd_column():conn.add_column('users', 'created_at', 'TEXT')
Y podemos eliminar una columna de la tabla con
drop_column():conn.drop_column('users', 'created_at')
-
Eliminar registros
Podemos borrar registros que cumplan con una condición usandodelete():conn.delete('users', {'name': 'Alice'})
-
Ejecutar una consulta personalizada
Ejecutamos una consulta SQL personalizada con el métodocustom_query():custom_query_result = conn.custom_query('SELECT * FROM users WHERE age > 25') print(custom_query_result) # [(1, 'John Doe', 30, 'john.new@example.com')]
-
Eliminar una tabla
Si necesitamos eliminar una tabla por completo, podemos hacerlo condrop_table():conn.drop_table('users')
-
Cerrar la conexión
Finalmente, cerramos la conexión con el métodoclose():conn.close()
Este ejemplo muestra cómo puedes gestionar una base de datos SQLite utilizando todos los métodos de la clase Connect.
Si deseas contribuir a este proyecto, sigue los pasos a continuación:
- Haz un fork del repositorio.
- Clona tu fork localmente:
git clone https://github.com/tu-usuario/sqlite3-manager.git
- Crea una rama para tu contribución:
git checkout -b nombre-de-tu-rama
- Realiza tus cambios y haz un commit con un buen mensaje descriptivo:
git commit -m "Descripción de los cambios" - Haz push de tus cambios a tu fork:
git push origin nombre-de-tu-rama
- Crea un pull request en el repositorio original.
Si tienes preguntas o sugerencias, siéntete libre de abrir un issue o contactarme a través de franklinserrano23@email.com.
Licencia: Este proyecto está licenciado bajo la licencia BSD.