>  기사  >  백엔드 개발  >  Python에서 SQLite 데이터베이스를 사용하는 방법

Python에서 SQLite 데이터베이스를 사용하는 방법

王林
王林앞으로
2023-05-11 08:25:061851검색

SQL(Structured Query Language)은 일반적인 데이터베이스 쿼리 언어입니다. SQL에는 데이터 정의, 데이터 연산, 데이터 제어 기능이 있으며 데이터베이스의 모든 작업을 완료할 수 있습니다. SQL 언어를 사용할 때 컴퓨터에게 "어떻게 해야 하는지" 알려주지 않고 "무엇을 해야 하는지"만 알려주면 됩니다.

SQL 언어를 사용하는 방법에는 두 가지가 있습니다. 하나는 명령 모드에서 직접 대화식으로 사용하는 것이고, 다른 하나는 C/C++ 및 Python과 같은 주요 언어에 삽입하는 것입니다.

기본 지식

sqlite 데이터베이스 생성 및 연결

sqlite 데이터베이스 생성 및 연결은 세 단계로 나누어집니다.

(1) 가져오기 모듈

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

(2) 연결 방법을 사용하여 데이터베이스 생성

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

(3) Close Connection 객체

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

SQL 문은 데이터 테이블을 생성합니다

테이블은 데이터베이스에 저장된 관계형 데이터의 모음입니다. 데이터베이스에는 일반적으로 학생 테이블, 수업 테이블, 교사 테이블 등과 같은 여러 테이블이 포함됩니다. 외부 키 연결.

SQL에서 create 문을 사용하여 테이블을 생성하는 구문 구조는 다음과 같습니다.

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

예를 들어 mytb 테이블을 생성하는 경우:

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

테이블 이름이 mytb인 경우 mytb 데이터 테이블이; 데이터베이스에 존재하지 않는 경우 테이블을 생성합니다. 데이터 테이블이 이미 존재하는 경우 아무것도 하지 않습니다.

xm char, cj real, kc text는 데이터 테이블에 3개의 필드가 있음을 의미하며 xm(이름)은 문자열 유형입니다. (grade)는 부동 소수점 숫자 유형이고, kc(course)는 텍스트 문자열입니다.

SQLite3에서 지원되는 데이터 유형은

null(值=空)、integer(整数)、real(浮点数)、text(字符串文本)、blob(바이너리 데이터 블록)입니다.

execute() 메소드

Python에서는 실행 메소드를 사용하여 SQL 문을 실행할 수 있습니다.

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

conn은 연결 객체입니다. Execute() 메소드의 매개변수는 SQL 문이고 유형은 문자열

Insert 레코드입니다.

(1) 레코드를 삽입하는 SQL 문

구문 형식은 다음과 같습니다.

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

예:

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

(2) 실행()을 사용하여 SQL 문을 실행

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 name,sql from sqlite_master where type=&#39;table&#39;

이 문은 데이터베이스의 데이터 테이블 이름을 쿼리하는 데 사용되며, 테이블을 생성하는 SQL 문

Update records

레코드를 업데이트하는 SQL 문:

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

"조건"이 true인 경우, 열 값 변경:

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

학생 번호 001의 성적을 90으로 변경할 수 있습니다

Delete records

DROP TABLE 및 DELETE 문:

(1) 열의 모든 레코드를 삭제합니다. 데이터 테이블

DELETE FROM <表名>

예를 들어 학생 테이블 삭제

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를 생성하고 테이블에 세 개의 레코드 행을 삽입합니다.

코드 분석

drop table student

레벨 4: 레코드 쿼리

이 레벨의 작업: 기존 데이터베이스 파일 myfile.db의 mytb 데이터 테이블에 있는 모든 레코드를 쿼리하고 데이터 테이블 구조를 쿼리하는 프로그램을 설계합니다.

코드 분석

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제