
2022/4/28
PCにpythonインストールし本とネットで勉強始め、データベースが扱えるというので
sqlightでDB作成、テーブル作成、商品マスタと販売テーブルをリンクして
品名別の売り上げと総合計出すところまで来ました。
クエリー文が桁位置揃えなど見やすい形に作っても機能することに感動、これなら見やすい。
これを変数に代入してクエリー実行できる。ハッピー!
出力は、今のところ品種別タプルです。
勉強中なのでごく簡単なモデル。品種数3つのマスター(ID 品名 単価、売り上げは品種IDと個数だけ。
それでも join sum 使って売り上げ表や、品種別売り上げ合計数・売上合計金額を出力できました。
MicrosoftのDBソフトのaccessでは、
作成したクエリーを次のクエリー作成の材料(テーブルとクエリー同等)に使え、
ブロック構造的に目的のプログラムができ大変便利に使えています。
python-sqlightでは、そのような使い方はできないのでしょうか?
もしできなければ、クエリー結果を一旦それ用のテーブルのデータ全削除し、データとして入れ込んでテーブルを作り、
sqlightの機能としてのクエリー作成実行し、不要になったらデータやDBを削除する操作が必要に。
どなたか、ご存じでしたらご教示ください。
No.1ベストアンサー
- 回答日時:
##ご教示のサイトで、クエリー結果をview tabelとして再利用できるようになりました。。
##db接続解除後にviewを削除するCREATE TEMPORARY VIEWは便利。
##この場合、sqlite_masterで type = 'view'view では検索できない
##使わないと次回作成済みでエラー
##DROP VIEW使わなくても、次回作成できる。ただ、利用できない。
作ったpythonは下記です。
import sqlite3
dbname = "test.db" #対象DBを宣言
conn = sqlite3.connect(dbname)
cur = conn.cursor() #sql文を実行する窓口cursor
##クエリー結果を臨時使用のtemp viewテーブル view_tにする
cur.execute("""CREATE TEMPORARY VIEW view_t as SELECT * FROM hinmei_master; """)
#注: TEMPORARY指定しないとviewが実テーブル?登録され、再作成するとエラーに
##dbの中にできたviewの名前とviewを作成したsql文を表示する
cur.execute("""select name, sql from sqlite_master where type = 'view';""")
for row in cur.fetchall():
print(row)
print("CREATE TEMPORARY VIEWの場合は、sqlite_masterのviewには存在しない")
##できたview tableの内容を表示する
cur.execute("""SELECT * FROM view_t; """)
for row in cur.fetchall():
print(row)
#cur.execute("DROP VIEW view_t;")
conn.commit() #データベースに行った変更を確定
conn.close() #データベース接続を切断し閉じる
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- その他(データベース) Microsoft Accessについて 1 2022/06/06 16:20
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
- IT・エンジニアリング 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
2つのテーブルをLIKE演算子のよ...
-
SQLサーバに対するSQL文で抽出...
-
テーブル名が可変の場合のクエ...
-
同一テーブル内での比較(最新...
-
SQLで、Join句で結合したテ...
-
(SQL)日数の計算
-
Accessの構成をコピーしたい
-
データベースについて(mysql)
-
メインデータと最新サブデータ...
-
重複データを除いてカウントしたい
-
結合したテーブルをSUMしたい
-
副問合せを使わずにUNIONと同様...
-
MYSQL5.0 SQLについて...
-
SQLのテーブルにないデータの出力
-
SQLで複数のテーブルをつないで...
-
グループごとの一番小さい値を...
-
スタート値、エンド値
-
親子に分けた方が良い? テー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
既存データをINSERT文にして出...
-
同一テーブル内での比較(最新...
-
SQLサーバに対するSQL文で抽出...
-
副問合せを使わずにUNIONと同様...
-
結合したテーブルをSUMしたい
-
テーブル名が可変の場合のクエ...
-
PRIMARY KEYのコピー
-
2つのテーブルをLIKE演算子のよ...
-
ACCESSのVBAにてExcelに行...
-
DB2のSQLコマンドについて
-
Excelでしりとりを作る方法
-
ExcelのMatch関数のようなもの...
-
改行を含んだデータのインポート
-
ExcelのVLOOKUP関数の動作をMyS...
-
ADO+ODBCでテーブルに接続する...
-
データ無し時は空白行にしたい...
-
Access特定のテーブルを編集不...
おすすめ情報
教えてgoo!で、回答者から教えてもらった
クエリーで作成する仮想テーブル?であるviewを使えば、
accessでできるクエリーをテーブル同様に、次のクエリーの材料に使えることが分かりました。
ただ、pythonとsqlightで入門編のいろいろな本やネット解説では、viewに触れているものがほとんど見当たりません。
accessでの経験では、クエリー結果を次のクエリー使えないと、実質使えないので、この機能は重要だと思っていました。
python上のsqlightで、これができることが分かったので、十分に「使える」と思います。