Latest web development tutorials

SQLite는 - 파이썬

설치

sqlite3를 sqlite3를 모듈은 파이썬 통합 사용할 수 있습니다. 게르하르트 해링에 의해 작성된 sqlite3를 모듈. 그것은 PEP 249에 의해 설명 된 DB-API 2.0 사양은 SQL 인터페이스와 호환 제공합니다. 파이썬 2.5.x의 이상 기본 모듈과 함께 제공하기 때문에 별도로 모듈을 설치할 필요가 없습니다.

sqlite3를 모듈을 사용하기 위해서는 먼저 데이터베이스 연결 객체 표현을 작성해야하고 당신이 도움이 될 것입니다 커서 개체를 만들 수 있습니다 당신은 모든 SQL 문을 수행합니다.

파이썬 sqlite3를 모듈 API

다음은 중요한 sqlite3를 모듈 프로그램은 파이썬 프로그램에서 SQLite는 데이터베이스를 사용하여 사용자의 요구를 충족합니다. 더 자세한 내용이 필요한 경우, 공식 문서 파이썬 sqlite3를 모듈을 참조하십시오.

序号API & 描述
1sqlite3.connect(database [,timeout ,other optional arguments])

该 API 打开一个到 SQLite 数据库文件 database 的链接。您可以使用 ":memory:" 来在 RAM 中打开一个到 database 的数据库连接,而不是在磁盘上打开。如果数据库成功打开,则返回一个连接对象。

当一个数据库被多个连接访问,且其中一个修改了数据库,此时 SQLite 数据库被锁定,直到事务提交。timeout 参数表示连接等待锁定的持续时间,直到发生异常断开连接。timeout 参数默认是 5.0(5 秒)。

如果给定的数据库名称 filename 不存在,则该调用将创建一个数据库。如果您不想在当前目录中创建数据库,那么您可以指定带有路径的文件名,这样您就能在任意地方创建数据库。

2connection.cursor([cursorClass])

该例程创建一个cursor,将在 Python 数据库编程中用到。该方法接受一个单一的可选的参数 cursorClass。如果提供了该参数,则它必须是一个扩展自 sqlite3.Cursor 的自定义的 cursor 类。

3cursor.execute(sql [, optional parameters])

该例程执行一个 SQL 语句。该 SQL 语句可以被参数化(即使用占位符代替 SQL 文本)。sqlite3 模块支持两种类型的占位符:问号和命名占位符(命名样式)。

例如:cursor.execute("insert into people values (?, ?)", (who, age))

4connection.execute(sql [, optional parameters])

该例程是上面执行的由光标(cursor)对象提供的方法的快捷方式,它通过调用光标(cursor)方法创建了一个中间的光标对象,然后通过给定的参数调用光标的 execute 方法。

5cursor.executemany(sql, seq_of_parameters)

该例程对 seq_of_parameters 中的所有参数或映射执行一个 SQL 命令。

6connection.executemany(sql[, parameters])

该例程是一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的 executemany 方法。

7cursor.executescript(sql_script)

该例程一旦接收到脚本,会执行多个 SQL 语句。它首先执行 COMMIT 语句,然后执行作为参数传入的 SQL 脚本。所有的 SQL 语句应该用分号(;)分隔。

8connection.executescript(sql_script)

该例程是一个由调用光标(cursor)方法创建的中间的光标对象的快捷方式,然后通过给定的参数调用光标的 executescript 方法。

9connection.total_changes()

该例程返回自数据库连接打开以来被修改、插入或删除的数据库总行数。

10connection.commit()

该方法提交当前的事务。如果您未调用该方法,那么自您上一次调用 commit() 以来所做的任何动作对其他数据库连接来说是不可见的。

11connection.rollback()

该方法回滚自上一次调用 commit() 以来对数据库所做的更改。

12connection.close()

该方法关闭数据库连接。请注意,这不会自动调用 commit()。如果您之前未调用 commit() 方法,就直接关闭数据库连接,您所做的所有更改将全部丢失!

13cursor.fetchone()

该方法获取查询结果集中的下一行,返回一个单一的序列,当没有更多可用的数据时,则返回 None。

