martes, 2 de junio de 2009

Más Python con MySQL

Además del artículo publicado en Diciembre del 2008. Aquí comparto con ustedes otros códigos.

Para los que trabajan con Widow$s, les recomienda esta lista:

AppServ; les instala el Apache, PHP, MySql y el inefable PHPMyAdmin
MySQLPython; instala la librería que nos permite conectar python con MySql

Primera tarea: Crear una base de datos con PHPMyAdmin, por ejemplo pythonmysql con la tabla usuario y los campos usucod, usunom. Para los que les da flojera aquí tienen el código en SQL.

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- Base de datos: `pythonmysql`
CREATE DATABASE `pythonmysql` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `pythonmysql`;

-- Estructura de tabla para la tabla `usuario`

DROP TABLE IF EXISTS `usuario`;
CREATE TABLE IF NOT EXISTS `usuario` (
`usucod` varchar(3) NOT NULL,
`usunom` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `usuario` (`usucod`, `usunom`) VALUES ('001', 'Victor Pando');
INSERT INTO `usuario` (`usucod`, `usunom`) VALUES ('002', 'Richard Stallman');

Un excelente curso de SQL es el elaborado por Jesús Vegas de la Universidad de Valladolid, si quieren estudiarlo hagan clic aquí.

Después de haber revisado el mencionado curso ahora sí podrán entender las instrucciones SQL empleadas en los siguientes programas.

PROGRAMA 01: LISTAR DATOS DE UNA TABLA
import MySQLdb
db=MySQLdb.connect(host='localhost',user='root',passwd='admin',db='pythonmysql')
cursor=db.cursor()
sql='SELECT * FROM usuario'
cursor.execute(sql)
resultado=cursor.fetchall()
print 'Datos de Usuarios'
for registro in resultado:
print registro[0],'->',registro[1]

PROGRAMA 02: INSERTAR UN REGISTRO A UNA TABLA
import MySQLdb
code=raw_input("Codigo:")
name=raw_input("Nombre:")

db=MySQLdb.connect(host='localhost',user='root',passwd='admin',db='pythonmysql')
cursor=db.cursor()
sql='INSERT INTO usuario VALUES("%s","%s")'%(code,name)
cursor.execute(sql)

PROGRAMA 03: BUSCAR UN REGISTRO EN UNA TABLA
import MySQLdb
name=raw_input("Nombre:")

db=MySQLdb.connect(host='localhost',user='root',passwd='admin',db='pythonmysql')
cursor=db.cursor()
sql='SELECT * FROM usuario WHERE usunom="%s"'%(name)
cursor.execute(sql)
resultado=cursor.fetchall()
print 'Datos de Usuarios Encontrados'
for registro in resultado:
print registro[0],'->',registro[1]

PROGRAMA 04: BUSCAR UN REGISTRO EN UNA TABLA CON UNA PARTE DE INFORMACIÓN DEL CAMPO
import MySQLdb
name=raw_input("Nombre:")
name="%"+name+"%"

db=MySQLdb.connect(host='localhost',user='root',passwd='admin',db='pythonmysql')
cursor=db.cursor()
sql='SELECT * FROM usuario WHERE usunom LIKE "%s"'%(name)
cursor.execute(sql)
resultado=cursor.fetchall()
print 'Datos de Usuarios Encontrados'
for registro in resultado:
print registro[0],'->',registro[1]

Con un poco más de paciencia pueden terminar de elaborar los programas para actualizar un registro, eliminar un registro, eliminar una tabla o una base de datos.