Descripción general de la programación de bases de datos Python

El lenguaje del programa python ofrece amplias API para la programación de bases de datos. Algunas de las bases de datos clave compatibles con Python se detallan a continuación. En este tema, aprenderemos sobre la Conexión de la base de datos de Python.

1. Oracle

2. MySQL

3. PostgreSQL

4. Teradata, etc.

La base de datos es una colección de información preestablecida que se puede usar, administrar y revisar sin esfuerzo. Las características clave de una API DB son,

  • Crear una conexión de base de datos
  • Trabajar en sentencias SQL y procedimientos almacenados
  • La conexión se puede cerrar

Beneficios de Python para la programación de bases de datos

  • En comparación con otros lenguajes, la programación de Python es más rápida y fácil.
  • En python, las operaciones obligatorias como abrir y cerrar las conexiones de la base de datos las lleva a cabo el propio python. Para todos los demás lenguajes de programación, este tipo de operaciones son realizadas específicamente por el desarrollador.
  • La API de la base de datos de Python admite una gran cantidad de configuraciones de bases de datos, por lo que la tarea de conectarse a las bases de datos es un proceso mucho más fácil.

API de Python DB

Bases de datosAPI de Python DB
MySQLMySQLdb
PostgreSQLpsycopg, PyGresQL y pyPgSQL
Oráculodc_oracle2 y cx_oracle
DB2Pydb2

Pasos clave en la conectividad de la base de datos

Desde la perspectiva de Python, hay cuatro pasos principales en el proceso de conexión de la base de datos usando Python. son como abajo

1. Crear el objeto de conexión

4. terminación de la conexión creada

2. Para acomodar el proceso de lectura y escritura declara un cursor

3. Interacciones de la base de datos

Objetos de conexión
NombreDescripción
.cerca()Cierra la conectividad establecida con la base de datos.
.cometer()Confirmar transacciones pendientes con la base de datos
.Retroceder()El consentimiento de esta transacción se revertirá al inicio de una transacción pendiente.
.cursor()Se crea un objeto que representa el cursor.

Objetos de cursor de Python

1) .execute ()

Se ejecuta la instrucción Sequel mencionada dentro de esta función.

Sintaxis

execute(sql, (parameters))

Ejemplo

import sqlite3con = sqlite3.connect("UserDB")cur = con.cursor()cur.execute(" select * from emp ")print cur.fetchone()

2) .executemany ()

Para todos los parámetros enumerados en la secuencia, se ejecuta la instrucción SQL dada

Sintaxis

executemany(sql, (parameters))

Ejemplo

import sqlite3
def aplphabet_generator():
import string
for D in string.letters(:26):
yield (D, )
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute(" create table characters(
Aplphabet_Column ) ")
cur.executemany("insert into characters(
Aplhabet_Column ) values (?)", char_generator())
cur.execute(" select Aplhabet_Column from characters ")
print cur.fetchall()

3) .fetchone ()

Obtener una fila de una salida de consulta.

Ejemplo

import MySQLdb as my
try:
db = my.connect(host="129.0.0.1",
user="admin",
passwd="admin",
db="emp"
)
cursor = db.cursor()
sql = "select * from dept#1 where id < 10"
number_of_rows = cursor.execute(sql)
while True:
row = cursor.fetchone()
if row == None:
break
print(row)
db.close()

4) .fetchmany ()

Obtener un conjunto específico de filas de un resultado de consulta. El parámetro especifica el número de filas por llamada. El número de filas que se obtienen depende en gran medida del tamaño de matriz involucrado del elemento cursor. Entonces, como el número de filas indicado en el parámetro dado, se debe intentar obtener el mismo número de filas. Si esto no es capaz debido a las filas específicas disponibles, entonces se pueden devolver menos filas.

Ejemplo

import MySQLdb as my
try:
db = my.connect(host="128.0.0.10",
user="admin",
passwd="admin",
db="emp"
)
cursor = db.cursor()
sql = "select * from dept_#1 where id < 10"
number_of_rows = cursor.execute(sql)
print(cursor.fetchmany(2)) # 2 row fetched
db.close()

5) .fetchall ()

