Python 2.7 프로 그래 밍 에서 SQLite 3 기본 조작 방법 예시

3198 단어 Python2.7SQLite3
본 고의 실례 는 Python 2.7 에서 SQLite 3 의 기본 조작 방법 을 설명 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.기본 동작

# -*- coding: utf-8 -*-
#!/usr/bin/env python
import sqlite3
def mykey(x):
  return x[3]
conn=sqlite3.connect("D:\\demo\\my_db.db")
sql = "CREATE TABLE IF NOT EXISTS mytb ( a char , b int , c real, d DATE)"
# a char , b int , c real          ,
# a       , b      , c      。
conn.execute( sql )
cs = conn.cursor()
#cs.execute("DELETE FROM mytb WHERE A='  ' ")
cs.execute("DELETE FROM mytb  ")
#      
'''''
cs.execute( "INSERT INTO mytb ( a,b,c,d ) values('Zhang San',25, 120, '2014-03-04')" )
cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Wang Wu',24, 110, '2014-05-01')" )
cs.execute( "INSERT INTO mytb ( a,b,c,d ) values( 'Li Si',23, 130, '2014-04-06')" )
'''
#    ,batchdata     ,              
batchdata=[('Zhang San',25, 120, '2014-03-04'),
      ( 'Wang Wu',24, 110, '2014-05-01'),
      ( 'Li Si',23, 130, '2014-04-06')]
cs.executemany('INSERT INTO mytb values (?,?,?,?)',batchdata)
conn.commit() #           ,    !
cs.execute("SELECT name, sql FROM sqlite_master WHERE type='table'")
recs = cs.fetchall( )
print ( recs )
cs.execute( "SELECT * FROM mytb ")#     
recs = cs.fetchall()#      
print ( "there is ", len(recs)," notes." )
print recs
recs.sort(key = mykey)
print recs
cs.close()
conn.close()

2.기록 을 삭제 하고 sql 문자열 변 수 를 사용 하면 매개 변 수 를 삭제 할 수 있 습 니 다.

sql="DELETE FROM my_table WHERE number='" + my_num + "'"
cs.execute(sql)

3.한 개 또는 여러 개의 기록 조회
SQLite 3 에서 찾 은 데이터베이스 기록 에 중국어 가 포함 되 어 있 으 면 Python 을 꺼 낼 때 데 이 터 를 decode 로 처리 해 야 합 니 다.당시 에 내 가 인터넷 검색 을 할 때 GBK 로 디 코딩 하 겠 다 고 말 했 지만 나 자신 은 디 코딩 에 실 패 했 고 utf-8 디 코딩 으로 바 꿔 서 야 성공 적 으로 표시 되 었 다.또한,하나만 조회 하면 fetchone 문 구 를 사용 하거나 fetchall 을 사용 한 후에 python 을 통 해 찾 을 수 있 습 니 다.

sql="SELECT name FROM my_table WHERE number ='" + my_num + "'"
cs.execute(sql)
the_name=(cs.fetchall())[0][0].decode('utf-8')

4.중복 주입 을 피한다
때때로 우 리 는 같은 기록 을 데이터베이스 에 여러 번 삽입 하지 않도록 다음 과 같은 문장 을 사용 할 수 있다.

sql="INSERT OR REPLACE INTO "+my_table+" values (?,?,?,?,?,?,?) "
#  my_table 7 

5.SQLite 3 에 중국어 기록 삽입
Python 은 유 니 코드 인 코딩 이지 만 데이터 베 이 스 는 중국어 에 GBK 인 코딩 을 사용 합 니 다.예 를 들 어 stockname 변수 에 중국어 가 포함 되 어 있 으 면 유 니 코드(name,"gbk")처리 가 필요 합 니 다.

batch=[(stock_num, unicode(stock_name, "gbk") )]
cs.executemany( "INSERT OR REPLACE INTO my_table values (?,?) ",batch)

파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기