No abordaremos aquí, conocimientos básicos sobre MySQL, uso, instalación ni configuración. Sin perjuicio de lo anterior, haré una breve introducción.
Structured Query Language (SQL)
SQL es el lenguaje de consulta estructurado utilizado para el acceso a bases de datos relacionales. Si bien SQL como lenguaje, posee ciertos estándares, el lenguaje de consulta en sí, varía para cada base de datos en particular, siendo el tratado en este ejemplo, el correspondiente a MySQL.
MySQL
MySQL es un sistema de gestión de bases de datos relacionales, libre y que puede ser instalado en múltiples plataformas.
Para seguir el capítulo de esta guía, será necesario instalar MySQL. Para ello los invito a quienes no posean MySQL instalado, que visiten el sitio de descargas de MySQL y la documentación de MySQL.
MySQLdb
MySQLdb es una interfaz para trabajar con bases de datos MySQL desde Python. El capítulo Nº7 de esta guía, se ha indicado como lectura recomendada, el Manual oficial de MySQLdb el cual sugiero que se lea tras finalizar este capítulo.
Instalación de MySQLdb
Para interactuar desde Python con MySQL a través de MySQLdb, es necesario instalar dicho módulo. El nombre del paquete es python-mysqldb (por si desean instalarlo desde los repositorios), o sino, pueden descargar un tarball desde http://sourceforge.net/projects/mysql-python/. Allí mismo, encontrarán el archivo README con toda la información para instalarlo.
En el caso particular de Python, el acceso a bases de datos se encuentra definido a modo de estándar en las especificaciones de DB-API (por curiosidad, puedes visitar Python Database API specification).
Esto significa, que para utilizar cualquier base de datos, siempre se deberán seguir los mismos pasos:
Importar el módulo de conexión (en nuestro caso, utilizaremos MySQLdb)
import MySQLdb
Conectarse a la base de datos
db_host = 'localhost'
usuario = 'root'
clave = 'clave'
base_de_datos = 'mi_basededatos'
db = MySQLdb.connect(host=db_host, user=usuario, passwd=clave,
db=base_de_datos)
Abrir un cursor
cursor = db.cursor()
Ejecutar una consulta
mi_query = "SELECT campo FROM tabla WHERE campo='valor' ORDER BY campo"
cursor.execute(mi_query)
Si se está agregando, editando o eliminando un registro: hacer un commit a la base de datos
db.commit()
Si se están leyendo datos: obtener todos los registros hallados
cursor.fetchall()
u obtener solo el primero:
cursor.fetchone()
Cerrar el cursor abierto
cursor.close()
//EJEMPLO PARA CONECTAR CON PYTHON Y MYSQL
import MySQLdb
db=MySQLdb.connect(host='hostname',user='user',passwd='pass',db='mysql')
cursor=db.cursor()
sql='SELECT host,user,password FROM user;'
cursor.execute(sql)
resultado=cursor.fetchall()
for registro in resultado:
print registro[0] , '|' , registro[1]