रुपेश पवार
IT Professional 5+ वर्षांचा अनुभव
प्रकाशित
10 August २०२६
वाचण्याचा वेळ
12 मिनिटे
स्तर
Beginner
Table of Contents
Python मध्ये Database सोबत कसं काम करायचं, SQLite3, MySQL, MongoDB आणि JSON, connect करणे, table तयार करणे, data insert/select/update/delete करणे, हे सर्व सोप्या मराठीत, प्रॅक्टिकल उदाहरणांसह.
आतापर्यंत आपण Python मध्ये Variables, Functions आणि File Handling शिकलो. पण प्रत्यक्ष प्रोजेक्ट्समध्ये जसं की website, app किंवा software data फक्त file मध्ये नाही, तर Database मध्ये structured स्वरूपात साठवला जातो. या लेखात आपण Python च्या मदतीने Database कसा वापरायचा हे सुरुवातीपासून शिकणार आहोत.
Database म्हणजे काय? (What is a Database)
Database म्हणजे electronically साठवलेला माहितीचा व्यवस्थित (organized) संग्रह. याचं व्यवस्थापन DBMS (Database Management System) द्वारे केलं जातं, जे data access करणे, update करणे आणि सुरक्षितपणे manage करणे शक्य करतं. Database चे प्रामुख्याने दोन प्रकार आहेत:
Relational Database (RDBMS)
Data rows आणि columns असलेल्या structured tables मध्ये साठवला जातो. Tables मधील data एकमेकांशी संबंधित (related) असू शकतो.
उदाहरणे: MySQL, PostgreSQL, SQLite
Non-Relational Database (NoSQL)
Data documents, key-value pairs किंवा graph स्वरूपात साठवला जातो, जास्त flexibility देतो.
उदाहरणे: MongoDB, Cassandra
या tutorial मध्ये आपण Python सोबत सर्वाधिक वापरल्या जाणाऱ्या तीन databases SQLite, MySQL आणि MongoDB कसे वापरायचे ते शिकू, आणि Python मध्ये JSON data कसा handle करायचा हेही पाहू.
Python SQLite – सुरुवात करण्यासाठी सर्वोत्तम पर्याय
SQLite ही एक lightweight, file-based database आहे जी वेगळी install करण्याची गरज नाही. कारण Python 2.5 पासून sqlite3 module हे built-in आहे. त्यामुळे नवशिक्यांसाठी (beginners) database शिकण्याचा हा सर्वात सोपा मार्ग आहे.
Database ला Connect करणे
import sqlite3 conn = sqlite3.connect("students.db") cursor = conn.cursor() print("Database connected successfully")connect() function दिलेल्या नावाची database file उघडतो अस्तित्वात नसेल तर नवीन तयार करतो. cursor object च्या मदतीने आपण SQL queries चालवतो (execute करतो).
Table तयार करणे (Create Table)
cursor.execute(""" CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY, name TEXT, marks INTEGER ) """) conn.commit()x`Data Insert करणे
cursor.execute("INSERT INTO students (name, marks) VALUES (?, ?)", ("Rahul", 88)) conn.commit()Security Tip: query मध्ये थेट values न टाकता ? placeholder वापरा — यामुळे SQL Injection सारखा धोका टळतो.
Data वाचणे (Select Query)
cursor.execute("SELECT * FROM students") rows = cursor.fetchall() for row in rows: print(row)(1, 'Rahul', 88)
Data Update आणि Delete करणे
# Update cursor.execute("UPDATE students SET marks = ? WHERE name = ?", (95, "Rahul")) # Delete cursor.execute("DELETE FROM students WHERE name = ?", ("Rahul",)) conn.commit() conn.close()काम पूर्ण झाल्यावर conn.commit() ने बदल save करणे आणि conn.close() ने connection बंद करणे विसरू नका — जसं File Handling मध्ये आपण close() करतो अगदी तसंच.
Python MySQL — मोठ्या प्रोजेक्ट्ससाठी
वेबसाईट किंवा मोठ्या application साठी MySQL ही सर्वात लोकप्रिय relational database आहे. Python सोबत जोडण्यासाठी mysql-connector-python हे package वापरतात.
# Install: pip install mysql-connector-python import mysql.connector conn = mysql.connector.connect( host="localhost", user="root", password="your_password" ) cursor = conn.cursor() cursor.execute("CREATE DATABASE IF NOT EXISTS school") print("MySQL Connected")यानंतरची syntax — table तयार करणे, insert/select/update/delete करणे — SQLite प्रमाणेच असते, फक्त connection वेगळ्या पद्धतीने host/user/password देऊन तयार होतो. Real project मध्ये password थेट code मध्ये न लिहिता environment variables मध्ये ठेवावा.
# Install: pip install mysql-connector-python import mysql.connector conn = mysql.connector.connect( host="localhost", user="root", password="your_password" ) cursor = conn.cursor() cursor.execute("CREATE DATABASE IF NOT EXISTS school") print("MySQL Connected")यानंतरची syntax table तयार करणे, insert/select/update/delete करणे SQLite प्रमाणेच असते, फक्त connection वेगळ्या पद्धतीने host/user/password देऊन तयार होतो. Real project मध्ये password थेट code मध्ये न लिहिता environment variables मध्ये ठेवावा.
Python MongoDB — NoSQL Database
MongoDB ही सर्वाधिक लोकप्रिय NoSQL database आहे. ती data tables ऐवजी documents स्वरूपात (BSON – JSON सारखा format) साठवते, त्यामुळे high speed, high scalability आणि flexible structure मिळतो. Python सोबत MongoDB जोडण्यासाठी pymongo library वापरतात.
# Install: pip install pymongo from pymongo import MongoClient client = MongoClient("mongodb://localhost:27017/") db = client["school"] students = db["students"] students.insert_one({"name": "Sneha", "marks": 92}) for s in students.find(): print(s)| Method | उपयोग |
|---|---|
insert_one() | एक document add करण्यासाठी |
insert_many() | एकाच वेळी अनेक documents add करण्यासाठी |
find() | सर्व documents शोधण्यासाठी |
update_one() | एक document update करण्यासाठी |
delete_one() | एक document delete करण्यासाठी |
Python JSON — Data Exchange साठी
JSON (JavaScript Object Notation) हा data structure करण्याचा एक हलका (lightweight) आणि सर्वत्र वापरला जाणारा format आहे — विशेषतः browser आणि server दरम्यान data पाठवण्यासाठी. Python चं built-in json module JSON सोबत काम करणं सोपं करतं.
import json data = {"name": "Aarav", "marks": 90} # Python object → JSON string json_str = json.dumps(data) print(json_str) # JSON string → Python object parsed = json.loads(json_str) print(parsed["name"])Output: {“name”: “Aarav”, “marks”: 90} Aarav
json.dump()
Python data file मध्ये JSON स्वरूपात लिहिणे.
json.dumps()
Python data ला JSON string मध्ये convert करणे.
json.load() / loads()
JSON file/string Python object मध्ये वाचणे.
SQLite vs MySQL vs MongoDB — कोणतं कधी वापरायचं?
| Database | Setup | सर्वोत्तम उपयोग |
|---|---|---|
| SQLite | Install ची गरज नाही | शिकणे, छोटे प्रोजेक्ट्स, prototypes |
| MySQL | Server install करावा लागतो | Websites, मोठे structured applications |
| MongoDB | Server install करावा लागतो | Flexible/unstructured data, मोठ्या प्रमाणातील real-time apps |
Best Practices
🔹 SQL query मध्ये नेहमी ? placeholder वापरा, थेट string मध्ये values टाकू नका (SQL Injection टाळण्यासाठी).
🔹 काम झाल्यावर conn.commit() आणि conn.close() नेहमी करा.
🔹 Password/credentials code मध्ये hardcode न करता environment variables मध्ये ठेवा.
🔹 File Handling प्रमाणेच database operations साठीही try/except वापरून errors handle करा.
Practice Problems — स्वतः प्रयत्न करा
Problem 1: SQLite वापरून books नावाची table तयार करा (title, author, price) आणि त्यात 3 books insert करा.
Problem 2: SELECT query वापरून ₹300 पेक्षा जास्त किमतीची सर्व books शोधा.
Problem 3: एक Python dictionary JSON file मध्ये json.dump() वापरून साठवा, नंतर ती परत वाचा.
Problem 4: MongoDB मध्ये students collection तयार करून 5 students insert_many() ने add करा.
Frequently Asked Questions (FAQ)
Q1. Python मध्ये database वापरण्यासाठी कोणती library वापरतात?
Ans: SQLite साठी built-in sqlite3, MySQL साठी mysql-connector-python आणि MongoDB साठी pymongo हे library वापरतात.
Q2. SQLite आणि MySQL मध्ये मुख्य फरक काय आहे?
Ans: SQLite ही file-based, install न करता वापरता येणारी database आहे, तर MySQL साठी वेगळा server install करावा लागतो — मोठ्या applications साठी MySQL जास्त योग्य असते.
Q3. SQL Injection म्हणजे काय आणि तो कसा टाळायचा?
Ans: Query मध्ये user input थेट टाकल्यास होणारा सुरक्षा धोका म्हणजे SQL Injection. ? placeholder वापरून parameterized queries लिहिल्यास हा धोका टाळता येतो.
Q4. MongoDB ला relational database का म्हणत नाहीत?
Ans: MongoDB data tables ऐवजी documents (BSON format) स्वरूपात साठवते, त्यामुळे ती NoSQL / non-relational database मानली जाते.
Q5. json.dump() आणि json.dumps() मध्ये फरक काय?
Ans: json.dump() data थेट file मध्ये लिहितो, तर json.dumps() data ला JSON string मध्ये convert करतो जो नंतर वापरता येतो.
Q6. नवशिक्यांनी (beginners) कोणती database आधी शिकावी?
Ans: SQLite — कारण ती install करण्याची गरज नाही आणि Python सोबत built-in येते, त्यामुळे database concepts शिकण्यासाठी ती सर्वोत्तम सुरुवात आहे.
पुढे काय शिकाल?
Database शिकल्यानंतर पुढे Django/Flask सारखं Web Framework शिकून database सोबत खरी website किंवा API कशी बनवायची हे शिकणं उपयुक्त ठरेल.


