Seamless SQL Magic: Python and SQLite at Your Fingertips!

SQLite DB & Python.


Below are several use cases showing you how to work with SQLite, an extremely light-weight Relational database in Python.

SQLite is widely-used, for example as supporting database for relatively small web sites, and is favorite among the developers for many reasons.

Connect SQLite DB with Python.
SQLite DB with Python meme.

Python Knowledge Base: Make coding great again.
- Updated: 2024-11-20 by Andrey BRATUS, Senior Data Analyst.



    - Easy setup.
    - Light-weighted, less than 500 KBs.
    - Serverless.
    - Fully transactional and concurrency-compliant.
    - and many more...

    Installing and setting up SQLite takes a few minutes, possible from the command line tools, but is preferred via GUI-based utilities like DB Browser for SQLite.



  1. Selecting data fron SQLite database:


  2. 
    import sqlite3
    
    # Establish a connection and create cursor
    con = sqlite3.connect('database.db')
    cur = con.cursor()
    
    # Get all rows and all columns by order
    cur.execute("SELECT * FROM 'ips' ORDER BY asn")
    print(cur.fetchall())
    
    # Get all rows and certain columns
    cur.execute("SELECT address, asn FROM 'ips' ORDER BY asn")
    print(cur.fetchall())
    
    # Get all rows where asn is less than 300
    cur.execute("SELECT * FROM 'ips' WHERE asn < 300")
    print(cur.fetchall())
    
    # Get all rows where asn is 144
    cur.execute("SELECT * FROM 'ips' WHERE asn = 144")
    print(cur.fetchall())
    
    # Get all rows where asn is 144
    cur.execute("SELECT * FROM 'ips' WHERE asn < 300 AND domain LIKE '%sa'")
    results1 = cur.fetchall()
    print(results1)
    
    for row in results1:
      print(row)
    

    OUT: your select results.



  3. Saving query results to excel file:


  4. 
    import sqlite3
    import pandas
    
    # Establish a connection and create cursor
    con = sqlite3.connect('mydatabase.db')
    cur = con.cursor()
    
    df = pandas.read_sql_query("SELECT * FROM 'ips' ORDER BY asn", con)
    # print(df)
    
    # df.to_csv('mydatabase.csv', index=None)
    df.to_excel('mydatabase.xlsx', index=None)
    
    print("select is saved to excel !!!")
    

    OUT: select is saved to excel !!!



  5. Saving query results to PDF file:


  6. 
    import sqlite3
    from fpdf import FPDF
    
    con = sqlite3.connect('database.db')
    cur = con.cursor()
    
    cur.execute('PRAGMA table_info(ips)')
    columns = cur.fetchall()
    #print(columns)
    
    pdf = FPDF(orientation='P', unit='pt', format='A4')
    pdf.add_page()
    
    for column in columns:
      pdf.set_font(family='Times', style='B', size=14)
      pdf.cell(w=120, h=30, txt=column[1], border=1)
    
    pdf.ln()
    
    cur.execute("SELECT * FROM 'ips'")
    rows = cur.fetchall()
    
    for row in rows:
      for element in row:
        pdf.set_font(family='Arial', size=14)
        pdf.cell(w=120, h=30, txt=str(element), border=1)
      pdf.ln()
    
    pdf.output('myoutput.pdf')
    
    print("Your select is saved to PDF file !!!")
    

    OUT: Your select is saved to PDF file !!!


  7. Inserting new rows into database table:


  8. 
    import sqlite3
    
    con = sqlite3.connect('database.db')
    cur = con.cursor()
    
    new_rows = [
      ('100.200.300.400', 'bratus.b.c', 110),
      ('200.200.200.200', 'andrey.d.e', 220)
    ]
    
    cur.executemany("INSERT INTO 'ips' VALUES(?,?,?)", new_rows)
    con.commit()
    
    cur.execute("SELECT * FROM 'ips'")
    print(cur.fetchall())
    

    OUT: [('300.431.443.201', 'bra.an.br', 125), ('100.200.300.400', 'bratus.b.c', 110), ('200.200.200.200', 'andrey.d.e', 220)]





See also related topics: