カテゴリ: Python 更新日: 2026/03/13

PythonでSQLのLIKE・BETWEEN・INなどの演算子を活用する方法|初心者向け完全ガイド

PythonでSQLのLIKE・BETWEEN・IN などの演算子を活用する方法
PythonでSQLのLIKE・BETWEEN・IN などの演算子を活用する方法

先生と生徒の会話形式で理解しよう

生徒

「PythonでSQLを使って検索しているんですが、条件を細かく指定する方法がよく分かりません…」

先生

「そんなときに便利なのが、SQLの演算子です。LIKEやBETWEEN、INを使うと検索がとても楽になります。」

生徒

「英語ばかりで難しそうですが、初心者でも使えますか?」

先生

「考え方は日常の探し物と同じです。順番に見ていきましょう。」

1. SQL演算子とは何か

1. SQL演算子とは何か
1. SQL演算子とは何か

SQL演算子とは、データベースからデータを取り出すときに使う条件指定の道具です。PythonでSQLデータベース操作を行う場合でも、検索条件はSQL演算子で指定します。

例えば「名前が山で始まる人」や「金額が千円から三千円の間」といった条件を、人に説明するように指定できるのが特徴です。初心者でも、意味を一つずつ覚えれば安心して使えます。

2. LIKE演算子で文字列をあいまい検索する

2. LIKE演算子で文字列をあいまい検索する
2. LIKE演算子で文字列をあいまい検索する

LIKE演算子は、文字列の一部が一致しているデータを探すために使います。完全一致ではなく、「だいたい合っている」データを探すときに便利です。

本棚から「Python」と書かれた本を探すときに、タイトルの一部だけを見て探すようなイメージです。


import sqlite3

conn = sqlite3.connect("sample.db")
cursor = conn.cursor()

cursor.execute("""
SELECT name
FROM users
WHERE name LIKE '山%'
""")

for row in cursor.fetchall():
    print(row[0])

3. パーセント記号とアンダースコアの意味

3. パーセント記号とアンダースコアの意味
3. パーセント記号とアンダースコアの意味

LIKE演算子では、特別な記号を使います。パーセント記号は「何文字でもよい」という意味を持ちます。前に付ければ「後ろが何でもよい」、後ろに付ければ「前が何でもよい」という指定になります。

一方、アンダースコアは「一文字だけ何でもよい」という意味です。これにより、文字数を意識した検索も可能になります。

4. BETWEEN演算子で範囲を指定する

4. BETWEEN演算子で範囲を指定する
4. BETWEEN演算子で範囲を指定する

BETWEEN演算子は、数値や日付などの範囲を指定するときに使います。「以上かつ以下」という条件を、短い言葉で表現できます。

価格帯で商品を探したり、特定の期間のデータを取得したりするときに役立ちます。


cursor.execute("""
SELECT product_name, price
FROM products
WHERE price BETWEEN 1000 AND 3000
""")

for row in cursor.fetchall():
    print(row)

5. IN演算子で複数の候補から選ぶ

5. IN演算子で複数の候補から選ぶ
5. IN演算子で複数の候補から選ぶ

IN演算子は、複数の値の中から一致するものを探す演算子です。「この中のどれかに当てはまるもの」という条件を一度に指定できます。

チェックリストから条件に合うものだけを選ぶような感覚で使えます。


cursor.execute("""
SELECT name
FROM users
WHERE prefecture IN ('東京', '大阪', '愛知')
""")

for row in cursor.fetchall():
    print(row[0])

6. PythonからSQL演算子を使うときの書き方

6. PythonからSQL演算子を使うときの書き方
6. PythonからSQL演算子を使うときの書き方

Pythonでは、SQL文を文字列として書き、データベースに送ります。そのため、演算子の書き方自体はSQLと同じです。

初心者のうちは、SQL文をそのまま書いてからPythonに組み込むと、混乱しにくくなります。

7. 演算子を組み合わせた実践例

7. 演算子を組み合わせた実践例
7. 演算子を組み合わせた実践例

LIKEやBETWEEN、INは組み合わせて使うこともできます。条件を複数指定することで、より絞り込んだ検索が可能になります。

ただし、最初は一つずつ試しながら、結果を確認することが大切です。


cursor.execute("""
SELECT name, price
FROM products
WHERE name LIKE '%本%'
AND price BETWEEN 500 AND 2000
""")

for row in cursor.fetchall():
    print(row)

8. 初心者が混乱しやすいポイント

8. 初心者が混乱しやすいポイント
8. 初心者が混乱しやすいポイント

SQL演算子でよくある間違いは、条件の意味を取り違えることです。特にLIKEの記号の位置や、BETWEENが両端を含む点は注意が必要です。

紙に条件を書き出して、「何を探したいのか」を日本語で確認してからSQLを書くと、理解が深まります。

カテゴリの一覧へ
新着記事
New1
Python
Pythonでセットの要素数を調べる方法(len()の使い方)を初心者向けに解説!
New2
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Python
Pythonでセットを活用してデータをフィルタリングする方法!初心者でもわかるセットの基本と使い方
人気記事
No.1
Java&Spring記事人気No1
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskでAPIを作る基本!初心者向けに仕組みと特徴をやさしく解説
No.6
Java&Spring記事人気No6
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonの文字列操作完全ガイド!結合・分割・検索の基本をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskのSQLAlchemyでフィルタリング検索!filter, filter_byの使い方完全ガイド