あなたの習慣について教えてください!!

c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
すると、date, trans, symbol, qty, price等のフィールドが用意されます。

c.execute("SELECT * FROM stocks")

すると、その登録内容を得ることが出来ます。

ところで、登録内容を得る前に、選ばれる対象となる"date","trans", ...等のフィールド名を得る方法はありませんか。

環境はWindows、Python 2.7です。

A 回答 (2件)

cがsqlite3.Cursorだとして。



c.execute("SELECT * FROM stocks")
に成功した後で、c.descriptionを調べることでわかります。
http://docs.python.jp/2/library/sqlite3.html#sql …

r=c.fetchione()
等としたときの r は sqlite3.Row のオブジェクトになります。
http://docs.python.jp/2/library/sqlite3.html#row
Rowにはkeysメソッドがあります
http://docs.python.jp/2/library/sqlite3.html#sql …

もし、簡単な参考書とかしか読んでいないのなら、公式マニュアルも読むことをお勧めします。


> 最初のRecord Setが(date,qty) = ("2014/12/1", 5)の場合

この例は「登録内容を得た後」だと思うのですが。
前と後、どちらなのでしょうか?

この回答への補足

成功しました。

ありがとうございました。

補足日時:2014/12/30 07:30
    • good
    • 0
この回答へのお礼

返答ありがとうございます


>この例は「登録内容を得た後」だと思うのですが。
>前と後、どちらなのでしょうか?

ネット上の例を使ってスクリプトを書いています。SQL初心者なので用語の使い方から不適切かもしれません。

(1)
CREATE TABLEして
INSERT INTOして登録します
コミットしてデータベース作成を完了します。

(2)
データベースを開いて
SELECT文を実行します
上記SELECT文にて「登録内容を得た後」に
SELECT文で得られたフィールドの名前を得たい ←ここです

教えてもらった場所を、今から調べてみます。

お礼日時:2014/12/30 07:13

PRAGMA table_info('テーブル名');


で指定したテーブルのフィールドの情報を取得できます。
取得した情報の意味はこちらを参照してください。
http://program.station.ez-net.jp/special/sql/sql …
    • good
    • 0
この回答へのお礼

返答ありがとうございます


私の説明に不明確な部分がありました。

次はJavaScript、ODBCでの例です。

var rs = cn.Execute("SELECT date, qty FROM stocks;")

成功し、最初のRecord Setが(date,qty) = ("2014/12/1", 5)の場合は

rs.Fields.Count = 2
rs.Fields(0).Name = "date"
rs.Fields(1).Name = "qty"
rs.Fields(0).Value = "2014/12/1"
rs.Fields(1).Value = "5"

となります。
この、
  JavaScript、ODBCでのNameプロパティに対応するものが、
  Python、SQliteで存在するのか、存在するとしてその方法を知りたいです。

SELECT命令で、選ぶフィールドを指定しているので、必要ないと思うかもしれませんが、お願いします。

お礼日時:2014/12/30 04:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す