Comment utiliser la base de données SQLite en Python

王林
Libérer: 2023-05-11 08:25:06
avant
1856 Les gens l'ont consulté

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接口模块
Copier après la connexion

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

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

(3) Objet de connexion proche

connection.close() 
#关闭连接,更新数据库文件
Copier après la connexion

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)
Copier après la connexion

Par exemple, créer une table mytb :

create table if not exists mytb( xm char, cj real, kc text )
Copier après la connexion

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 )')
Copier après la connexion

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 [常量]
Copier après la connexion

Par exemple :

insert into Persons values ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
Copier après la connexion

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

cur.exceute(sql语句)
Copier après la connexion

(3) Soumettez la transaction

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

Interrogez l'instruction SQL

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

SELECT 目标列 FROM 表 [WHERE 条件表达式]
Copier après la connexion

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

select sname age from student where age<20
Copier après la connexion

Par exemple, interrogez tous les enregistrements de la table :

select * from student
Copier après la connexion

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;
Copier après la connexion

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 条件]
Copier après la connexion

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

update student set cj=90 where xh="001"
Copier après la connexion

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 <表名>
Copier après la connexion

Par exemple, supprimez la table des élèves

delete from student
Copier après la connexion

(2) Supprimez les enregistrements

DELETE FROM <表名> WHERE <条件>
Copier après la connexion

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;
Copier après la connexion

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 表名
Copier après la connexion

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
Copier après la connexion

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**********#
Copier après la connexion

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()
Copier après la connexion

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()
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal