Maison  >  Article  >  développement back-end  >  Comment utiliser la base de données SQLite en Python

Comment utiliser la base de données SQLite en Python

王林
王林avant
2023-05-11 08:25:061851parcourir

SQL (Structured Query Language) est un langage général de requête de base de données. SQL dispose de fonctions de définition, d'exploitation et de contrôle des données et peut effectuer tout le travail de la base de données. Lorsque vous utilisez le langage SQL, il vous suffit de dire à l'ordinateur « quoi faire » sans lui dire « comment le faire ».

Le langage SQL peut être utilisé de deux manières. L'une consiste à l'utiliser de manière interactive directement en mode commande ; l'autre consiste à l'intégrer dans les langages principaux tels que C/C++ et Python.

Connaissances préliminaires

Création et connexion de la base de données SQLite

La création et la connexion de la base de données SQLite sont divisées en trois étapes :

(1) Module d'importation

import sqlite3
#或者:
from sqlite3 import dbapi2       #导入sqlite3模块的dbapi2接口模块

(2) Créer une base de données à l'aide de la méthode de connexion

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

(3) Objet de connexion proche

connection.close() 
#关闭连接,更新数据库文件

L'instruction SQL crée une table de données

Une table est une collection de données relationnelles stockées dans une base de données. Une base de données contient généralement plusieurs tables, telles qu'une table d'étudiant, une table de classe, une table d'enseignant, etc. association de clé externe.

En SQL, la structure syntaxique de création d'une table à l'aide de l'instruction create est la suivante :

create table 表名(字段1,…,字段n)

Par exemple, créer une table mytb :

create table if not exists mytb( xm char, cj real, kc text )

Le nom de la table est mytb IF NOT EXISTS signifie que si la table de données mytb ; n'existe pas dans la base de données, créez la table ; Si la table de données existe déjà, ne faites rien

xm char, cj real, kc text signifie que la table de données a 3 champs, xm (nom) est un type chaîne, cj ; (grade) est un type de nombre à virgule flottante, kc(course) est une chaîne de texte.

SQLite3 prend en charge les types de données suivants :

null(值=空)、integer(整数)、real(浮点数)、text(字符串文本)、blob (bloc de données binaires).

Méthodeexecute()

En Python, nous pouvons utiliser la méthodeexecute pour exécuter une instruction SQL

conn.execute('create table if not exists mytb( xm char, cj real, kc text )')

conn est l'objet de connexion. Le paramètre dans la méthodeexecute() est une instruction SQL, le type est une chaîne

Insérer un enregistrement.

(1) L'instruction SQL pour insérer des enregistrements

Le format de syntaxe est le suivant :

insert into 表名 [字段名] values [常量]

Par exemple :

insert into Persons values ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')

(2) Utilisez execute() pour exécuter l'instruction SQL

cur.exceute(sql语句)

(3) Soumettez la transaction

conn.commit() #提交事务,将数据写入文件,保存到磁盘中。

Interrogez l'instruction SQL

De "table" Interrogez la "colonne cible" qui satisfait l'expression conditionnelle dans

SELECT 目标列 FROM 表 [WHERE 条件表达式]

Par exemple, interrogez les noms et l'âge des étudiants de moins de 20 ans :

select sname age from student where age<20

Par exemple, interrogez tous les enregistrements de la table :

select * from student

fetchall()

Renvoyer plusieurs enregistrements Enregistrements (lignes), s'il n'y a aucun résultat, renvoyer vide ()

table SQLite_master

Chaque base de données SQLite a une table appelée sqlite_master, qui sera créé automatiquement.

sqlite_master est une table spéciale qui stocke les méta-informations de la base de données, telles que la table, l'index, la vue et le déclencheur. Les informations associées peuvent être interrogées via select.

select name,sql from sqlite_master where type=&#39;table&#39;

Cette instruction est utilisée pour interroger le nom de la table de données dans la base de données et l'instruction SQL pour créer la table

Mettre à jour les enregistrements

Instructions SQL pour mettre à jour les enregistrements :

UPDATE 表名 SET 列名=表达式… [WHERE 条件]

Lorsque la "condition" est vraie, changer la valeur d'une colonne Pour les "expressions" telles que :

update student set cj=90 where xh="001"

Vous pouvez changer la note de l'élève n°001 en 90

Supprimer les enregistrements

Instructions DROP TABLE et DELETE :

(1) Supprimer tous les enregistrements dans le table de données

DELETE FROM <表名>

Par exemple, supprimez la table des élèves

delete from student

(2) Supprimez les enregistrements

DELETE FROM <表名> WHERE <条件>

Par exemple, supprimez l'enregistrement dont le numéro de collège Niveau 1 : Créer et connecter le fichier de base de données

La tâche de ce niveau : Créez et connectez la base de données mytest.db dans le répertoire courant.

Analyse du code

delete from student where xh=&#39;001&#39;

Niveau 2 : Créer une table de données

Tâche dans ce niveau : Créer ou ouvrir un exemple de table de données.

Analyse du code

DROP TABLE 表名

Niveau 3 : Insérer des enregistrements

La tâche de ce niveau : Créer un fichier de base de données sqlite3 mytest.db, puis créer une table de données mytb.db et insérer trois lignes d'enregistrements dans la table.

Analyse du code

drop table student

Niveau 4 : interroger les enregistrements

La tâche de ce niveau : concevoir un programme pour interroger tous les enregistrements de la table de données mytb dans le fichier de base de données existant myfile.db et interroger la structure de la table de données.

Analyse du code

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

Niveau 5 : Mettre à jour et supprimer des enregistrements

Tâche de ce niveau : Mettre à jour et supprimer des enregistrements dans la base de données sqlite

Analyse de code

#(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()

Niveau 6 : Fonctionnement complet de la base de données de livres

Tâche de ce niveau : Créez la base de données mybook.db dans SQLite ; créez la table de données mytb dans la base de données ; définissez des champs tels que isbn (texte), titre du livre (texte), prix (réel), etc. dans la table et insérez des enregistrements.

Analyse du code

#(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()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer