14のPythonの標準ライブラリデータベース(sqlite3の)

著者:Vamei出典:のhttp://www.cnblogs.com/vameiは、転載を歓迎し、このステートメントを保管してください。ありがとうございます!

 

Pythonは軽量なリレーショナルデータベースSQLiteのが付属しています。SQL言語を使用してこのデータベース。バックエンドのデータベースとしてSQLiteのは、Pythonの建設現場で使用される、または工具データストレージのニーズを作ることができます。SQLiteはまた、HTML5やモバイル端末などの他の分野で幅広いアプリケーションを持っています。sqlite3のPythonの標準ライブラリには、データベースへのインタフェースを提供します。

私は本の書店の分類と価格を格納するための単純なリレーショナルデータベースを作成します。書籍についての情報を記録するために使用されるレコード、書籍のカテゴリ分類:データベースには、2つのテーブルが含まれています。特定のブックに起因する分類は、書籍は、このように、外部キー(外部キー)、テーブルID catogoryの主キーを有します。

          

 

データベースを作成します。

私が最初にすべてのデータベース内のデータベースとテーブルを作成します。()データベースに接続する接続を使用した後、私は、ポインタカーソルを配置することにより、SQLコマンドを実行できるようになります:

Vameiことで#
インポートsqlite3のの

#test.dbという作業ディレクトリ内のファイルです。
CONN = sqlite3.connect( "test.dbという")

C = conn.cursor() 
テーブルの作成
( '' 'TABLEカテゴリCREATE c.executeを
      ''(ID int型主ソートint型キー、名前のテキストを)')
、C。実行( '' 'TABLE帳CREATE 
      (ID int型主キー、
       並べ替えint型、
       名前のテキスト、
       価格本物の、
       カテゴリのint型、
       FOREIGN KEY(カテゴリ)の参照をカテゴリ(ID))' '') 
変更の保存
(conn.commitを)

#データベースとの接続クローズ
()はconn.closeを

上記test.dbというのようなディスク上のSQLiteデータベースファイル、データベース全体を容易に移動またはコピーすることができます。test.dbという当初は存在しない、SQLiteは自動的に新しいファイルを作成します。

実行()コマンドを使用して、私は、データベース内の2つのテーブルを作成するために、2つのSQLコマンドを実行しました。一度、作成され保存され、データベースから切断。

 

データの挿入

上記のデータベースとテーブルを作成し、我々はデータベースの抽象的構造を確立しました。同じデータベースにデータを挿入します。

Vameiにより#
インポートsqlite3の

CONN = sqlite3.connect( "test.dbという")
、C = conn.cursor()

書籍= [(1、1、 'クックレシピ'、3.12、1)、
            (2、3、「Pythonのイントロ」、17.5は、2)、
            (3、2、 'OSイントロ'、13.6、2)
           ] 

#を実行"挿入" 
c.execute( "カテゴリ値(1、1。INSERT INTO、 '台所')")

使用プレースホルダ
c.execute( ")?、?、?(カテゴリ値。INSERT INTO"、[(2、2、 'コンピュータは')]) 
は、複数のコマンドの実行
'(簿価。INSERT INTO?、(c.executemanyを?、 ?、?、?)」、図書)

conn.commit()
はconn.close()

また、データは完全なSQL文を実行するために実行()を使用して挿入することができます。SQL文の代替として「?」を使用してパラメータ、および特定の値は、後続のパラメータで指定されています。SQLインジェクション攻撃に対して、この用法が脆弱ので、ここではPythonのフォーマット文字列は、「%sを」として、使用することはできません。

私はまた、複数の挿入executemany()メソッドを実行する複数のレコードを追加することができます。テーブルの各レコードは、そのような要素の上記書籍テーブルとして、構成要素です。

 

お問い合わせ

クエリの実行後、Pythonはサーキュレータを返し、複数のレコードを取得したチェックが含まれています。あなたは、サイクルを読んでも(提供fetchone sqlite3のを使用することができます)とはfetchAll()メソッドは、レコードを読み取ります。

Vameiことで#
インポートsqlite3の

CONN = sqlite3.connect( 'test.dbという')
C = conn.cursor() 
は、1つのレコード取得
( '並べ替えカテゴリORDERから名前を選択')c.executeを
印刷する(c.fetchone())
印刷(c.fetchone()) 
リストとしてすべてのレコードを取得する
( 'ブックbook.category = 1 SELECT * FROM')c.execute 
プリント(c.fetchall()) 
の反復レコードを
Cの行のために。 :( 'SELECT名、価格ブックORDER FROMソートBY')を実行
    プリント(行)

 

更新、削除

あなたはレコードを更新、またはレコードを削除することができます。

Vameiことで#

CONN = sqlite3.connect( "test.dbという")
C = conn.cursor()

c.execute( 'UPDATEブックSET価格=?WHERE ID =?'、(1000年、1))
c.execute(」本からDELETE WHERE ID = 2' )

conn.commit()
はconn.close()

 

あなたはまた、直接テーブル全体を削除することができます。

c.execute( 'DROP TABLEのブック')

あなたはtest.dbという削除すると、データベース全体が削除されます。

 

概要

sqlite3のちょうどSQLiteのインタフェース。業者はまた、あなたがリレーショナルデータベースのより多くの知識を学ぶ必要がある、SQLiteのデータベースを使用したいです。

おすすめ

転載: www.cnblogs.com/z3286586/p/11332450.html