Manejando SQL (Sqlite3) en Python [Parte 1]


Les cuento he estado haciendo algunas pruebas para optar en un trabajo en BairesDev y de verdad me he dado cuenta que me faltan conocimientos en: Javascript, Jquery(claro), SQL y algunos otros pero no tanto como en estas 3, podría trabajar en un proyecto pero mas pronto que tarde tendría que estar buscando la manera de hacer algo que nunca he hecho en estos 3 lenguajes(por darles un nombre) y tendría que recurrir a libros o ayuda online lo que retrasaría un poco mi desempeño, es por esto que voy a comenzar esta serie, ya que estoy leyendo este tutorial de SQL http://sql-principiantes.blogspot.com/ claro que entiendo el código pero aveces se me olvida y el manual esta dirigido a Windows, y también algunos de Python y sqlite3 :S por lo que decidí crear la entrada para tener la información y practicar….

El primer código consiste en crear una Base de Datos e insertar unos datos aquí el código, que con los conocimientos obtenidos en La especialización de python Genere(Claro vamos a ir haciéndole mejoras :D):


import sqlite3

conn = sqlite3.connect('empresa.sqlite3')

cur = conn.cursor()

cur.execute('DROP TABLE IF EXISTS personas ')
cur.execute('''CREATE TABLE Personas ( id INTEGER PRIMARY KEY AUTOINCREMENT, Nombre char(20) NOT NULL, Apellidos char(30) NOT NULL, Direccion char(40) NOT NULL, Ciudad char(10) NOT NULL) ''')

cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)',('Marco Antonio','Trejo Lemus','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)',('Martha Beatriz','Trejo Lemus','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)', ('Juana Elvira','Trejo Lemus','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)', ('Nora Zulma','Trejo Lemus','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)',('Laura Lucero','Sobrevilla Trejo','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)',('Maria de la luz','Trejo Campos','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)', ('Trinidad','Trejo Bautista','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)',('Marcel Abisag','Sobrevilla Trejo','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)', ('Jose Abraham','Sobrevilla Trejo','Calle E 822','Tampico') )
cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)', ('Samuel Salomon','Olmeda Trejo','Calle E 822','Tampico'))
cur.execute('select * from Personas')

for row in cur:
print row

conn.close()

Recuerda esto es python y esta es la salida:

(1, u'Marco Antonio', u'Trejo Lemus', u'Calle E 822', u'Tampico')
(2, u'Martha Beatriz', u'Trejo Lemus', u'Calle E 822', u'Tampico')
(3, u'Juana Elvira', u'Trejo Lemus', u'Calle E 822', u'Tampico')
(4, u'Nora Zulma', u'Trejo Lemus', u'Calle E 822', u'Tampico')
(5, u'Laura Lucero', u'Sobrevilla Trejo', u'Calle E 822', u'Tampico')
(6, u'Maria de la luz', u'Trejo Campos', u'Calle E 822', u'Tampico')
(7, u'Trinidad', u'Trejo Bautista', u'Calle E 822', u'Tampico')
(8, u'Marcel Abisag', u'Sobrevilla Trejo', u'Calle E 822', u'Tampico')
(9, u'Jose Abraham', u'Sobrevilla Trejo', u'Calle E 822', u'Tampico')
(10, u'Samuel Salomon', u'Olmeda Trejo', u'Calle E 822', u'Tampico')

Ya logramos una parte del ejercicio pero en python siempre hay una manera mas fácil de hacer las cosas :D, si por ejemplo tenemos los datos en una lista y los vamos agregando así:


import sqlite3

conn = sqlite3.connect('empresa.sqlite3')

cur = conn.cursor()

cur.execute('DROP TABLE IF EXISTS personas  ')


cur.execute('''CREATE TABLE Personas ( id INTEGER PRIMARY KEY AUTOINCREMENT, Nombre char(20) NOT NULL, Apellidos char(30) NOT NULL, Direccion char(40) NOT NULL, Ciudad char(10) NOT NULL) ''')


datos = [
    ('Marco Antonio','Trejo Lemus','Calle E 822','Tampico'),
    ('Martha Beatriz','Trejo Lemus','Calle E 822','Tampico'),
    ('Juana Elvira','Trejo Lemus','Calle E 822','Tampico'),
    ('Nora Zulma','Trejo Lemus','Calle E 822','Tampico'),
    ('Laura Lucero','Sobrevilla Trejo','Calle E 822','Tampico'),
    ('Maria de la luz','Trejo Campos','Calle E 822','Tampico'),
    ('Trinidad','Trejo Bautista','Calle E 822','Tampico'),
    ('Marcel Abisag','Sobrevilla Trejo','Calle E 822','Tampico'),
    ('Jose Abraham','Sobrevilla Trejo','Calle E 822','Tampico'),    
    ('Samuel Salomon','Olmeda Trejo','Calle E 822','Tampico'),
]
for dato in datos:
    cur.execute('INSERT INTO Personas (Nombre,Apellidos,Direccion,Ciudad) VALUES ( ?,? , ?, ?)', dato)
  


cur.execute('select * from Personas')

for row in cur:
    print row

conn.close()


La salida es la misma solo quería agregarlos datos con un ciclo for sin necesidad de agregar linea por linea, aunque ya algo hemos visto en la otra serie de Twitter, les recuerdo que voy a comenzar  a hablar  de Javascript en el blog y en un futuro cercano colocar algunas entradas en ingles 😀

Saludos Dios les Bendiga e Ilumine sus caminos

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s