>  기사  >  백엔드 개발  >  mysql 데이터베이스에 대한 Python 링크에 대한 자세한 설명

mysql 데이터베이스에 대한 Python 링크에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-10-19 09:13:481247검색

몇 가지 기본적인 Python을 배운 후에는 항상 직접 프로그램을 작성하고 싶었지만 데이터베이스 없이 프로그램을 작성하는 것은 너무 저급한 것 같습니다. 그렇다면 Python을 mysql에 어떻게 연결해야 할까요? 아래에서 자세한 소개를 해드리겠습니다.

저는 MySQLdb에서 운영하는 MYSQL 데이터베이스를 사용하고 있습니다. 먼저 간단한 예를 들어보겠습니다.

importMySQLdb
 
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)
    cur=conn.cursor()
    cur.execute('select * from user')
    cur.close()
    conn.close()
exceptMySQLdb.Error,e:
     print"Mysql Error %d: %s"%(e.args[0], e.args[1])

데이터베이스, 호스트 이름, 사용자 이름 및 비밀번호를 수정하는 데 주의하세요.

데이터 삽입, 일괄 삽입, 데이터 업데이트의 예를 간략하게 보여드리겠습니다.

importMySQLdb
 
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
    cur=conn.cursor()
     
    cur.execute('create database if not exists python')
    conn.select_db('python')
    cur.execute('create table test(id int,info varchar(20))')
     
    value=[1,'hi rollen']
    cur.execute('insert into test values(%s,%s)',value)
     
    values=[]
    fori inrange(20):
        values.append((i,'hi rollen'+str(i)))
         
    cur.executemany('insert into test values(%s,%s)',values)
 
    cur.execute('update test set info="I am rollen" where id=3')
 
    conn.commit()
    cur.close()
    conn.close()
 
exceptMySQLdb.Error,e:
     print"Mysql Error %d: %s"%(e.args[0], e.args[1])

Conn.commit()은 트랜잭션을 커밋하는 데 사용됩니다. 그렇지 않으면 데이터를 실제로 삽입할 수 없습니다.

실행 후 MySQL 데이터베이스 결과가 더 이상 그림과 같지 않습니다.

importMySQLdb
 
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
    cur=conn.cursor()
     
    conn.select_db('python')
 
    count=cur.execute('select * from test')
    print'there has %s rows record'%count
 
    result=cur.fetchone()
    printresult
    print'ID: %s info %s'%result
 
    results=cur.fetchmany(5)
    forr inresults:
        printr
 
    print'=='*10
    cur.scroll(0,mode='absolute')
 
    results=cur.fetchall()
    forr inresults:
        printr[1]
     
 
    conn.commit()
    cur.close()
    conn.close()
 
exceptMySQLdb.Error,e:
     print"Mysql Error %d: %s"%(e.args[0], e.args[1])

쿼리 후 중국어는 올바르게 표시되지만 데이터베이스에서는 깨져서 표시됩니다. 여기에 매개변수 문자 집합을 추가해야 합니다.

Python 코드에서

conn = MySQLdb.Connect(host='localhost', user='root', passwd='root' , db=' python') 속성 추가:
다음으로 변경:
conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python', charset='utf8')
문자 세트는 데이터베이스의 인코딩과 동일해야 합니다. 데이터베이스가 gb2312인 경우 charset='gb2312'를 작성하세요.

비고: python mysql 링크 공통 함수

commit() submit
rollback() 롤백

명령을 실행하는 데 사용되는 커서 메서드:
callproc(self, procname, args): 저장 프로시저를 실행하는 데 사용됩니다. 수신된 매개변수는 저장 프로시저 이름과 매개변수 목록이며, 반환 값은 영향을 받은 행의 수입니다.
execute(self, query, args. ): 실행 단일 sql 문에 대해 수신된 매개 변수는 sql 문 자체와 사용된 매개 변수 목록이며 반환 값은 영향을 받은 행의 수입니다.
executemany(self, query, args): 단일 sql 문을 실행합니다. , 그러나 매개변수 목록의 매개변수를 반복적으로 실행 매개변수, 반환 값은 영향을 받은 행의 수
nextset(self): 다음 결과 집합으로 이동

커서가 반환을 받는 방법 value:
fetchall(self): 모든 반환 결과 행을 받습니다.
fetchmany(self, size=None): 반환 결과 행의 크기를 받습니다. size 값이 반환된 결과 행 수보다 크면 커서가 실행됩니다. .arraysize 데이터가 반환됩니다.
fetchone(self): 결과 행을 반환합니다.
scroll(self, value, mode='relative'): mode='relative'인 경우 포인터를 이동합니다. , 이는 현재 행에서 값 막대를 이동한다는 의미입니다. mode='absolute'인 경우 결과 집합의 첫 번째 행에서 값 막대를 이동한다는 의미입니다.


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