Python PostgreSQL - klauzula Where
Podczas wykonywania operacji SELECT, UPDATE lub DELETE można określić warunek filtrowania rekordów za pomocą klauzuli WHERE. Operacja zostanie wykonana na rekordach spełniających podany warunek.
Składnia
Poniżej znajduje się składnia klauzuli WHERE w PostgreSQL -
SELECT column1, column2, columnN
FROM table_name
WHERE [search_condition]
Warunek_wyszukiwania można określić za pomocą porównania lub operatorów logicznych. takie jak>, <, =, LIKE, NOT itd. Poniższe przykłady wyjaśniają tę koncepcję.
Przykład
Załóżmy, że utworzyliśmy tabelę o nazwie CRICKETERS, używając następującego zapytania -
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=#
A jeśli wstawiliśmy do niego 5 rekordów, używając instrukcji INSERT jako -
postgres=# insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
INSERT 0 1
postgres=# insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
INSERT 0 1
postgres=# insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
INSERT 0 1
postgres=# insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
INSERT 0 1
Następująca instrukcja SELECT pobiera rekordy, których wiek jest większy niż 35 -
postgres=# SELECT * FROM CRICKETERS WHERE AGE > 35;
first_name | last_name | age | place_of_birth | country
------------+------------+-----+----------------+-------------
Jonathan | Trott | 38 | CapeTown | SouthAfrica
Kumara | Sangakkara | 41 | Matale | Srilanka
(2 rows)
postgres=#
Where klauzula przy użyciu języka Python
Aby pobrać określone rekordy z tabeli za pomocą programu w języku Python, należy wykonać instrukcję SELECT z klauzulą WHERE, przekazując ją jako parametr do execute() metoda.
Przykład
Poniższy przykład w języku Python demonstruje użycie polecenia WHERE przy użyciu języka Python.
import psycopg2
#establishing 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()
#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql = '''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Populating the table
insert_stmt = "INSERT INTO EMPLOYEE (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES (%s, %s, %s, %s, %s)"
data = [('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'M', 5000),
('Mac', 'Mohan', 26, 'M', 2000)]
cursor.executemany(insert_stmt, data)
#Retrieving specific records using the where clause
cursor.execute("SELECT * from EMPLOYEE WHERE AGE <23")
print(cursor.fetchall())
#Commit your changes in the database
conn.commit()
#Closing the connection
conn.close()
Wynik
[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]