Python SQLite-Where 절

SQLite에서 테이블의 특정 행을 가져 오거나 삭제하거나 업데이트하려면 where 절을 사용하여 작업을 위해 테이블의 행을 필터링하는 조건을 지정해야합니다.

예를 들어 where 절이있는 SELECT 문이있는 경우 지정된 조건을 충족하는 행만 검색됩니다.

통사론

다음은 SQLite에서 WHERE 절의 구문입니다-

SELECT column1, column2, columnN
FROM table_name
WHERE [search_condition]

비교 또는 논리 연산자를 사용하여 search_condition을 지정할 수 있습니다. >, <, =, LIKE, NOT 등. 다음 예제는이 개념을 명확하게합니다.

다음 쿼리를 사용하여 이름이 CRICKETERS 인 테이블을 생성했다고 가정합니다.

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

그리고 INSERT 문을 사용하여 5 개의 레코드를 삽입했다면-

sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

다음 SELECT 문은 나이가 35보다 큰 레코드를 검색합니다-

sqlite> SELECT * FROM CRICKETERS WHERE AGE > 35;
First_Name Last_Name  Age  Place_Of_B Country
---------- ---------- ---- ---------- -------------
Jonathan   Trott      38   CapeTown   SouthAfrica
Kumara     Sangakkara 41   Matale     Srilanka
sqlite>

파이썬을 사용하는 Where 절

Cursor 객체 / 클래스는 쿼리를 실행하고 데이터를 가져 오는 등의 모든 메서드를 포함합니다. 연결 클래스의 커서 메서드는 커서 객체를 반환합니다.

따라서 파이썬을 사용하여 SQLite 데이터베이스에 테이블을 생성하려면-

  • connect () 메서드를 사용하여 데이터베이스와의 연결을 설정합니다.

  • 위에서 생성 한 연결 객체에 대해 cursor () 메서드를 호출하여 커서 객체를 생성합니다.

  • 이제 Cursor 클래스의 execute () 메서드를 사용하여 CREATE TABLE 문을 실행합니다.

다음 예에서는 Employee라는 테이블을 만들고 채 웁니다. 그런 다음 where 절을 사용하여 연령 값이 23 미만인 레코드를 검색합니다.

import sqlite3

#Connecting to sqlite
conn = sqlite3.connect('example.db')

#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
cursor.execute('''INSERT INTO EMPLOYEE(
   FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES 
   ('Ramya', 'Rama priya', 27, 'F', 9000)''')

cursor.execute('''INSERT INTO EMPLOYEE
   (FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES 
   ('Vinay', 'Battacharya', 20, 'M', 6000)''')

cursor.execute('''INSERT INTO EMPLOYEE(
   FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES 
   ('Sharukh', 'Sheik', 25, 'M', 8300)''')

cursor.execute('''INSERT INTO EMPLOYEE(
   FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES 
   ('Sarmista', 'Sharma', 26, 'F', 10000)''')

cursor.execute('''INSERT INTO EMPLOYEE(
   FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES 
   ('Tripthi', 'Mishra', 24, 'F', 6000)''')

#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()

산출

[('Vinay', 'Battacharya', 20, 'M', 6000.0)]