Exploring Sqlite Database and table connection of python

Sharing is caring!

In our python learning series, we will continue some of the other modules which are going to help in learning python. As I have posted many articles related to python basic concept and I hope it helps you a lot in learning python.  As my last article, we have learned about the Iterator concept. If you haven’t checked then I would recommend checking the post from this link.  I continue the series, today we will learn about the major used module in python is Database connection and uses of python.

In python, we can use any database API like Mysql, SQL server etc. But today we will learn about the sqlite3 database module which is mostly used.  To use the Sqlite3 module we need to install the Sqlite3 module by using pip command in the virtual environment. Before installing the SQLite package please check which python version running in your system.

If you are using the 2.7.3 version then use this command to install.

pip install pysqlite

For version 3.0, run this command.

pip install pysqlite3

Once you install the above package then you can use or import this module in your project and use this feature easily. Now let’s see what are the methods available in the SQLite module.

Methods:

sqlite3.connect(database) 
              -> Database: either provide db name or ':memory:‘              
                 Detect_types: PARSE_DECLTYPES, PARSE_COLNAMES      
       
sqlite3.register_converter(typename, callable): 
              ->  convert database byte string to python type            

sqlite3.register_adapter(type, callable):  
             -> Convert the python type to database types           

sqlite3.complete_statement(sql): 
             ->  whether string contains one or more sql statements

Now we need to understand about the Database Connection Object and their method to uses.

Database: Connection object

Connection Object returned by calling sqlite3.Connection().

Methods:

cursor(): creates a pointer to database

commit(): commit the current transaction

rollback(): rollback any changes till the last commit

close():  close the connection

execute(sql): execute an sql query

executemany(sql): exceute multiple sql statements

Database: Cursor object

Cursor Object returned by calling connection.cursor()

Statement:

execute(sql, parameters):
		Execute sql statements. Parameters can be passed as ? Or named

executemany(sql, parameters_list):
		Same sql command with each parameter from a sequence

executescript(sql_script): 
		Execute an entire script.

Methods:

fetchone(): fetch one row of query result

fetchmany(size): number for rows from query result

fetchall(): fetches all the rows from query result

Now let’s see the few examples of SQLite to create a connection between database and table. We will create the table and insert some data and fetch those data from the SQL query. The most import thing that once you have a connection object that executed properly then you need to close the connection in the last to avoid the leaks.

import sqlite3
conn = sqlite3.connect('example.db')
print conn
c = conn.cursor()
print c

# Create table
c.execute('''CREATE TABLE stocks
             (date text, trans text, symbol text, qty real, price real)''')

# Insert a row of data
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

# Save (commit) the changes
conn.commit()

# We can also close the connection if we are done with it.
# Just be sure any changes have been committed or they will be lost.
conn.close()

conn = sqlite3.connect('example.db')
c = conn.cursor()

t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print c.fetchone()

As in the above example, we can see that we need to import the SQLite module package to use the feature. We need to create a connection with the named database.  Now we need to get the cursor object to create the table and insert data in the table. Once you have done then commit the transaction to execute data inserted and after please close the connection.

Now if you want to execute a few more data inserts or fetch or delete then you need to get the connection object again and use the cursor object of that. I hope it is very clear to understand. If still having confusion then let’s see one more example for cursor object for use memory rather than a database, we can directly use the memory to do few transactions. For few transactions is okay but it is not recommended to use huge transaction or data to store in memory, it will affect the performance and storage issue.

import sqlite3

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table people (name_last, age)")

who = "Yeltsin"
age = 72

# This is the qmark style:
cur.execute("insert into people values (?, ?)", (who, age))

# And this is the named style:
cur.execute("select * from people where name_last=:who and age=:age", {"who": who, "age": age})

print cur.fetchone()  // fetch the signle current data

print cur.fetchall() // fetch all the data

Now it is very understood to use the database cursor object. For advance, we can the Cursor Adapter to convert from the SQL to python. But I am not going into detail of Cursor Adapter here, I will come with the new article for this. In this article, we have covered and learned the basic of cursor object statement to execute the transaction.

Summary: Now we have a good understanding of the Database connection SQLite3 module. We have seen a few examples and play around it to clear the doubts. If you still having issue or doubts then please add a comment I will try to reply as much possible. In my next python tutorial series, we will learn about the Threading concept with the example.

If you are wondering to learn Android then Please Learn from Android category and wondering to lean Kotlin then Kotlin Category will help you. If you want to learn all the python article, then learn from the python category.

Please do subscribe your email to get the newsletter on this blog on below and if you like this post then do not forget to share like and comment on the below section.

Happy Coding 🙂

0 0 votes
Article Rating
Exploring Sqlite Database and table connection of python
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Scroll to top
0
Would love your thoughts, please comment.x
()
x