Python で SQLite データベースを使用する方法

王林
リリース: 2023-05-11 08:25:06
転載
1857 人が閲覧しました

SQL (構造化クエリ言語) は、一般的なデータベース クエリ言語です。 SQL にはデータ定義、データ操作、データ制御機能があり、データベースのすべての作業を完了できます。 SQL 言語を使用する場合、コンピュータに「どのように行うか」を指示する必要はなく、「何を行うか」を指示するだけで済みます。

SQL 言語を使用するには 2 つの方法があり、1 つはコマンド モードで直接対話的に使用する方法、もう 1 つは C/C や Python などの主要な言語に埋め込む方法です。

予備知識

sqliteデータベースの作成と接続

sqliteデータベースの作成と接続は3つのステップに分かれています:

(1)インポートモジュール

import sqlite3
#或者:
from sqlite3 import dbapi2       #导入sqlite3模块的dbapi2接口模块
ログイン後にコピー

(2) connect メソッドを使用してデータベースを作成します

connection=sqlite3.connect(filename) 
#filename为数据库文件名,如果该文件存在则打开该数据库,如果不存在则创建一个新的数据库文件。 
#该方法返回一个数据库连接对象
ログイン後にコピー

(3) 接続オブジェクトを閉じます

connection.close() 
#关闭连接,更新数据库文件
ログイン後にコピー

SQL ステートメントを使用してデータ テーブルを作成します

テーブルはデータベース内の記憶関係です データの集合です。データベースには通常、学生テーブル、クラステーブル、教師テーブルなどの複数のテーブルが含まれます。テーブルは外部キーによって関連付けられます。

SQL では、create ステートメントを使用してテーブルを作成する構文構造は次のとおりです:

create table 表名(字段1,…,字段n)
ログイン後にコピー

たとえば、mytb テーブルを作成します:

create table if not exists mytb( xm char, cj real, kc text )
ログイン後にコピー

テーブル名is mytb; IF NOT EXISTS はデータベース mytb データ テーブルが存在しない場合はテーブルを作成します; データ テーブルがすでに存在する場合は何もしません;

xm char、cj real、kc text は、データテーブルには 3 つのフィールドがあり、xm ( name) は文字列型、cj(grade) は float 型、kc(course) はテキスト文字列です。

SQLite3 はデータ型をサポートします:

null (値 = null)、integer (整数)、real (浮動小数点)ポイント番号)、text (文字列テキスト)、blob (バイナリ データ ブロック)。

execute() メソッド

Python では、execute メソッドを使用して SQL ステートメントを実行できます

conn.execute('create table if not exists mytb( xm char, cj real, kc text )')
ログイン後にコピー

conn は接続オブジェクトです。execute() メソッドのパラメータは SQL ステートメントです。型は文字列です

Insert Record

(1) レコードを挿入する SQL ステートメント

構文形式は次のとおりです:

insert into 表名 [字段名] values [常量]
ログイン後にコピー

例:

insert into Persons values ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
ログイン後にコピー

(2) SQL ステートメントを実行するには、execute() を使用します。

cur.exceute(sql语句)
ログイン後にコピー

(3) トランザクションを送信します。

conn.commit() #提交事务,将数据写入文件,保存到磁盘中。
ログイン後にコピー

SQL ステートメントをクエリします。

「テーブル」「対象列」から条件を満たす式をクエリします。

SELECT 目标列 FROM 表 [WHERE 条件表达式]
ログイン後にコピー

たとえば、20 歳未満の学生の名前と年齢をクエリします。

select sname age from student where age<20
ログイン後にコピー

たとえば、テーブル内のすべてのレコードをクエリします。

select * from student
ログイン後にコピー

fetchall( )

複数のレコード (行) を返します。結果がない場合は、空の ()

sqlite_master を返します。 table

すべての SQLite データベースには sqlite_master というテーブルがあり、このテーブルは自動的に作成されます。

sqlite_master は、テーブル、インデックス、ビュー、トリガーなどのデータベースのメタ情報を格納する特別なテーブルであり、関連情報は select を通じてクエリできます。

select name,sql from sqlite_master where type=&#39;table&#39;
ログイン後にコピー

このステートメントは、データベース内のデータ テーブルの名前をクエリするために使用され、SQL ステートメントはテーブルを作成するために使用されます

