0% found this document useful (0 votes)
114 views2 pages

Cheat Sheet

This document provides an overview of using the psycopg2 module to interact with a PostgreSQL database from Python. It discusses connecting to a database, executing CRUD operations using a cursor object, handling exceptions, and tips for working with PostgreSQL and Python. The key operations covered are connecting to a database, executing queries to read, insert, update, and delete data, and handling exceptions when errors occur.

Uploaded by

larry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views2 pages

Cheat Sheet

This document provides an overview of using the psycopg2 module to interact with a PostgreSQL database from Python. It discusses connecting to a database, executing CRUD operations using a cursor object, handling exceptions, and tips for working with PostgreSQL and Python. The key operations covered are connecting to a database, executing queries to read, insert, update, and delete data, and handling exceptions when errors occur.

Uploaded by

larry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

 

 
DATA ENGINEERING:    
Data Modeling with Postgres  
 
READ OPERATIONS 
   
● Methods: ​fetchall()​, ​fetchmany()​, and ​fetchone() 
`psycopg2` MODULE  ● Example: 
select_query = "SELECT * FROM songs" 
● psycopg2 is a PostgreSQL database adapter for 
cur.execute(select_query) 
the Python programming language 
records = cur.fetchmany(5) 
● Installation: ​pip install psycopg2 
● Usage: ​import psycopg2  for record in records: 
  print(record) 
 
 
INSERT OPERATIONS 
CONNECTING TO A DATABASE 
insert_query = "INSERT INTO customer 
● conn = psycopg2.connect("host=127.0.0.1  (customer_id, name, rewards) VALUES (%s, %s, %s)" 
dbname=studentdb user=student  data = (1, "Amanda", True) 
password=student") 
cur.execute(insert_query, data) 
 
   

CREATE A CURSOR OBJECT  ON CONFLICT 


● Possible actions: ​DO NOTHING​ or ​DO UPDATE 
cur = conn.cursor() 
Note: a cursor object allows execution of  ● Example: 
PostgreSQL command through Python.  INSERT INTO users (id, level) VALUES (1, 0) 
  ON CONFLICT (id) DO UPDATE 
  SET level = users.level + 1; 
 
CREATE TABLE  UPDATE OPERATIONS 
create_table = “CREATE TABLE IF NOT EXISTS  update_query = "UPDATE vendors SET 
songs (song_title varchar, artist_name varchar, year  vendor_name = %s WHERE vendor_id = %s" 
int, album_name varchar, single Boolean);”  new_data = ("Walmart", 2) 
 
cur.execute(update_query, new_data) 
cur.execute(create_table) 
 
conn.commit() 
print("Table created successfully in PostgreSQL") 
 
DELETE OPERATIONS 
  delete_query = "DELETE FROM vendors WHERE id 
= %s" 
cur.execute(delete_query, (5)) 
 

Page 1 of 2 
 

   

SQL MODULE & JUPYTER NOTEBOOK  REFERENCES 


● Load SQL module: ​%load_ext sql  ● psycopg ​documentation 
● Connect to a db: ​%sql  ● PostgreSQL ​documentation  
postgresql://localhost:5432/<db>  ● Python Database API ​summary​. 
● Execute and return a SQL query in a list of  ● Python errors and exceptions ​documentation​. 
tuples: ​%sql SELECT * FROM vendors; 
● Return SQL query in a table with header using 
Jupyter cell magic: ​%%sql 
 
 

HANDLING EXCEPTION IN PYTHON 


try:  
cur = conn.cursor() 
except psycopg2.Error as e:  
print("Error: Could not get cursor to the DB") 
print(e) 
 
How it works: 
● try​ statement will be executed first. 
● If there is no exception, ​except​ statement will 
be skipped. 
● Otherwise, execute the codes in the exception. 
 
 

TIPS & TRICKS 


● Naming convention: 
○ SQL keywords: ​UPPER CASE 
○ names (identifiers): 
lower_case_with_underscores 
○ Example: ​UPDATE table SET name = 10; 
● Use triple quotes (“”” “””) or backslash (\) to pass 
a multi-line query. 
● Close db connection as soon as completing a 
task because connections are limited resources: 
conn.close() 
● Set automatic commit to be true so that each 
action is committed without having to call 
conn.commit()​ after each command: 
conn.set_session(autocommit=True) 
 

Page 2 of 2 

You might also like