14cursor.fetchmany([size=cursor.arraysize])

该方法获取查询结果集中的下一行组,返回一个列表。当没有更多的可用的行时,则返回一个空的列表。该方法尝试获取由 size 参数指定的尽可能多的行。

15cursor.fetchall()

该例程获取查询结果集中所有(剩余)的行,返回一个列表。当没有可用的行时,则返回一个空的列表。

데이터베이스에 연결

다음 파이썬 코드는 기존 데이터베이스에 연결하는 방법을 보여줍니다. 데이터베이스가 존재하지 않는 경우, 생성하고, 마지막으로 데이터베이스 객체를 반환한다.

#!를 / usr / 빈 / 파이썬

수입 sqlite3를

CONN = sqlite3.connect ( '의 test.db')

인쇄는 "성공적으로 데이터베이스를 오픈";

여기에서, 당신은 또한 특정이름에 대한 데이터베이스의 이름을 복사 할 수 있습니다 : 메모리 :,이것은 RAM에서 데이터베이스를 생성합니다. 자, 위의 프로그램을 실행 현재 디렉토리에 저희데이터베이스의 test.db를 만들 수 있습니다.필요에 따라 경로를 변경할 수 있습니다. 다음과 같이 수행 표시 파일을 누릅니다 sqlite.py 위의 코드를 저장합니다. 데이터베이스가 성공적으로 생성하면 아래와 같은 메시지를 표시합니다 :

$ chmod를 + X sqlite.py
$. / Sqlite.py
오픈 데이터베이스를 성공적으로

테이블 만들기

다음 파이썬 코드는 이전에 생성 된 데이터베이스 테이블을 생성하는데 사용된다 :

#!를 / usr / 빈 / 파이썬

수입 sqlite3를

CONN = sqlite3.connect ( '의 test.db')
인쇄는 "성공적으로 데이터베이스를 오픈";