Obtener todas las filas de una consulta. Estas filas se devuelven en una secuencia. aquí el rendimiento de la búsqueda podría verse afectado a veces por la búsqueda de la matriz del cursor. Cuando el tamaño de la matriz del cursor es extremadamente grande, la cantidad de tiempo necesario para extraer las filas también será comparativamente muy alta.

Ejemplo

import MySQLdb as my
try:
db = my.connect(host="128.0.0.10",
user="admin",
passwd="admin",
db="emp"
)
cursor = db.cursor()
sql = "select * from dept_#1 where id < 10"
number_of_rows = cursor.execute(sql)
print(cursor.fetchall())
db.close()

6) Cursor.scroll (valor (, modo = 'relativo'))

Se desplaza por el cursor de acuerdo con el valor del modo mencionado. si el modo es relativo, entonces el valor mencionado se considera como un desplazamiento, en caso de que el modo sea absoluto, entonces el valor mencionado es la posición objetivo.

  1. Cursor.next (): la siguiente fila se devuelve desde la posición de instrucción secuela actualmente en ejecución.
  2. Cursor. – iter– (): muestra el cursor adecuado para el protocolo de iteración.
  3. Cursor.lastrowid (): aquí se devuelve el id. De fila de la última fila modificada.

Operaciones de base de datos de Python

Las operaciones clave de cualquier base de datos se insertan, eliminan, actualizan y seleccionan. Todas estas operaciones CRUD pueden implicarse también a través de Python. En python, las operaciones obligatorias como abrir y cerrar las conexiones de la base de datos las lleva a cabo el propio python. Para todos los demás lenguajes de programación, este tipo de operaciones son realizadas específicamente por el desarrollador. El siguiente ejemplo muestra la aplicación de estas operaciones.

Ejemplo

import sqlite3
db=sqlite3.connect('test.db')
qry1="insert into student (name, age, marks) values(?, ?, ?);"
qry2="update student set age=? where name=?;"
qry3="SELECT * from student;"
qry4="DELETE from student where name=?;"
students=(('Amarh', 17, 20), ('Deepika', 45, 87)) try:
cur=db.cursor()
cur.executemany(qry1, students)
cur.execute(qry2, (19, 'Deepak'))
db.commit()
cur.execute(qry3)
print(" record updated!! ")
cur.execute(qry4, ('Bill', ))
db.commit()
print(" record deleted!! ")
except:
print(" error found")
db.rollback()
db.close()

Jerarquía de excepciones Python Db

  • Error estándar
  • Advertencia
  • Error
  • InterfaceError
  • Error de la base de datos
  • Error de datos
  • Error operacional
  • IntegridadError
  • Error interno
  • ProgrammingError
  • NotSupportedError

Constructores orientados a Python DB

  • Fecha (año, mes, día): crea un objeto con un valor de fecha
  • Tiempo (hora, minuto, segundo): crea un objeto con un valor de tiempo
  • Marca de tiempo (año, mes, día, hora, minuto, segundo): crea un objeto con un valor de marca de tiempo
  • Binario (cadena): se construye un objeto python capaz de contener valores binarios
  • Tipo STRING: describe todas las columnas que son de tipo string en la base de datos
  • Tipo de NÚMERO: describe todas las columnas que son de tipo de número
  • Tipo DATETIME: menciona todas las columnas de tipo de fecha y hora presentes en la base de datos
  • Tipo ROWID: llega a la columna de id. De fila en la base de datos

Conclusión: conexión de base de datos de Python

Python definitivamente se destaca por ser una de las interfaces de programación más flexibles para la programación orientada a bases de datos. especialmente el conjunto clasificado de Python DB-API hacen que la tarea de comunicarse con los DB sea un proceso eficiente independientemente de cualquier base de datos.

Artículos recomendados

Esta es una guía para Python Database Connection. Aquí discutimos los Pasos clave en la conectividad de bases de datos y los beneficios de Python para la programación de bases de datos. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Factorial en Python
  2. Operaciones de archivo de Python
  3. Para Loop en Python
  4. Encapsulación en Python
  5. Conjuntos de Python
  6. Características de Python
  7. Programa Factorial en JavaScript
  8. Encapsulación en JavaScript