π ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π°ΡΠ°ΠΊ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ Π² Python: ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ
ΠΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ Ρ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ Π² Python?
SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ β ΡΠ΅ΡΡΠ΅Π·Π½Π°Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΡΡΡΠ°Π½ΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠΈΡ SQL Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²Π΅ΡΠΎΠ², ΠΊΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ Ρ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ Π² Python:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² SQL Π·Π°ΠΏΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠΊΡΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ ΠΆΠ΅ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ Π² SQL Π·Π°ΠΏΡΠΎΡ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΡΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ psycopg2 Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ PostgreSQL:
- ΠΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ.
import sqlite3
# ΠΡΠΈΠΌΠ΅Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
name = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ: ")
age = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡ: "))
query = "INSERT INTO users (name, age) VALUES (?, ?)"
cursor.execute(query, (name, age))
conn.commit()
import psycopg2
# ΠΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
conn = psycopg2.connect(database="mydatabase", user="myuser", password="mypassword", host="localhost", port="5432")
cursor = conn.cursor()
name = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ")
# ΠΠΊΡΠ°Π½ΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄
escaped_name = cursor.mogrify("%s", (name,)).decode("utf-8")
query = f"SELECT * FROM users WHERE name = {escaped_name}"
cursor.execute(query)
results = cursor.fetchall()
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Python ΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ Ρ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ Π² Python?
SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π²ΠΈΠ΄ΠΎΠ² Π°ΡΠ°ΠΊ Π½Π° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·Π²Π°ΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ Π·Π°ΡΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ. ΠΠΌΠ΅ΡΡΠΎ Π²ΡΡΠ°Π²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΡΡΠΌΡΡ Π² SQL Π·Π°ΠΏΡΠΎΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ:
username = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ")
password = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ: ")
query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'"
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
username = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ")
password = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ: ")
query = "SELECT * FROM users WHERE username = %s AND password = %s"
cursor.execute(query, (username, password))
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π·Π°ΡΠΈΡΠ°ΡΡ ΠΎΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ORM Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ORM (Object-Relational Mapping) Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², Π° Π½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΡΠΌΡΡ SQL Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ SQLAlchemy. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ORM.
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine("mysql://user:password@localhost/mydatabase")
Session = sessionmaker(bind=engine)
session = Session()
# ΠΠ°ΠΏΡΠΎΡ Π²ΡΠ΅Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
users = session.query(User).all()
3. ΠΠΊΡΠ°Π½ΠΈΡΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² SQL Π·Π°ΠΏΡΠΎΡΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π Python, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ escape_string ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ mysql.connector:
import mysql.connector
username = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ")
password = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ: ")
username = mysql.connector.escape_string(username)
password = mysql.connector.escape_string(password)
query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'"
4. ΠΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅ ΠΈΡ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π΅Π»ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ (whitelist) Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
table_name = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ: ")
column_name = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ°: ")
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
allowed_tables = ["users", "products", "orders"]
allowed_columns = ["id", "name", "price"]
if table_name in allowed_tables and column_name in allowed_columns:
query = f"SELECT {column_name} FROM {table_name}"
cursor.execute(query)
else:
print("ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.")
5. ΠΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ. SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ - ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΡΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Π²Π°ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΠΊΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΎΠΊ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΈ ΡΠ»Π΅Π΄ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ SQL ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΉ Π² Π²Π°ΡΠΈΡ Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ - ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΡΡΡΡ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΠ°Π³Π°ΠΌΠΈ Π² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.