Capítulo 17: Python se encuentra con SQL
17.4 Realizando Operaciones CRUD
Antes de continuar, debemos establecer una base de datos de prueba y una tabla para jugar. A continuación, se muestra el código Python para crear una nueva base de datos SQLite llamada 'test_db.sqlite' y una tabla llamada 'employees':
import sqlite3
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE employees
(id INTEGER PRIMARY KEY, name text, salary real, department text, position text, hireDate text)''')
# Commit the changes and close the connection
conn.commit()
conn.close()
17.4.1 Operación de Creación
La operación de Creación se utiliza para agregar nuevos registros a una base de datos. Aquí tienes un ejemplo de cómo puedes agregar un nuevo registro a la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Insert a new employee record
c.execute("INSERT INTO employees VALUES (1, 'John Doe', 50000, 'HR', 'Manager', '2023-01-05')")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.2 Operación de Lectura
La operación de Lectura se utiliza para recuperar datos de una base de datos. Aquí tienes un ejemplo de cómo recuperar todos los registros de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Select all rows from the employees table
c.execute('SELECT * FROM employees')
rows = c.fetchall()
for row in rows:
print(row)
# Close the connection
conn.close()
17.4.3 Operación de Actualización
La operación de Actualización se utiliza para modificar registros existentes en una base de datos. Aquí tienes un ejemplo de cómo actualizar un registro en la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Update employee salary
c.execute("UPDATE employees SET salary = 60000 WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.4 Operación de Eliminación
La operación de Eliminación se utiliza para eliminar registros de una base de datos. Aquí tienes un ejemplo de cómo eliminar un registro de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Delete an employee record
c.execute("DELETE from employees WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
Nota: Asegúrate siempre de realizar las operaciones en la base de datos de manera controlada y verifica tus comandos antes de ejecutarlos, especialmente para operaciones de Actualización y Eliminación, ya que pueden modificar o eliminar datos de forma permanente.
17.4.5 MySQL
Para interactuar con una base de datos MySQL, necesitarás una biblioteca de Python llamada mysql-connector-python
. Puedes instalarla a través de pip:
pip install mysql-connector-python
Supongamos que tenemos una base de datos MySQL llamada 'testdb', y queremos insertar un registro en la tabla 'employees'.
import mysql.connector
# establish the connection
cnx = mysql.connector.connect(user='<username>', password='<password>',
host='127.0.0.1',
database='testdb')
# Create a cursor object using the cursor() method
cursor = cnx.cursor()
# Prepare SQL query to INSERT a record into the database
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
except:
# Rollback in case there is any error
cnx.rollback()
# disconnect from server
cnx.close()
17.4.6 PostgreSQL
Para PostgreSQL, puedes utilizar la biblioteca psycopg2
, que puedes instalar a través de pip:
pip install psycopg2
Aquí tienes un ejemplo de cómo insertar un registro en PostgreSQL:
import psycopg2
#establishing the connection
cnx = psycopg2.connect(
database="testdb", user='<username>', password='<password>', host='127.0.0.1', port= '5432'
)
#Creating a cursor object using the cursor() method
cursor = cnx.cursor()
# Preparing SQL queries to INSERT a record into the database.
sql = '''INSERT into EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)'''
# execute the SQL query using execute() method.
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
# close the cursor and connection
cursor.close()
cnx.close()
En ambos ejemplos, si las operaciones SQL son exitosas, los datos se confirman en la base de datos usando cnx.commit()
. Si hay un error, se llama a la función cnx.rollback()
para revertir cualquier cambio en la base de datos.
Recuerda que siempre debes cerrar el cursor y el objeto de conexión una vez que hayas terminado con ellos para evitar problemas de memoria en la base de datos.
La principal diferencia entre usar SQLite, MySQL y PostgreSQL en Python es la forma en que te conectas a cada base de datos utilizando sus respectivas bibliotecas de Python. La sintaxis SQL para las operaciones CRUD sigue siendo la misma.
17.4 Realizando Operaciones CRUD
Antes de continuar, debemos establecer una base de datos de prueba y una tabla para jugar. A continuación, se muestra el código Python para crear una nueva base de datos SQLite llamada 'test_db.sqlite' y una tabla llamada 'employees':
import sqlite3
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE employees
(id INTEGER PRIMARY KEY, name text, salary real, department text, position text, hireDate text)''')
# Commit the changes and close the connection
conn.commit()
conn.close()
17.4.1 Operación de Creación
La operación de Creación se utiliza para agregar nuevos registros a una base de datos. Aquí tienes un ejemplo de cómo puedes agregar un nuevo registro a la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Insert a new employee record
c.execute("INSERT INTO employees VALUES (1, 'John Doe', 50000, 'HR', 'Manager', '2023-01-05')")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.2 Operación de Lectura
La operación de Lectura se utiliza para recuperar datos de una base de datos. Aquí tienes un ejemplo de cómo recuperar todos los registros de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Select all rows from the employees table
c.execute('SELECT * FROM employees')
rows = c.fetchall()
for row in rows:
print(row)
# Close the connection
conn.close()
17.4.3 Operación de Actualización
La operación de Actualización se utiliza para modificar registros existentes en una base de datos. Aquí tienes un ejemplo de cómo actualizar un registro en la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Update employee salary
c.execute("UPDATE employees SET salary = 60000 WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.4 Operación de Eliminación
La operación de Eliminación se utiliza para eliminar registros de una base de datos. Aquí tienes un ejemplo de cómo eliminar un registro de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Delete an employee record
c.execute("DELETE from employees WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
Nota: Asegúrate siempre de realizar las operaciones en la base de datos de manera controlada y verifica tus comandos antes de ejecutarlos, especialmente para operaciones de Actualización y Eliminación, ya que pueden modificar o eliminar datos de forma permanente.
17.4.5 MySQL
Para interactuar con una base de datos MySQL, necesitarás una biblioteca de Python llamada mysql-connector-python
. Puedes instalarla a través de pip:
pip install mysql-connector-python
Supongamos que tenemos una base de datos MySQL llamada 'testdb', y queremos insertar un registro en la tabla 'employees'.
import mysql.connector
# establish the connection
cnx = mysql.connector.connect(user='<username>', password='<password>',
host='127.0.0.1',
database='testdb')
# Create a cursor object using the cursor() method
cursor = cnx.cursor()
# Prepare SQL query to INSERT a record into the database
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
except:
# Rollback in case there is any error
cnx.rollback()
# disconnect from server
cnx.close()
17.4.6 PostgreSQL
Para PostgreSQL, puedes utilizar la biblioteca psycopg2
, que puedes instalar a través de pip:
pip install psycopg2
Aquí tienes un ejemplo de cómo insertar un registro en PostgreSQL:
import psycopg2
#establishing the connection
cnx = psycopg2.connect(
database="testdb", user='<username>', password='<password>', host='127.0.0.1', port= '5432'
)
#Creating a cursor object using the cursor() method
cursor = cnx.cursor()
# Preparing SQL queries to INSERT a record into the database.
sql = '''INSERT into EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)'''
# execute the SQL query using execute() method.
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
# close the cursor and connection
cursor.close()
cnx.close()
En ambos ejemplos, si las operaciones SQL son exitosas, los datos se confirman en la base de datos usando cnx.commit()
. Si hay un error, se llama a la función cnx.rollback()
para revertir cualquier cambio en la base de datos.
Recuerda que siempre debes cerrar el cursor y el objeto de conexión una vez que hayas terminado con ellos para evitar problemas de memoria en la base de datos.
La principal diferencia entre usar SQLite, MySQL y PostgreSQL en Python es la forma en que te conectas a cada base de datos utilizando sus respectivas bibliotecas de Python. La sintaxis SQL para las operaciones CRUD sigue siendo la misma.
17.4 Realizando Operaciones CRUD
Antes de continuar, debemos establecer una base de datos de prueba y una tabla para jugar. A continuación, se muestra el código Python para crear una nueva base de datos SQLite llamada 'test_db.sqlite' y una tabla llamada 'employees':
import sqlite3
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE employees
(id INTEGER PRIMARY KEY, name text, salary real, department text, position text, hireDate text)''')
# Commit the changes and close the connection
conn.commit()
conn.close()
17.4.1 Operación de Creación
La operación de Creación se utiliza para agregar nuevos registros a una base de datos. Aquí tienes un ejemplo de cómo puedes agregar un nuevo registro a la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Insert a new employee record
c.execute("INSERT INTO employees VALUES (1, 'John Doe', 50000, 'HR', 'Manager', '2023-01-05')")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.2 Operación de Lectura
La operación de Lectura se utiliza para recuperar datos de una base de datos. Aquí tienes un ejemplo de cómo recuperar todos los registros de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Select all rows from the employees table
c.execute('SELECT * FROM employees')
rows = c.fetchall()
for row in rows:
print(row)
# Close the connection
conn.close()
17.4.3 Operación de Actualización
La operación de Actualización se utiliza para modificar registros existentes en una base de datos. Aquí tienes un ejemplo de cómo actualizar un registro en la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Update employee salary
c.execute("UPDATE employees SET salary = 60000 WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.4 Operación de Eliminación
La operación de Eliminación se utiliza para eliminar registros de una base de datos. Aquí tienes un ejemplo de cómo eliminar un registro de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Delete an employee record
c.execute("DELETE from employees WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
Nota: Asegúrate siempre de realizar las operaciones en la base de datos de manera controlada y verifica tus comandos antes de ejecutarlos, especialmente para operaciones de Actualización y Eliminación, ya que pueden modificar o eliminar datos de forma permanente.
17.4.5 MySQL
Para interactuar con una base de datos MySQL, necesitarás una biblioteca de Python llamada mysql-connector-python
. Puedes instalarla a través de pip:
pip install mysql-connector-python
Supongamos que tenemos una base de datos MySQL llamada 'testdb', y queremos insertar un registro en la tabla 'employees'.
import mysql.connector
# establish the connection
cnx = mysql.connector.connect(user='<username>', password='<password>',
host='127.0.0.1',
database='testdb')
# Create a cursor object using the cursor() method
cursor = cnx.cursor()
# Prepare SQL query to INSERT a record into the database
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
except:
# Rollback in case there is any error
cnx.rollback()
# disconnect from server
cnx.close()
17.4.6 PostgreSQL
Para PostgreSQL, puedes utilizar la biblioteca psycopg2
, que puedes instalar a través de pip:
pip install psycopg2
Aquí tienes un ejemplo de cómo insertar un registro en PostgreSQL:
import psycopg2
#establishing the connection
cnx = psycopg2.connect(
database="testdb", user='<username>', password='<password>', host='127.0.0.1', port= '5432'
)
#Creating a cursor object using the cursor() method
cursor = cnx.cursor()
# Preparing SQL queries to INSERT a record into the database.
sql = '''INSERT into EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)'''
# execute the SQL query using execute() method.
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
# close the cursor and connection
cursor.close()
cnx.close()
En ambos ejemplos, si las operaciones SQL son exitosas, los datos se confirman en la base de datos usando cnx.commit()
. Si hay un error, se llama a la función cnx.rollback()
para revertir cualquier cambio en la base de datos.
Recuerda que siempre debes cerrar el cursor y el objeto de conexión una vez que hayas terminado con ellos para evitar problemas de memoria en la base de datos.
La principal diferencia entre usar SQLite, MySQL y PostgreSQL en Python es la forma en que te conectas a cada base de datos utilizando sus respectivas bibliotecas de Python. La sintaxis SQL para las operaciones CRUD sigue siendo la misma.
17.4 Realizando Operaciones CRUD
Antes de continuar, debemos establecer una base de datos de prueba y una tabla para jugar. A continuación, se muestra el código Python para crear una nueva base de datos SQLite llamada 'test_db.sqlite' y una tabla llamada 'employees':
import sqlite3
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE employees
(id INTEGER PRIMARY KEY, name text, salary real, department text, position text, hireDate text)''')
# Commit the changes and close the connection
conn.commit()
conn.close()
17.4.1 Operación de Creación
La operación de Creación se utiliza para agregar nuevos registros a una base de datos. Aquí tienes un ejemplo de cómo puedes agregar un nuevo registro a la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Insert a new employee record
c.execute("INSERT INTO employees VALUES (1, 'John Doe', 50000, 'HR', 'Manager', '2023-01-05')")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.2 Operación de Lectura
La operación de Lectura se utiliza para recuperar datos de una base de datos. Aquí tienes un ejemplo de cómo recuperar todos los registros de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Select all rows from the employees table
c.execute('SELECT * FROM employees')
rows = c.fetchall()
for row in rows:
print(row)
# Close the connection
conn.close()
17.4.3 Operación de Actualización
La operación de Actualización se utiliza para modificar registros existentes en una base de datos. Aquí tienes un ejemplo de cómo actualizar un registro en la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Update employee salary
c.execute("UPDATE employees SET salary = 60000 WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
17.4.4 Operación de Eliminación
La operación de Eliminación se utiliza para eliminar registros de una base de datos. Aquí tienes un ejemplo de cómo eliminar un registro de la tabla 'employees':
conn = sqlite3.connect('test_db.sqlite')
c = conn.cursor()
# Delete an employee record
c.execute("DELETE from employees WHERE name = 'John Doe'")
# Commit the changes
conn.commit()
# Close the connection
conn.close()
Nota: Asegúrate siempre de realizar las operaciones en la base de datos de manera controlada y verifica tus comandos antes de ejecutarlos, especialmente para operaciones de Actualización y Eliminación, ya que pueden modificar o eliminar datos de forma permanente.
17.4.5 MySQL
Para interactuar con una base de datos MySQL, necesitarás una biblioteca de Python llamada mysql-connector-python
. Puedes instalarla a través de pip:
pip install mysql-connector-python
Supongamos que tenemos una base de datos MySQL llamada 'testdb', y queremos insertar un registro en la tabla 'employees'.
import mysql.connector
# establish the connection
cnx = mysql.connector.connect(user='<username>', password='<password>',
host='127.0.0.1',
database='testdb')
# Create a cursor object using the cursor() method
cursor = cnx.cursor()
# Prepare SQL query to INSERT a record into the database
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
except:
# Rollback in case there is any error
cnx.rollback()
# disconnect from server
cnx.close()
17.4.6 PostgreSQL
Para PostgreSQL, puedes utilizar la biblioteca psycopg2
, que puedes instalar a través de pip:
pip install psycopg2
Aquí tienes un ejemplo de cómo insertar un registro en PostgreSQL:
import psycopg2
#establishing the connection
cnx = psycopg2.connect(
database="testdb", user='<username>', password='<password>', host='127.0.0.1', port= '5432'
)
#Creating a cursor object using the cursor() method
cursor = cnx.cursor()
# Preparing SQL queries to INSERT a record into the database.
sql = '''INSERT into EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)'''
# execute the SQL query using execute() method.
cursor.execute(sql)
# Commit your changes in the database
cnx.commit()
# close the cursor and connection
cursor.close()
cnx.close()
En ambos ejemplos, si las operaciones SQL son exitosas, los datos se confirman en la base de datos usando cnx.commit()
. Si hay un error, se llama a la función cnx.rollback()
para revertir cualquier cambio en la base de datos.
Recuerda que siempre debes cerrar el cursor y el objeto de conexión una vez que hayas terminado con ellos para evitar problemas de memoria en la base de datos.
La principal diferencia entre usar SQLite, MySQL y PostgreSQL en Python es la forma en que te conectas a cada base de datos utilizando sus respectivas bibliotecas de Python. La sintaxis SQL para las operaciones CRUD sigue siendo la misma.