La conexión a una instancia de base de datos PostgreSQL es administrada por la clase de conexión. Es más como un contenedor para una sesión de base de datos. La función connect() se utiliza para crear conexiones a la base de datos. La función connect() inicia una nueva sesión de base de datos y devuelve una instancia de clase de conexión. Podemos construir un nuevo cursor para realizar cualquier instrucción SQL poniendo en uso el objeto de conexión.
Sintaxis:
psycopg2.connect(base de datos=”nombrebd”, usuario=’postgres’, contraseña=contraseñas, host=host_local, puerto=número_puerto)
parámetros :
- dbname = el nombre de la base de datos
- usuario = nombre de usuario utilizado para autenticar (ampliamente utilizado = postgres)
- contraseña = contraseña
- host = dirección del host de la base de datos
- puerto = número de puerto de conexión (predeterminado = 5432)
Ejemplo:
Importamos el paquete psycopg. conn es la variable de conexión que contiene la conexión para la «base de datos del aula», donde el usuario es ‘Postgres’, la contraseña es ‘pass’, el host local es ‘127.0.0.1’ y el número de puerto es ‘5432’.
Python3
# importing packages import psycopg2 # forming connection conn = psycopg2.connect( database="Classroom", user='postgres', password='pass', host='127.0.0.1', port='5432' )
Métodos en la clase de conexión
- cursor(): La conexión es lo que crea los cursores. Están permanentemente conectados a la conexión y todas las instrucciones que se ejecutan en el contexto de la sesión de la base de datos están cubiertas por la conexión.
Sintaxis :
cursor(nombre=Ninguno, cursor_factory=Ninguno, desplazable=Ninguno, retención=Falso)
Parámetros :
- nombre: por defecto «ninguno», si se proporciona el nombre, se devolverá un cursor del lado del servidor, si no se proporciona ninguno, se devolverá un servidor normal del lado del cliente.
- cursor_factory: para crear cursores no estándar
- desplazable: predeterminado Ninguno
- retener: predeterminado Falso
- commit(): commit() es un método para enviar datos. Este método confirma la transacción actual mediante el envío de una instrucción «COMMIT» al servidor de Postgresql. Debido a que Python no se compromete automáticamente de forma predeterminada, es necesario llamar a este método después de cada transacción que modifica los datos de las tablas.
Sintaxis :
connection.commit()
- rollback(): Nos ayuda a volver al principio de cualquier transacción pendiente. Cerrar una conexión sin confirmar o guardar primero las modificaciones dará como resultado una reversión implícita.
Sintaxis :
connection.rollback()
- close(): Este método se utiliza para cerrar la conexión a la base de datos.
Sintaxis :
connection.close()
Ejemplo:
En el siguiente ejemplo, se ejecuta el comando de creación de tabla y los valores se insertan en la tabla mediante el comando insertar SQL. Los cambios se guardan mediante el método commit(). Finalmente, la conexión a la base de datos se cierra usando el método close().
Python3
# importing packages import psycopg2 # forming connection conn = psycopg2.connect( database="Classroom", user='postgres', password='pass', host='127.0.0.1', port='5432' ) conn.autocommit = True # creating a cursor cursor = conn.cursor() # list of rows to be inserted sql = ''' create table Student_Details(student_id int, student_name varchar(30), cgpa decimal)''' # executing sql statement cursor.execute(sql) print('Table successfully created') # list of rows to be inserted values = [(12891, 'rachel', 9.5), (12892, 'ross', 8.93), (12893, 'nick', 9.2)] # executing the sql statement cursor.executemany("INSERT INTO Student_Details1 VALUES(%s,%s,%s)", values) # select statement to display output sql1 = '''select * from Student_Details;''' # executing sql statement cursor.execute(sql1) # fetching rows for i in cursor.fetchall(): print(i) # committing changes conn.commit() # closing connection conn.close()
Producción:
Table successfully created (12891, 'rachel', Decimal('9.5')) (12892, 'ross', Decimal('8.93')) (12893, 'nick', Decimal('9.2'))
Publicación traducida automáticamente
Artículo escrito por isitapol2002 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA