SQLiteは,小規模なデータベースをサクっと作りたいときに使われるデータベースマネジメントシステム(DBMS)のひとつです.
データベースとは
データを登録したり,削除したり,検索したりするシステムのこと.
参照:データベースのきほん
いまさら聞けないデータベースとは?
データベースの種類
- MySQL
- PostgreSQL
- SQLite
- Oracle DB
などがあります.(参照:MySQL、PostgreSQL、SQLite、Oracle DBの比較)
中でも,SQLite3はPythonの標準ライブラリに既に入っていて,機能が少なく,手軽に使えます.
SQLite3の使い方
pythonとは別に,SQLを書く必要があります.
#インポート
import sqlite3
#データベースに接続
filepath = "test2.sqlite"
conn = sqlite3.connect(filepath)
#filepathと同名のファイルがなければ,ファイルが作成されます
#テーブルを作成
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS items")
cur.execute("""CREATE TABLE items(
item_id INTEGER PRIMARY KEY,
name TEXT UNIQUE,
price INTEGER
)""")
conn.commit()
#単発でデータを挿入
cur.execute('INSERT INTO items (name , price) VALUES (?,?)',("Orange", 520))
conn.commit()
#連続でデータを挿入
cur = conn.cursor()
data = [("Mango",770),("Kiwi", 400), ("Grape",800),("Peach",940),("Persimmon",700), ("Banana",400)]
cur.executemany(
"INSERT INTO items (name, price) VALUES (?,?)", data)
conn.commit()
以上でデータベースの構築と,データの登録ができました.conn.commit()
を実行しないと,データベースにコマンドが反映されないことに注意.
全データを表示してみます.
#全データを抽出する
cur = conn.cursor()
cur.execute("SELECT item_id, name, price FROM items")
items_list = cur.fetchall()
items_list
[(1, 'Orange', 520),
(2, 'Mango', 770),
(3, 'Kiwi', 400),
(4, 'Grape', 800),
(5, 'Peach', 940),
(6, 'Persimmon', 700),
(7, 'Banana', 400)]
for文で1つずつ表示してみます.
#全データを抽出する(for文使用)
cur = conn.cursor()
cur.execute("SELECT item_id, name, price FROM items")
items_list = cur.fetchall()
for fr in items_list:
print(fr)
(1, 'Orange', 520)
(2, 'Mango', 770)
(3, 'Kiwi', 400)
(4, 'Grape', 800)
(5, 'Peach', 940)
(6, 'Persimmon', 700)
(7, 'Banana', 400)
検索をかけてみます.
#400-700円のデータを抽出して表示
cur = conn.cursor()
price_range = (400, 700)
cur.execute(
"SELECT * FROM items WHERE price >=? AND PRICE <=?", price_range
)
fr_list = cur.fetchall()
for fr in fr_list:
print(fr)
(1, 'Orange', 520)
(3, 'Kiwi', 400)
(6, 'Persimmon', 700)
(7, 'Banana', 400)
以上