python sqlite 예제

이 다음 예제에서와 같이 SQLite에 대 한 셸을 구축 하는 데 사용할 수 있습니다.: SQLite3 gerhard Haring에 의해 작성 된 sqlite3 모듈을 사용 하 여 파이썬과 통합 될 수 있습니다. PEP 249에서 설명하는 DB-API 2.0 사양을 준수하는 SQL 인터페이스를 제공합니다. 이 모듈은 파이썬 버전 2.5.x 이후와 함께 기본적으로 제공되므로 이 모듈을 별도로 설치할 필요가 없습니다. 그러나 SQLite에도 몇 가지 제한 사항이 있습니다. 예를 들어 오른쪽 외부 조인 및 전체 외부 조인과 같은 조인을 지원하지 않습니다. 그러나 장점은 한계 이상입니다. 이 자습서에서는 파이썬에서 SQLite를 사용 하 여 소개 하 고 다음이 자습서에서 다루는 내용의 개요-시퀀스 sql에서 발견 하는 모든 매개 변수 시퀀스 또는 매핑에 대 한 SQL 명령을 실행 합니다. 또한 sqlite3 모듈에서는 시퀀스 대신 매개 변수를 산출하는 이터레이터를 사용할 수 있습니다. 매개 변수화된 쿼리는 본질적으로 모든 데이터베이스 인터페이스에서 Python의 sqlite3 모듈과 같은 최신 고급 프로그래밍 언어의 중요한 기능입니다. 이러한 유형의 쿼리는 여러 번 반복되는 쿼리의 효율성을 향상시키는 역할을 합니다. 아마도 더 중요한 것은, 그들은 또한 의 자리를 차지 입력을 살균 ? SQL 주입으로 이어지는 사악한 입력을 방지하기 위해 커서 개체의 실행 메서드를 호출하는 동안 전달되는 자리 표시자입니다.

다음은 SQL 주입의 위험을 설명하는 인기있는 xkcd.com 블로그의 만화입니다. 따라서 트랜잭션 내에 있고 CREATE TABLE…, VACUUM, PRAGMA와 같은 명령을 실행하는 경우 sqlite3 모듈은 해당 명령을 실행하기 전에 암시적으로 커밋됩니다. 그렇게 하는 데는 두 가지 이유가 있습니다. 첫 번째는 이러한 명령 중 일부가 트랜잭션 내에서 작동하지 않는다는 것입니다. 다른 이유는 sqlite3 트랜잭션 상태를 추적해야 하기 때문입니다(트랜잭션이 활성 상태인지 아닌지). 위의 코드를 사용하여 2개의 테이블이 있는 새 .sqlite 데이터베이스 파일을 만들었습니다. 각 테이블은 현재 하나의 열로만 구성되며 이는 정수기 형식입니다. 커서 개체가 아닌 db 개체에서 커밋 함수가 호출됩니다.

cursor.commit을 입력하면 AttributeError: `sqlite3.를 받게 됩니다. 커서` 개체에는 기본적으로 `커밋` 특성이 없으며, sqlite3 모듈은 데이터 수정 언어(DML) 문(예: INSERT/UPDATE/DELETE/REPLACE) 앞에 암시적으로 트랜잭션을 열고 비 DML, 비 쿼리 전에 암시적으로 트랜잭션을 커밋합니다. 문(예: SELECT 또는 전술한 것 이외의 것). sqlite3 모듈에는 Python의 기본 날짜 시간.날짜 및 datetime.datetime 형식에 대한 두 개의 기본 어댑터가 있습니다. 이제 datetime.datetime 개체를 ISO 표현이 아니라 유닉스 타임스탬프로 저장한다고 가정해 보겠습니다. 데이터베이스에서 특정 데이터를 가져오려면 WHERE 절을 사용할 수 있습니다. 예를 들어 급여가 800보다 큰 직원의 ID와 이름을 가져오려고 합니다. 이를 위해 테이블을 더 많은 행으로 채우고 쿼리를 실행해 보겠습니다. sqlite3가 connect() 호출에 대한 isolation_level 매개 변수를 통해 또는 연결의 isolation_level 속성을 통해 암시적으로 실행하는 BEGIN 문(또는 전혀 없음)을 제어할 수 있습니다. 먼저 sqlite3 모듈을 가져온 다음 sql_connection이라는 함수가 정의됩니다. 함수 내부에는 connect() 함수가 연결을 설정한 후 연결 개체를 반환하는 try 블록이 있습니다. 이 예제에서는 try/except/finally 절을 사용하여 코드의 예외를 catch했습니다.

마지막으로 데이터베이스 연결을 올바르게 닫기 때문에 finally 키워드는 매우 중요합니다. 예외에 대한 자세한 내용은 이 문서를 참조하십시오. 살펴 보세요: 이 자습서에서 사용 하는 전체 파이썬 코드 내 GitHub 저장소에서 다운로드할 수 있습니다.: https://github.com/rasbt/python_reference/tree/master/sqlite3_howto 앞에서 설명 한 대로, SQLite 형식의 제한 된 집합을 지원 합니다. 기본적. SQLite를 사용하여 다른 파이썬 형식을 사용하려면 Sqlite3 모듈의 SQLite 지원 되는 형식 중 하나에 적용 해야 합니다.

Posted in Uncategorized