3つの列にPythonのリストのように9つの異なる値が必要です。 可能ですか? SQLiteにない場合は、別のデータベースエンジンでですか?SQLiteカラムに値のリストを保存することはできますか?
答えて
好きな手段(marshal
は数字や文字列などの基本的な値のリストに適しています)を使ってリスト(または他のPythonオブジェクト)をバイト列、別名「BLOB」;-)にシリアル化する必要があります。& c、非常に一般的な解決策などが必要な場合はcPickle
)、逆フェッチしたときに逆シリアル化します。もちろん、これは基本的にリスト(または他のPythonオブジェクト)を受動的な "ペイロード"として運びます。WHERE
節、ORDER BY
などで有意義に使うことはできません。
リレーショナルデータベースでは、他の正規化された選択肢(「listID」列を含む別の表にリストの項目を格納し、メイン表に「listID」を入れるなど)を優先します。非リレーショナルデータベースは、通常、リレーショナルデータベースには制限がありますが(たとえば、結合がない)、要件に対するより直接的なサポートが提供される可能性があります。
一部のリレーショナルデータベースには、非リレーショナル拡張があります。たとえば、PostGreSQLはarrayのデータ型をサポートしています(Pythonのリストと同じくらい一般的ではありません.PgSQLの配列は本質的に同質です)。
一般的には、リストを文字列化して(repr()を使用して)、文字列を保存します。データベースから文字列を読み込むときは、eval()を使ってリストを再作成します。ただし、ユーザが生成したデータがカラムに入ることがないか、eval()がセキュリティ上のリスクであることは確かですが、注意してください。
あなたの質問はわかりにくいです。ここにもう一度あります:
3列にはPythonのリストのように9つの異なる値が必要です。出来ますか? SQLiteにない場合は、別のデータベースエンジンでですか?
私はあなたが尋ねていると思います:9つの異なる値のPythonリストを取り、値をデータベースの特定の列の下に保存することは可能ですか?
この質問に対する回答は「はい」です。自分でSQLコードを書くのではなく、Python ORMライブラリを使うことをお勧めします。この例のコードはAutumn使用しています:
import autumn
import autumn.util
from autumn.util import create_table
# get a database connection object
my_test_db = autumn.util.AutoConn("my_test.db")
# code to create the database table
_create_sql = """\
DROP TABLE IF EXISTS mytest;
CREATE TABLE mytest (
id INTEGER PRIMARY KEY AUTOINCREMENT,
value INTEGER NOT NULL,
UNIQUE(value)
);"""
# create the table, dropping any previous table of same name
create_table(my_test_db, _create_sql)
# create ORM class; Autumn introspects the database to find out columns
class MyTest(autumn.model.Model):
db = my_test_db
lst = [3, 6, 9, 2, 4, 8, 1, 5, 7] # list of 9 unique values
for n in lst:
row = MyTest(value=n) # create MyTest() row instance with value initialized
row.save() # write the data to the database
実行このコードは、その後のPythonを終了し、sqlite3 my_test.db
を実行します。そして、SQLiteの内部で、このSQLコマンドを実行します。ここでselect * from mytest;
は結果である:
1|3
2|6
3|9
4|2
5|4
6|8
7|1
8|5
9|7
この例では、1つのリストから値を取り出して、データベースから1列を移入するための値を使用しています。追加の列を追加して列に追加することも可能です。
これがあなたが探している回答でない場合は、明確にするためにあなたの要求を言い換えてください。
P.S.この例ではautumn.util
を使用しています。現在の秋のリリースに含まれているsetup.py
は、正しい場所にutil.py
をインストールしません。あなたは手で秋の設定を完了する必要があります。
SQLAlchemyやDjangoのORMなど、より成熟したORMを使用できます。しかし、私は本当に秋、特にSQLiteを好きです。
- 1. サーバにsqliteデータベースをアンドロイドで保存することはできますか?
- 2. SQLiteに値を保存または選択できません
- 3. WindowsとOS XでSQLiteデータベースをどこに保存できますか?
- 4. Settings.settingsにキータイプを保存することはできますか?
- 5. ChromeはSQLiteデータベースをどこに保存しますか?
- 6. NSUserDefaultでUIWebViewを保存することはできますか?
- 7. SQLiteがカラムを見つけることができません
- 8. android sqliteにlistviewのedittextの値を保存するには?
- 9. 値を保存することができません
- 10. 私はSQLiteテーブルのintカラムを減らすことができます
- 11. Excelファイルを保存するときにセルに値を割り当てることはできますか?
- 12. リストの値をPythonで保存する
- 13. このタイプのデータをRedisに保存することはできますか?
- 14. DWM_THUMBNAILイメージを保存することはできますか?
- 15. SQLiteデータベースにアンドロイドでカラムを動的に保存するにはどうすればいいですか?
- 16. どうすればsqliteのオーディオファイルを保存できますか?
- 17. SQLite - 単一の表のセルにファイルのリストを保存する
- 18. カラムのデータ型がdoubleのカラムにnull値を挿入することはできますか?
- 19. tvOSアプリを保存することはできませんか?
- 20. イメージをsqliteに保存するには?
- 21. JSiteをSQLiteに保存するには
- 22. Python Dict値をSQLiteモデルに保存するには?
- 23. sqliteの値をカーソルなしでチェックすることはできますか? - Android
- 24. SQLiteデータベースファイルをどこに保存しますか?
- 25. PythonでGoogle App EngineのMemcacheにリストを保存することはできますか?
- 26. カラムの値に基づいてテーブルに含めることができる行の数を制限する - SQLite
- 27. ユーザーが更新してリストに表示できる値オブジェクトを保存する場所はどこですか?
- 28. アンドロイドのSqliteデータベースにデータを保存できませんか?
- 29. データベースのカラム値をjavascript変数に保存する
- 30. 私のウェブサイトにクライアントのウェブサイトを保存することはできますか
ありがとうございました。私は 'WHERE'節で値を使う必要があるので、別のテーブルを持つようにデータベースを再設計すると思います。 – john2x