conn.execute ( ''TABLE 회사 만들기 '
       (ID INT PRIMARY KEY NOT NULL,
       NULL NOT 이름 텍스트,
       NULL NOT AGE INT,
       주소의 CHAR (50)
       SALARY에 REAL) '' '' ')
인쇄는 "표가 성공적으로 만들어";

conn.close ()

위의 절차,그것의 test.db에 회사 테이블을 생성하고 표시 할 때 메시지는 다음과 같습니다 :

열린 데이터베이스를 성공적으로
표 성공적으로 생성

INSERT 작업

다음 파이썬 프로그램은 위에서 만든 회사 테이블에 레코드를 만드는 방법을 보여줍니다 :

#!를 / usr / 빈 / 파이썬

수입 sqlite3를

CONN = sqlite3.connect ( '의 test.db')
인쇄는 "성공적으로 데이터베이스를 오픈";

conn.execute ( "ID, 이름, 나이, 주소, SALARY (회사로 INSERT) \
      VALUES (1, '폴', 32 '캘리포니아', 20000.00) ");

conn.execute ( "ID, 이름, 나이, 주소, SALARY (회사로 INSERT) \
      VALUES (2, '알렌', 25 일 '텍사스', 15000.00) ");

conn.execute ( "ID, 이름, 나이, 주소, SALARY (회사로 INSERT) \
      VALUES (3 '테디', 23 ', 노르웨이, 20000.00) ");

conn.execute ( "ID, 이름, 나이, 주소, SALARY (회사로 INSERT) \
      VALUES (4, '마크', 25 일 '리치 사교계', 65000.00) ");

conn.commit ()
인쇄 "기록은 성공적으로 만들어";
conn.close ()

위의 프로그램은 주어진 레코드에 대한 회사 테이블에 생성됩니다, 실행, 다음과 같은 두 줄을 표시한다 :

열린 데이터베이스를 성공적으로
기록이 성공적으로 생성

SELECT 작업

다음 파이썬 프로그램은 이전에 만든 회사 테이블에서 가져 오는 방법을 보여줍니다 및 레코드를 표시합니다 :

#!를 / usr / 빈 / 파이썬

수입 sqlite3를

CONN = sqlite3.connect ( '의 test.db')
인쇄는 "성공적으로 데이터베이스를 오픈";

( "회사에서 ID, 이름, 주소, 급여를 SELECT") = conn.execute 커서
커서의 행 :
   인쇄는 "ID는 =", 행 [0]
   인쇄는 "이름은 =", 행 [1]
   인쇄는 "주소는 =", 행 [2]
   인쇄는 "SALARY는 =", "N \", [3] 행

인쇄 "작업이 성공적으로 완료";
conn.close ()

상기 프로그램이 실행될 때, 다음과 같은 결과를 얻을 :

열린 데이터베이스를 성공적으로
ID = 1
NAME = 폴
ADDRESS = 캘리포니아
SALARY = 20000.0

ID = 2
NAME = 앨런
ADDRESS = 텍사스
SALARY = 15000.0

ID = 3
NAME = 테디
ADDRESS = 노르웨이
SALARY = 20000.0

ID = 4
NAME = 마크
ADDRESS = 리치 사교계
SALARY = 65000.0

작업이 성공적으로 완료

UPDATE 작업

다음 파이썬 코드는, 모든 레코드를 업데이트 COMPANY 테이블에서 얻을 업데이트 된 레코드를 표시하려면 UPDATE 문을 사용하는 방법을 보여줍니다

#!를 / usr / 빈 / 파이썬

수입 sqlite3를

CONN = sqlite3.connect ( '의 test.db')
인쇄는 "성공적으로 데이터베이스를 오픈";

conn.execute ( "UPDATE 회사는 어디 ID = 1 SALARY = 25000.00 설정")
conn.commit
"갱신 된 행의 총 수를 :"인쇄 conn.total_changes을

( "회사에서 ID, 이름, 주소, 급여를 SELECT") = conn.execute 커서
커서의 행 :
   인쇄는 "ID는 =", 행 [0]
   인쇄는 "이름은 =", 행 [1]
   인쇄는 "주소는 =", 행 [2]
   인쇄는 "SALARY는 =", "N \", [3] 행

인쇄 "작업이 성공적으로 완료";
conn.close ()

상기 프로그램이 실행될 때, 다음과 같은 결과를 얻을 :

열린 데이터베이스를 성공적으로
행의 총 수는 업데이트 : 1
ID = 1
NAME = 폴
ADDRESS = 캘리포니아
SALARY = 25000.0

ID = 2
NAME = 앨런
ADDRESS = 텍사스
SALARY = 15000.0

ID = 3
NAME = 테디
ADDRESS = 노르웨이
SALARY = 20000.0

ID = 4
NAME = 마크
ADDRESS = 리치 사교계
SALARY = 65000.0

작업이 성공적으로 완료

DELETE 작업

다음 파이썬 코드는 DELETE 문은 모든 레코드를 삭제 한 다음 회사 테이블에서 촬영하고 나머지 기록을 표시 사용하는 방법을 보여줍니다 :

#!를 / usr / 빈 / 파이썬

수입 sqlite3를

CONN = sqlite3.connect ( '의 test.db')
인쇄는 "성공적으로 데이터베이스를 오픈";

conn.execute ( "회사에서 삭제 어디 ID = 2;")
conn.commit
"삭제 된 행의 총 수를 :"인쇄 conn.total_changes을

( "회사에서 ID, 이름, 주소, 급여를 SELECT") = conn.execute 커서
커서의 행 :
   인쇄는 "ID는 =", 행 [0]
   인쇄는 "이름은 =", 행 [1]
   인쇄는 "주소는 =", 행 [2]
   인쇄는 "SALARY는 =", "N \", [3] 행

인쇄 "작업이 성공적으로 완료";
conn.close ()

상기 프로그램이 실행될 때, 다음과 같은 결과를 얻을 :

열린 데이터베이스를 성공적으로
행의 총 수는 삭제 : 1
ID = 1
NAME = 폴
ADDRESS = 캘리포니아
SALARY = 20000.0

ID = 3
NAME = 테디
ADDRESS = 노르웨이
SALARY = 20000.0

ID = 4
NAME = 마크
ADDRESS = 리치 사교계
SALARY = 65000.0

작업이 성공적으로 완료