Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python과 MySQL로 배우는 SQL LIKE 연산자 활용법

LIKE는 MySQL에서 제공하는 연산자로, WHERE 절과 함께 사용되어 테이블 내에서 특정 패턴을 가진 데이터를 검색할 때 활용됩니다.

예를 들어 테이블에서 'a'로 시작하는 값을 찾고 싶은 경우처럼, 특정 조건의 문자열 패턴을 조회해야 할 때 LIKE 문을 사용하면 됩니다.

와일드카드 문자

LIKE 절에는 두 가지 와일드카드 문자가 사용됩니다.

  • % – 0개, 1개 또는 여러 개의 문자를 나타냅니다.
  • _ (언더스코어) – 정확히 한 개의 문자를 나타냅니다.

패턴 예시

  • LIKE 'a%' – 'a'로 시작하는 모든 값을 검색합니다.
  • LIKE '%a' – 'a'로 끝나는 모든 값을 검색합니다.
  • LIKE '_a%' – 두 번째 자리에 'a'가 위치한 모든 값을 검색합니다. _는 임의의 한 문자를 의미하며, 그 다음 문자는 반드시 'a'여야 하고 그 뒤에는 문자가 더 있어도 없어도 상관없습니다.

기본 문법

SELECT * FROM table_name WHERE column_name LIKE pattern

Python에서 패턴 기반 데이터 검색 절차

  1. MySQL 커넥터를 임포트합니다.
  2. connect() 메서드로 데이터베이스 연결을 설정합니다.
  3. cursor() 메서드로 커서 객체를 생성합니다.
  4. 적절한 MySQL 문법으로 쿼리를 작성합니다.
  5. execute() 메서드로 SQL 쿼리를 실행합니다.
  6. 연결을 종료합니다.

예를 들어 다음과 같은 "Students" 테이블이 있다고 가정해 보겠습니다.

Students

+----------+-----------+
|    name  |    marks  |
+----------+-----------+
|    Rohit |    62     |
|    Rahul |    75     |
|    Inder |    99     |
|   Khushi |    49     |
|    Karan |    92     |
+----------+-----------+

이름이 'K'로 시작하는 학생들을 찾아보겠습니다.

코드 예제

import mysql.connector

db = mysql.connector.connect(
    host="your host",
    user="your username",
    password="your password",
    database="database_name"
)

cursor = db.cursor()

query = "SELECT name FROM Students WHERE name LIKE 'K%'"
cursor.execute(query)

names = cursor.fetchall()
for x in names:
    print(x)

db.close()

위 코드는 테이블에서 'K'로 시작하는 모든 이름을 가져옵니다.

실행 결과

Karan
Khushi

같은 방식으로 위에서 소개한 와일드카드를 다양하게 조합하면 원하는 패턴에 맞춰 데이터를 자유롭게 검색할 수 있습니다.