- Python PostgreSQL - Discussion
- Python PostgreSQL - Useful Resources
- Python PostgreSQL - Quick Guide
- Python PostgreSQL - Cursor Object
- Python PostgreSQL - Join
- Python PostgreSQL - Limit
- Python PostgreSQL - Drop Table
- Python PostgreSQL - Delete Data
- Python PostgreSQL - Update Table
- Python PostgreSQL - Order By
- Python PostgreSQL - Where Clause
- Python PostgreSQL - Select Data
- Python PostgreSQL - Insert Data
- Python PostgreSQL - Create Table
- Python PostgreSQL - Create Database
- Python PostgreSQL - Database Connection
- Python PostgreSQL - Introduction
- Python PostgreSQL - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Python PostgreSQL - Insert Data
You can insert record into an existing table in PostgreSQL using the INSERT INTO statement. While executing this, you need to specify the name of the table, and values for the columns in it.
Syntax
Following is the recommended syntax of the INSERT statement −
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
Where, column1, column2, column3,.. are the names of the columns of a table, and value1, value2, value3,... are the values you need to insert into the table.
Example
Assume we have created a table with name CRICKETERS using the CREATE TABLE statement as shown below −
postgres=# CREATE TABLE CRICKETERS ( First_Name VARCHAR(255), Last_Name VARCHAR(255), Age INT, Place_Of_Birth VARCHAR(255), Country VARCHAR(255) ); CREATE TABLE postgres=#
Following PostgreSQL statement inserts a row in the above created table −
postgres=# insert into CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country) values ( Shikhar , Dhawan , 33, Delhi , India ); INSERT 0 1 postgres=#
While inserting records using the INSERT INTO statement, if you skip any columns names Record will be inserted leaving empty spaces at columns which you have skipped.
postgres=# insert into CRICKETERS (First_Name, Last_Name, Country) values( Jonathan , Trott , SouthAfrica ); INSERT 0 1
You can also insert records into a table without specifying the column names, if the order of values you pass is same as their respective column names in the table.
postgres=# insert into CRICKETERS values( Kumara , Sangakkara , 41, Matale , Srilanka ); INSERT 0 1 postgres=# insert into CRICKETERS values( Virat , Kohp , 30, Delhi , India ); INSERT 0 1 postgres=# insert into CRICKETERS values( Rohit , Sharma , 32, Nagpur , India ); INSERT 0 1 postgres=#
After inserting the records into a table you can verify its contents using the SELECT statement as shown below −
postgres=# SELECT * from CRICKETERS; first_name | last_name | age | place_of_birth | country ------------+------------+-----+----------------+------------- Shikhar | Dhawan | 33 | Delhi | India Jonathan | Trott | | | SouthAfrica Kumara | Sangakkara | 41 | Matale | Srilanka Virat | Kohp | 30 | Delhi | India Rohit | Sharma | 32 | Nagpur | India (5 rows)
Inserting Data Using Python
The cursor class of psycopg2 provides a method with name execute() method. This method accepts the query as a parameter and executes it.
Therefore, to insert data into a table in PostgreSQL using python −
Import psycopg2 package.
Create a connection object using the connect() method, by passing the user name, password, host (optional default: localhost) and, database (optional) as parameters to it.
Turn off the auto-commit mode by setting false as value to the attribute autocommit.
The cursor() method of the Connection class of the psycopg2 pbrary returns a cursor object. Create a cursor object using this method..
Then, execute the INSERT statement(s) by passing it/them as a parameter to the execute() method.
Example
Following Python program creates a table with name EMPLOYEE in PostgreSQL database and inserts records into it using the execute() method −
import psycopg2 #Estabpshing the connection conn = psycopg2.connect( database="mydb", user= postgres , password= password , host= 127.0.0.1 , port= 5432 ) #Setting auto commit false conn.autocommit = True #Creating a cursor object using the cursor() method cursor = conn.cursor() # Preparing SQL queries to INSERT a record into the database. cursor.execute( INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ( Ramya , Rama priya , 27, F , 9000) ) cursor.execute( INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ( Vinay , Battacharya , 20, M , 6000) ) cursor.execute( INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ( Sharukh , Sheik , 25, M , 8300) ) cursor.execute( INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ( Sarmista , Sharma , 26, F , 10000) ) cursor.execute( INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ( Tripthi , Mishra , 24, F , 6000) ) # Commit your changes in the database conn.commit() print("Records inserted........") # Closing the connection conn.close()
Output
Records inserted........Advertisements