こんにちは。野中やすおです。
最近ようやく選挙が終わったのですが、ブランクがだいぶ空き、さっぱりコーディングを忘れてしまっているのでリハビリがてらPythonを使って、sqliteでデータベースを操作をしてみます。
CREATE、INSERT、UPADATE、ALTER、DELTE、DROP、DELTE、SELECTの順にメモしてます。
CREATE TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動<br /> dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 cur = conn.cursor() # SQLiteを操作<br /> query = "CREATE TABLE customers(customer_id INTEGER PRIMARY KEY AUTOINCREMENT,customer_name STRING,customer_unit_price INTEGER)" cur.execute(query) # クエリを実行 conn.commit() # トランザクションの結果を確定 conn.close() # 接続を切断 |
INSERT TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動 dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 cur = conn.cursor() # SQLiteを操作 query = "INSERT INTO customers(customer_name,customer_unit_price) VALUES('顧客A',1000)" # customer_name、customer_unit_price列を追加 cur.execute(query) # クエリを実行 conn.commit() # トランザクションの結果を確定 conn.close() # 接続を切断 |
UPDATE TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動 dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 cur = conn.cursor() # SQLiteを操作 query = "UPDATE customers SET customer_unit_price=2000 WHERE customer_id=1" # customer_unit_price=1000⇨2000に更新 cur.execute(query) # クエリを実行 conn.commit() # トランザクションの結果を確定 conn.close() |
ALTER TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動 dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 cur = conn.cursor() # SQLiteを操作 query = "ALTER TABLE customers ADD customer_unit_quantity INTGER" # customer_unit_quantity列を追加 cur.execute(query) # クエリを実行 conn.commit() # トランザクションの結果を確定 conn.close() |
DELETE TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動 dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 cur = conn.cursor() # SQLiteを操作 query = "DELETE FROM customers WHERE customer_id=1" # customer_id=1の行を削除 cur.execute(query) # クエリを実行 conn.commit() # トランザクションの結果を確定 conn.close() |
DROP TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動 dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 <br />cur = conn.cursor() # SQLiteを操作 query = "DROP TABLE customers" # customersテーブルを削除<br /> cur.execute(query) # クエリを実行<br /> conn.commit() # トランザクションの結果を確定 conn.close() |
SELECT TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import os import sqlite3 main_path = os.path.dirname(os.path.abspath(__file__)) # 絶対パス os.chdir(main_path) # 絶対パスに移動 dbname = "test.db" # データベースを設定 conn = sqlite3.connect(dbname) # データベースに接続 cur = conn.cursor() # SQLiteを操作 query = "SELECT customer_id, customer_name, customer_unit_price FROM customers WHERE customer_name='顧客A'" # customersテーブル選択 cur.execute(query) # クエリを実行 print(cur.fetchall()) # [(1, '顧客A', 1000)]<br /> conn.commit() # トランザクションの結果を確定 conn.close() |
以上、Pythonを使ってsqliteでデータベースを操作方法をまとめてみました。