목적의 이 Python SQLite 튜토리얼을 설명하는 방법을 개발하는 파이썬은 데이터베이스 응용 프로그램 SQLite 데이터베이스입니다. Python 에서 SQLite 데이터베이스 작업을 수행하는 방법을 배우게됩니다.
여러분 모두 아시다시피,SQLite 는 비교적 빠르고 서버리스 및 자체 포함,높은 신뢰성의 SQL 데이터베이스 엔진을 구현하는 C 언어 라이브러리입니다. SQLite 는 테스트 환경에서 가장 일반적으로 사용되는 데이터베이스 엔진입니다(SQLite 홈 페이지 참조)., SQLite 는 대부분의 컴퓨터 및 모바일 장치 및 브라우저와 함께 제공됩니다. Python 의 공식 sqlite3 모듈은 SQLite 데이터베이스로 작업하는 데 도움이됩니다.
Python sqlite3 모듈은 Python 데이터베이스 API 사양 v2.0(PEP249)을 준수합니다. PEP249 는 데이터베이스에 액세스하는 데 사용되는 Python 모듈 간의 유사성을 장려하고 유지하도록 설계된 SQL 인터페이스를 제공합니다.,
이 튜토리얼 주로에 초점을 맞추고 있습니다:–
- 연결하 SQLite 데이터베이스에서는 파이썬과를 만드는 SQLite 데이터베이스 테이블
- 다음,우리가 다룰 것입니다 SQLite 데이터 형식이고 그것에 해당하는 파이썬 유형
- 다음,우리가 수행하는 방법에 대해 설명합니다 SQLite CRUD 작업 즉,번 엑스포에서 디지털 데이터 SQLite 사용하는 파이썬
- 다음에,그것은 커버 SQLite 트랜잭션 처리를 만들고 부르 SQLite 기능 및 오류 처리 기술을 개발하는 강력한 python 프로그램 SQLite 데이터베이스
- 그것은 또한 당신이 알고 있을 만들고 관리하는 방법에는 메모리 데이터베이스 및 변환 SQLite 값을 사용자 지정 Python 유형
- 의 백업을 SQLite 데이터베이스 내부에서는 파이썬
보자 각 섹션에서 지금이다.,
Python SQLite Connection
이 섹션에서는 sqlite3 모듈을 사용하여 python 을 통해 SQLite 데이터베이스를 만들고 연결하는 방법을 알 수 있습니다.
SQLite 에 대한 연결을 설정하려면 연결하려는 데이터베이스 이름을 지정해야합니다. 디스크에 이미 존재하는 데이터베이스 파일 이름을 지정하면 해당 파일에 연결됩니다. 그러나 지정된 SQLite 데이터베이스 파일이 존재하지 않으면 SQLite 가 새 데이터베이스를 만듭니다.,
필요에 따라 다음과 같은 단계를 연결하 SQLite
- 사용하는
connect()
방법 sqlite3 모듈과 통과하는 데이터베이스 이름입니다. - connect 메소드에서 반환 된 연결 객체를 사용하여 커서 객체를 만들어 Python 에서 SQLite 쿼리를 실행합니다.
- 작업이 완료되면 커서 객체와 SQLite 데이터베이스 연결 객체를 닫습니다.
- Catch 데이터베이스 예외 이 연결 프로세스 중에 발생할 수 있는 경우.
다음 파이썬 프로그램은 새 데이터베이스 파일”SQLite_Python 을 만듭니다.,db”및 SQLite 버전 세부 정보를 인쇄합니다.
Python 에서 SQLite 에 연결 한 후 다음 출력을 가져와야합니다.
Database created and Successfully Connected to SQLiteSQLite Database Version is: The SQLite connection is closed
이해하 SQLite 연결 코드를 자세히
가져오기 sqlite3
- 이라인 수입 sqlite3 모듈에서 우리의 프로그램입니다. Sqlite3 모듈에 정의 된 클래스와 메소드를 사용하여 SQLite 데이터베이스와 통신 할 수 있습니다.
sqlite3.,connect()
-
connect()
메소드를 사용하여 SQLite 데이터베이스에 대한 연결을 만들 수 있습니다. 이 메서드는 SQLite 연결 개체를 반환합니다. - 연결 객체는 스레드로부터 안전하지 않습니다. sqlite3 모듈은 스레드 간의 연결 공유를 허용하지 않습니다. 그래도 그렇게하려고하면 런타임에 예외가 발생합니다.
-
connect()
메서드는 다양한 인수를 허용합니다. 이 예제에서는 연결할 데이터베이스 이름 인수를 전달했습니다.이 경우 두 개의 커서가 있습니다.,cursor()- 사용하여 연결 객체를 만들 수 있습용할 수 있도록 실행 SQLite 명령/를 통해 쿼리를 Python.
- 단일 연결 객체에서 원하는만큼 커서를 만들 수 있습니다. 연결 객체와 마찬가지로이 커서 객체도 스레드로부터 안전하지 않습니다. sqlite3 모듈은 스레드간에 커서 공유를 허용하지 않습니다. 그래도 그렇게하려고하면 런타임에 예외가 발생합니다.
이 후 데이터베이스 버전을 얻기 위해 SQLite 쿼리를 만들었습니다.커서를보기 만하면됩니다.,execute()
- 커서의 execute 메소드를 사용하여 파이썬에서 데이터베이스 작업이나 쿼리를 실행할 수 있습니다.
cursor.execute()
방법는 SQLite 쿼리 매개변수로 반환합니다 resultSet 즉,아무것도 하지만 데이터베이스 행이 있습니다. - 우리는 우리를 검색할 수 있습 질의 결과에서 resultSet 를 사용하여 커서 같은 방법
- 우리의 예에서,우리는 실행하는
SELECT version();
쿼리를 가져오 SQLite 버전입니다.,
try-except-finally block:이 과정에서 발생할 수있는 SQLite 데이터베이스 예외 및 오류를 잡기 위해 모든 코드를 try-except block 에 배치했습니다.
- 사용하는
sqlite3.Error
등의 sqlite3 모듈,우리가 처리할 수 있는 모든 데이터베이스에 오류가고 예외가 발생할 수 있는 작업하는 동안 SQLite 에서 Python. - 이 접근법을 사용하여 응용 프로그램을 견고하게 만들 수 있습니다.
sqlite3.Error
클래스는 오류를 자세히 이해하는 데 도움이됩니다. 오류 메시지와 오류 코드를 반환합니다.
커서.닫기()및 연결.,close()
- 그것은 항상 좋은 연습을 가까이 커서와 연결 객체를 한번의 작업이 완료를 피하기 위해 데이터베이 문제입니다.
Python 에서 SQLite 테이블 만들기
이 섹션에서는 Sqlite3 모듈을 사용하여 Python 에서 SQLite 데이터베이스에 테이블을 만드는 방법을 배웁니다. 테이블 문을 만드는 것은 DDL 쿼리는 파이썬에서 그것을 실행하는 방법을 볼 수 있습니다.
이 예에서는”SQLite_Python 안에”SqliteDb_developers”테이블을 만들고 있습니다.db”데이터베이스.,
파이썬에서 SQLite 로 테이블을 만드는 단계:–
- a
sqlite3.connect()
를 사용하여 SQLite 에 연결하십시오. 이 기사의 시작 부분에서 SQLite 연결 코드를 설명했습니다. - 만들기 테이블 쿼리를 준비합니다.
- 는
cursor.execute(query)
- 를 사용하여 쿼리를 실행합니다.,
출력:
Successfully Connected to SQLiteSQLite table created:the sqlite connection is closed
SQLite 데이터 형식이고 그것에 해당하는 파이썬 유형
진행하기 전에 추가에서 실행 SQLite CRUD 작업에서는 파이썬 먼저 이해해 SQLite 데이터 입력 및 해당하는 파이썬 유형 도움이 될 것입니다 우리점에서 데이터를 읽고 SQLite 테이블.
SQLite 데이터베이스 엔진에는 값을 저장하는 여러 스토리지 클래스가 있습니다. SQLite 데이터베이스에 저장된 모든 값에는 다음 스토리지 클래스 또는 데이터 유형 중 하나가 있습니다.,이 값은 NULL 값입니다.
- 정수:-숫자 값을 저장합니다. 에 저장된 정수 1, 2, 3, 4, 6, 또는 숫자의 크기에 따라 8 바이트.
- 실시:–값은 부동 소수점 값을,예를 들어,3.14 가치 파이의
- TEXT:–값은 텍스트 문자열,텍스트를 저장된 값을 사용하여 UTF-8,UTF-16BE 또는 UTF-16LE 인코딩이 있습니다.
- BLOB:-값은 데이터의 blob,즉 이진 데이터입니다. 이미지와 파일을 저장하는 데 사용됩니다.
다음 파이썬 유형은 문제없이 SQLite 로 변환됩니다., 따라서 CRUD 작업을 수행하여 SQLite 테이블에서 수정하거나 읽을 때이 테이블을 기억하십시오.,
Python type | SQLite type |
None | NULL |
int | INTEGER |
float | REAL |
str | TEXT |
bytes | BLOB |
Perform SQLite CRUD Operations from Python
Most of the time, we need to manipulate the SQLite table’s data from Python. To perform these data manipulations, we can execute DML queries i.e.,,파이썬에서 sqlite 삽입,업데이트,삭제 작업.
이제 테이블을 알고 열 세부 정보이므로 crud 작업으로 넘어 갑시다. 자세히 다루기 위해 각 작업에 대한 별도의 자습서를 만들었습니다. 지금 각 섹션을 보자.
- 파이썬에서 sqlite 테이블에 데이터 삽입-이 섹션에서는 파이썬에서 INSERT 명령을 실행하여 sqlite 테이블에 레코드를 삽입하는 방법을 배웁니다.
- 읽 SQLite 테이블의 데이터에서는 파이썬–이 문서에서,우리가 배우고 실행하는 방법 SQLite 에서 쿼리를 선택하는 파이썬 응용 프로그램를 가져오 테이블의 행이 있습니다., 또한,나는 당신이 당신을 사용하는 방법을 알고
fetchall()
,fetchmany()
,andfetchone()
방법의 커서를 클래스를 가져오 제한 행 테이블에서는 성능을 향상하는 것입니다. - 파이썬에서 SQLite 테이블의 업데이트 데이터-이 섹션에서는 파이썬에서 업데이트 쿼리를 실행하여 SQLite 테이블의 레코드를 수정하는 방법을 배웁니다.
- 파이썬에서 SQLite 테이블에서 데이터 삭제-이 섹션에서는 파이썬에서 DELETE 쿼리를 실행하여 SQLite 테이블에서 레코드를 제거하는 방법을 배웁니다.,
커서의 executescript 함수를 사용하여 SQL 파일(스크립트)실행
SQLite 스크립트는 대부분의 일상 작업에 편리합니다. SQLite 스크립트는 파일로 저장 SQL 명령의 집합입니다(에.sql 형식).
SQLite 스크립트에는 필요할 때마다 명령 줄 프롬프트에서 실행할 하나 이상의 SQL 작업이 포함되어 있습니다.
다음은 SQLite 스크립트
- 한 번에 여러 데이터베이스를 백업 할 수있는 몇 가지 일반적인 시나리오입니다.
- 동일한 스키마를 가진 두 개의 다른 데이터베이스의 테이블에서 행 수를 비교합니다.,
- 데이터베이스 스크립트에 모든 CREATE TABLE SQL 명령을 보관하십시오. 따라서 모든 서버에서 데이터베이스 스키마를 만들 수 있습니다.
를 사용하여 sqlite 명령 줄에서 스크립트를 실행할 수 있습니다.읽기 명령은 다음과 같습니다.
sqlite> .read mySQLiteScript.sql
이 예제에서 내가 만든 샘플 SQLite 스크립트를 생성하는 두 개의 테이블이 있습니다. 이것은 내가 만든 스크립트입니다.이제 파이썬 내에서 SQLite 스크립트를 실행하는 방법을 살펴 보겠습니다.
출력:파이썬에서 SQL 스크립트를 실행하여 만든 SQLite 테이블.,
Successfully Connected to SQLiteSQLite script executed successfullysqlite connection is closed
참고:에 연결한 후 SQLite 우리는 모든 콘텐츠의 SQLite 스크립트 파일의 디스크에 저장 및 복사로 그것이 문자열 변수입니다. 그런 다음cursor.executscript(script)
메소드를 호출하여 하나의 호출로 모든 SQL 문을 실행합니다.
삽입/검색에 디지털 데이터 SQLite 사용하는 파이썬
- 이 섹션에서,나는 당신이 알게 할 것입니다 어떻게 삽입하거나 저장하는 디지털과 같은 정보를 파일에,이미지,동영상,노래로 BLOB 으로 데이터를 SQLite 테이블에 있습니다.,
- 또한,배울 수 있는 방법 파일 읽기,이미지,동영상,노래,또는 모든 디지털 데이터 저장에 SQLite using Python.
Python SQLite BLOB 에 대한 완전한 가이드를 참조하여 파일과 이미지를 삽입하고 검색하십시오.
만들기 또는 재정의 SQLite 기능을 사용하는 파이썬
Python sqlite3 모듈이 제공하는 우리에게 능력을 만들과 SQL 함수를 재정의 내부에서는 파이썬. 자세히 다루기 위해 별도의 자습서를 만들었습니다. Python 내에서 SQL 함수를 만들고 재정의하는 방법을 참조하십시오.,
Python 내에서 SQLite 함수 생성 또는 재정의에 대한 완전한 가이드를 참조하십시오.
작동 SQLite 날짜 및 타임 스탬프 유형에 Python 와 반대로
때때로 우리는 삽입할 필요가 있거나 읽는 날짜 또는 DateTime 값 SQLite 테이블. 따라서 날짜 또는 타임 스탬프 값으로 작업하는 경우 Python 의 SQLite DateTime 값 작업에 대한 별도의 자습서를 참조하십시오.
SQLite 데이터베이스 예외
예외 sqlite3.경고
- 예외의 하위 클래스입니다. 그리고 당신은 그것이 실행을 멈추지 않기를 원한다면 그것을 무시할 수 있습니다.,
예외 sqlite3.오류
- sqlite3 모듈의 다른 예외의 기본 클래스입니다. 예외의 하위 클래스입니다.
예외 sqlite3.데이터베이스와 관련된 오류에 대해 Databaseerror
- 예외가 발생합니다.
예:데이터베이스 파일이 아닌 sqlite3 데이터베이스로 파일을 열려고하면 sqlite3 가됩니다.DatabaseError:파일이 암호화되었거나 데이터베이스
예외 sqlite3 이 아닙니다.데이터베이스의 서브클래스인 IntegrityError
- ., 데이터베이스의 관계형 무결성이 영향을받는 경우이 예외가 발생합니다(예:외래 키 검사 실패).
예외 sqlite3.ProgrammingError
- 또한 DatabaseError 의 하위 클래스입니다. 이 예외가 발생하기 때문에 프로그래밍 오류가,예를 들면,테이블을 작성과 동일한 이미 존재,구문 오류가에서 SQL 쿼리를 처리합니다.
예외 sqlite3.OperationalError
- 또한 DatabaseError 의 하위 클래스입니다. 이 오류는 우리의 통제가 아닙니다. 이 예외는 데이터베이스의 작업과 관련된 오류에 대해 발생합니다.,
- 예:실수로 분리,서버가 다운,시간 초과 발생,데이터 원본의 문제입니다. 서버 다운
예외 sqlite3.NotSupportedError
- 데이터베이스에서 지원하지 않는 데이터베이스 API 가 사용되었을 때 예외가 발생합니다.
- 예:트랜잭션을 지원하지 않는 연결에서 rollback()메서드를 호출합니다. 테이블 명령을 만든 후 커밋을 호출합니다.,
것입니다 그래서 항상 있을 것이 좋습을 쓰는 모든 데이터베이스 작동 코드를 시도록 그렇게 잡을 수 있는 예외를 제외하고 차단하면 모든 걸 해결 조치에 대하여니다.예를 들어 SQLite 데이터베이스에 존재하지 않는 테이블에 데이터를 삽입하고 전체 예외 스택을 인쇄하려고합시다.,
출력:
변경 SQLite 연결 제한 시간을 연결할 때는 내부에서는 파이썬
할 수 있는 시나리오의 경우 여러 연결에 액세스 SQLite 데이터베이스를 하나의 프로세스를 수행하는 어떤 데이터를 수정하는 데이터베이스에서 작업 수행하기 위해,데이터 변경이의 연결을 잠금 즉,SQLite 데이터베이스에 잠겨 있을 때까지 해당 트랜잭션이들이 있습니다. 시간 제한 매개 변수는 우리가 지정하는 동안 데이터베이스에 연결하는 방법을 결정하는 긴 연결을 기다려야에 대한 잠금을 멀리 가지를 올리는 예외는 아니다.,
시간 초과 매개 변수의 기본값은 5.0(5 초)입니다. 기본값이므로 연결하는 동안 지정할 필요가 없습니다. 즉,Python 에서 SQLite 에 연결할 때마다 5 초 이내에 응답을 얻지 못하면 프로그램이 예외를 발생시킵니다. 하지만 경우에 당신은 연결을 제한 시간이트 문제 및 원 증가,그것을 사용하여 이 작업을 수행할 수 있습 시간 제한 논의는sqlite3.connect
기능이다.
Python 내에서 SQLite 를 연결하는 동안 시간 초과 값을 변경하는 방법을 살펴 보겠습니다.,
출력:
Connected to SQLiteTotal rows are: (2,)The Sqlite connection is closed
식별 총후 변경 사항을 SQLite 데이터베이스 연결을 연
에 대한 감사 또는 통계 목적을 찾으려는 경우이 숫자의 데이터베이스에 수정된 행 삽입 또는 삭제된 이후 데이터베이스 연결을 열었을 사용할 수 있는connection.total_changes
방법 Python sqlite3 모듈이 있습니다.
connection.total_changes
메서드는 영향을 받은 데이터베이스 행의 총 수를 반환합니다. 데이터베이스 연결이 열린 이후 수행 된 총 변경 사항을 찾기 위해 파이썬 예제를 살펴 보겠습니다.,
출력:
Connected to SQLiteTotal Rows affected since the database connection was opened: 3sqlite connection is closed
의 백업을 SQLite 데이터베이스 내부에서는 파이썬
Python sqlite3 모듈이 제공하는 기능의 백업을 수행합니다. connection.backup()
방법을 사용하면 SQLite 데이터베이스의 백업을 수행 할 수 있습니다.
connection.backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
이 함수는 백업 SQLite 데이터베이스와 복사본을 것이 기록되는 인수 대상,해야 하는 다른 연결을 인스턴스입니다., 기본적으로,또는 경우 페이지가 0 또는 부정적인 정수,데이터베이스 전체가 복사됩 단일 단계에서,그렇지 않으면 방법이 수행하는 루프에 복사하는 페이지에 시간입니다.
이름 인수는 복사할 데이터베이스를 지정합니다. 잠 인수를 정의할 초단위 시간에 의해 사이에 연속적인 시도를 백업 남아있는 페이지의 데이터베이스입니다. 수면 인수는 정수 또는 부동 소수점 값으로 지정할 수 있습니다.기존 데이터베이스를 다른 데이터베이스로 복사하는 예제를 살펴 보겠습니다.,
출력:
참고:
- 에 연결한 후 SQLite,우리는 열두 사용하는 데이터베이스에 두 개의 서로 다른 연결이 있습니다.
- 다음으로 첫 번째 연결 인스턴스를 사용하여
connection.backup()
메소드를 실행했습니다. 또한 각 반복에서 복사 할 데이터베이스 페이지 수를 지정했습니다.
파이썬 SQLite 운동 프로젝트
파이썬에서 데이터베이스 프로그래밍을 마스터하기 위해 파이썬 데이터베이스 프로그래밍 운동을 해결하십시오.피>
Leave a Reply