レコードの更新

レコードを更新するための SQL ステートメント:

UPDATE 表名 SET 列名=表达式… [WHERE 条件]
ログイン後にコピー

「条件」が成立したら、列の値を「式」に変更します例:

update student set cj=90 where xh="001"
ログイン後にコピー

生徒番号001番の得点を90#に変更できます

##レコードの削除

DROP TABLE および DELETE ステートメント:

(1) データ テーブル内のすべてのレコードを削除します

DELETE FROM <表名>
ログイン後にコピー

たとえば、student テーブルを削除します

delete from student
ログイン後にコピー

(2) レコードの削除

DELETE FROM <表名> WHERE <条件>
ログイン後にコピー

たとえば、中学校番号のレコードを削除します #例題

##レベル 1: データベース ファイルの作成と接続

このレベルのタスク: 現在のディレクトリに mytest.db データベースを作成して接続します。

コード分析

delete from student where xh=&#39;001&#39;
ログイン後にコピー

レベル 2: データ テーブルの作成

このレベルのタスク: データ テーブルのサンプルを作成または開きます。

コード分析

DROP TABLE 表名
ログイン後にコピー

レベル 3: レコードの挿入

このレベルのタスク: sqlite3 データベース ファイル mytest.db を作成し、データ テーブル mytb.db を作成します。 、「テーブルに 3 行のレコードを挿入する」に進みます。

コード分析

drop table student
ログイン後にコピー

レベル 4: レコードのクエリ

このレベルのタスク: 既存のデータベース ファイル myfile 内のデータ テーブル mytb 内のすべてのレコードをクエリするプログラムを設計します。 .db を実行し、データ テーブル構造をクエリします。

コード分析

def return_values():
#***********Begin**********#
    #(1)导入内置sqlite3模块
    import sqlite3
    #(2)创建conn连接对象(在当前路径下建立mytest.db数据库)
    conn = sqlite3.connect("mytest.db")
    #(3)关闭连接
    conn.close()
#***********End**********#
ログイン後にコピー

レベル 5: レコードの更新と削除

このレベルのタスク: sqlite データベース内のレコードの更新と削除

コード分析

#(1)导入sqlite3模块
import sqlite3
#(2)创建conn连接对象,建立mytest.db数据库
conn = sqlite3.connect("mytest.db")
#(3)定义sql语句,创建mytb数据表,表中有三个字段xm、cj、kc,其数据类型分别为char、real、text
sql_demo = "create table if not exists mytb( xm char , cj real , kc text )"
#(4)执行sql语句
conn.execute(sql_demo)
#(5)关闭连接
conn.close()
ログイン後にコピー

レベル 6: ブック データベースの包括的な操作

このレベルのタスク: SQLite でデータベース mybook.db を作成し、データベースにデータ テーブル mytb を作成し、テーブル内で以下を定義します。 isbn (本文)、書籍名 (本文)、価格 (実額) などのフィールドを追加し、レコードを挿入します。

コード分析

#(1)导入sqlite3模块
import sqlite3
#(2)创建数据库文件mytest.db
conn = sqlite3.connect("mytest.db")
#(3)定义一个游标对象
cur = conn.cursor()
#(4)定义创建数据表SQL语句
sql_create = "create table if not exists mytb(xm char,cj real,kc text)"
sql_insert_by = "insert into mytb values (&#39;宝玉&#39;,85,&#39;计算机&#39;)"
sql_insert_dy = "insert into mytb values (&#39;黛玉&#39;,90,&#39;计算机&#39;)"
sql_insert_bc = "insert into mytb values (&#39;宝钗&#39;,80,&#39;数据库&#39;)"
#(5)执行SQL语句,创建数据表mytb
conn.execute(sql_create)
#(6)依次插入3条记录,内容分别为:(&#39;宝玉&#39;,85,&#39;计算机&#39;)、(&#39;黛玉&#39;,92,&#39;计算机&#39;)、(&#39;宝钗&#39;,80,&#39;数据库&#39;)
cur.execute(sql_insert_by)
cur.execute(sql_insert_dy)
cur.execute(sql_insert_bc)
#(7)提交事务
conn.commit()
#(8)关闭连接
cur.close()
conn.close()
ログイン後にコピー

以上がPython で SQLite データベースを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート