몇 가지 기본적인 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'인 경우 결과 집합의 첫 번째 행에서 값 막대를 이동한다는 의미입니다.