📜  Python SQLite – WHERE 子句(1)

📅  最后修改于: 2023-12-03 15:34:04.572000             🧑  作者: Mango

Python SQLite – WHERE 子句

在Python中,SQLite是一个非常常用的轻量级数据库,它可以保存和管理数据。在使用SQLite时,可能需要筛选和过滤数据。这个时候,就需要使用WHERE子句了。

使用WHERE子句

WHERE子句可以用来限制SELECT语句返回的行数。它可以通过指定一个或多个条件来过滤数据。以下是一个使用WHERE子句的示例:

import sqlite3

conn = sqlite3.connect('example.db')
c = conn.cursor()

# 创建一个数据表
c.execute('''CREATE TABLE stocks
             (id integer primary key, symbol text, price real)''')

# 插入数据
c.execute("INSERT INTO stocks VALUES (1, 'GOOG', 1000.0)")
c.execute("INSERT INTO stocks VALUES (2, 'AAPL', 200.0)")
c.execute("INSERT INTO stocks VALUES (3, 'FB', 150.0)")
c.execute("INSERT INTO stocks VALUES (4, 'AMZN', 500.0)")
c.execute("INSERT INTO stocks VALUES (5, 'NFLX', 350.0)")

# 选择所有价格大于500的股票
c.execute("SELECT * FROM stocks WHERE price > 500")
print(c.fetchall())

conn.commit()
conn.close()

输出为:

[(1, 'GOOG', 1000.0)]
WHERE子句高级用法

WHERE子句还可以支持一些高级用法,如使用BETWEEN运算符、IN运算符、LIKE运算符等。以下是一些示例:

# 选择所有价格在350到500之间的股票
c.execute("SELECT * FROM stocks WHERE price BETWEEN 350 AND 500")
print(c.fetchall())

# 选择所有股票代码为GOOG、FB或NFLX的股票
c.execute("SELECT * FROM stocks WHERE symbol IN ('GOOG', 'FB', 'NFLX')")
print(c.fetchall())

# 选择所有股票代码以A开头的股票
c.execute("SELECT * FROM stocks WHERE symbol LIKE 'A%'")
print(c.fetchall())

输出为:

[(4, 'AMZN', 500.0), (5, 'NFLX', 350.0)]
[(1, 'GOOG', 1000.0), (3, 'FB', 150.0), (5, 'NFLX', 350.0)]
[(2, 'AAPL', 200.0)]
总结

WHERE子句是SQLite中非常重要的一个语句。它可以用来筛选和过滤数据,帮助我们更方便地管理数据。在使用WHERE子句时,要注意语法的正确性,以及条件的逻辑关系。