>  기사  >  백엔드 개발  >  Python 데이터베이스 작업에서 일반적인 함수 사용에 대한 자세한 설명

Python 데이터베이스 작업에서 일반적인 함수 사용에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-11-23 11:48:471204검색

예제 1. MYSQL 버전 받기

코드는 다음과 같습니다.

# -*- 코딩: UTF-8 -*-
#Install MYSQL DB for Python
import MySQLdb as mdb
con = None
try:
#mysql에 연결하는 방법: connect('ip','user','password','dbname')
con = mdb.connect(' localhost', 'root',
'root', 'test');
# 모든 쿼리는 con에 연결된 모듈인 커서에서 실행됩니다.
cur = con.cursor()
# 쿼리 실행
cur.execute("SELECT VERSION()")
# 이전 쿼리의 결과, 즉 단일 결과 가져오기
data = cur.fetchone()
print "Database version : %s " % data
finally:
if con:
#무슨 일이 있어도 연결을 닫는 것을 잊지 마세요
con.close()

실행 결과:
데이터베이스 버전: 5.5.25

예제 2. 테이블 생성 및 데이터 삽입

코드 복사 코드는 다음과 같습니다.


# -*- 코딩: UTF-8 -*-
mdb로 MySQLdb 가져오기
sys 가져오기
#con을 전역 연결로 설정
con = mdb.connect('localhost', 'root' , 'root', 'test');
with con:
#연결된 커서를 가져옵니다. 커서를 얻은 후에만 다양한 작업을 수행할 수 있습니다
cur = con.cursor()
#Create a 데이터 테이블writers(id,name)
Cur.execute("CREATE TABLE IF NOT EXISTS
Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
#다음 5개 조각 데이터가 삽입되었습니다
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')" )
cur.execute("INSERT INTO Writers( 이름) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(이름) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES( 'Truman Capote')")

예제 3, Python은 slect를 사용하여 mysql 데이터를 얻고 탐색합니다

코드 복사 코드는 다음과 같습니다. 다음:


# -*- 코딩: UTF-8 -*-
import MySQLdb as mdb
import sys
#mysql에 연결하고 연결된 개체 가져오기
con = mdb.connect('localhost', 'root', 'root' , 'test');
with con:
#그래도 첫 번째 단계는 쿼리 실행을 위해 연결된 커서 개체를 얻는 것입니다.
cur = con.cursor()
#기타 언어의 쿼리 함수인 Execute는 Python의 실행 쿼리 함수와 유사합니다
cur.execute("SELECT * FROM Writers")
#사용 결과 집합(다차원 튜플)을 행에 저장하는 fetchall 함수
행 = cur.fetchall()
# 결과 집합을 순서대로 탐색하여 각 요소가 테이블의 레코드인지 확인하고 이를 튜플로 표시합니다.
행의 행:
행 인쇄

코드 복사 코드는 다음과 같습니다.


실행 결과:
(1L, 'Jack London')
(2L, 'Honore de Balzac')
(3L, 'Lion Feuchtwanger')
(4L, 'Emile Zola')
(5L, 'Truman Capote')

예제 4. 사전 커서를 사용하여 결과 집합 가져오기(테이블 필드 이름을 사용하여 값에 액세스할 수 있음)

코드 복사 코드는 다음과 같습니다.


# -*- 코딩: UTF-8 -*-
# 출처: Crazy Ant 블로그 www.server110.com 요약
import MySQLdb as mdb
import sys
#Get the link object of mysql query
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
# 연결에서 사전 커서를 가져오고 획득 방법에 주의하세요.
# 각 커서는 실제로 커서의 하위 클래스입니다
cur = con.cursor(mdb.cursors.DictCursor)
#실행 문은 변경되지 않은 상태로 유지됩니다
cur.execute("SELECT * FROM Writers")
#The 데이터를 얻는 방법은 변경되지 않습니다
행 = cur.fetchall()
# 데이터 탐색도 변경되지 않습니다(이전 방법이 더 직접적입니다)
for row in Rows:
#여기서 다음을 수행할 수 있습니다. 키-값 쌍 방법을 사용하여 키 이름으로 데이터를 가져옵니다
print "%s %s" % (row["Id "], row["Name"])

예 5. 방법 단일 테이블의 필드명 및 정보 얻기

코드 복사 코드는 다음과 같습니다


# -*- 코딩: UTF-8 -*-
# 출처: Crazy Ant 블로그 www.server110.com 요약
import MySQLdb as mdb
import sys
#Get 데이터베이스의 링크 객체
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:
#일반 쿼리 커서 가져오기
cur = con.cursor()
cur.execute("SELECT * FROM Writers")
행 = cur.fetchall()
# 연결 개체의 설명 정보 가져오기
desc = cur.description
print 'cur.description:',desc
# 필드 이름인 헤더를 인쇄합니다.
print "%s %3s" % (desc[0][0], desc[1][ 0])
행의 행:
#결과 인쇄
"%2s %3s" % 행 인쇄

코드 복사 코드는 다음과 같습니다.


실행 결과: cur .description: (('Id', 3, 1, 11, 11, 0, 0), ('이름', 253, 17, 25, 25, 0, 1))
Id 이름
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote


예 6. 준비된 문을 사용하여 쿼리 실행 (더 안전하고 편리함)

코드 복사 코드는 다음과 같습니다.


# -*- 코딩: UTF-8 -*-
# 출처: Crazy Ant 블로그 www.server110.com 요약
mdb로 MySQLdb 가져오기
sys 가져오기
con = mdb.connect('localhost', 'root', 'root', 'test')
con:
cur = con.cursor( )
#어셈블할 수 있는 SQL 문을 작성하여 이 작업을 수행할 수 있음을 알 수 있습니다.
cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s" ,
("Guy de Maupasant", "4"))
# cur.rowcount를 사용하여 영향을 받은 행 수를 확인하세요
print "업데이트된 행 수: %d" % cur.rowcount


결과:

코드 복사 코드는 다음과 같습니다.


업데이트된 행 수: 1


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.