Python 연결 mysql 데이터베이스 작업

巴扎黑
풀어 주다: 2016-12-09 10:08:54
원래의
1559명이 탐색했습니다.

import MySQLdb

# 데이터베이스 연결 열기
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 커서 준비 커서() 메소드를 사용하는 객체
cursor = db.cursor()

# 데이터베이스에 레코드를 삽입하기 위한 SQL 쿼리를 준비합니다.
sql = "INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME , 나이, 성별, 소득)
VALUES ('%s', '%s', '%d', '%c', '%d' )" %
('Mac', 'Mohan' , 20, 'M', 2000)
try:
# SQL 명령 실행
cursor.execute(sql)
# 데이터베이스에 변경 사항 커밋
db.commit()
제외:
# 오류가 있는 경우 롤백
db.rollback()

# 서버 연결 끊기
db.close()

읽기 작업:
fetchone(): 이 메소드는 쿼리 결과 세트의 다음 행을 가져옵니다. 결과 집합이 개체인 경우 테이블 쿼리를 위해 커서 개체가 반환됩니다.

fetchall(): 이 메서드는 결과 집합의 모든 행을 가져옵니다. 결과 집합에서 일부 행을 가져온 경우 fetchAll() 메서드는 결과 집합의 나머지 행을 검색합니다.

rowcount: 실행의 영향을 받은 행 수를 반환하는 읽기 전용 속성입니다. () 메소드.


#!/usr/bin/python

import MySQLdb

# 데이터베이스 연결 열기
db = MySQLdb.connect("localhost ","testuser"," test123","TESTDB" )

#cursor() 메소드를 사용하여 커서 객체 준비
cursor = db.cursor()

# SQL 쿼리 준비 데이터베이스에 레코드를 삽입하려면
sql = "SELECT * FROM EMPLOYEE
WHERE INCOME > '%d'" % (1000)
try:
# SQL 명령을 실행합니다.
cursor.execute(sql)
# 목록 목록의 모든 행을 가져옵니다.
results =cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
수입 = row[4]
# 이제 가져온 결과를 인쇄합니다
print "fname=%s ,lname=%s,age =%d,sex=%s,income=%d" %
(fname, lname, 나이, 성별, 소득)
제외:
print "오류: 불가능 데이터 가져오기"

# 서버 연결 끊기
db.close()

업데이트 작업:

모든 데이터베이스에 대한 업데이트 작업은 하나 이상의 레코드를 업데이트하는 것을 의미합니다. 이미 데이터베이스에 있습니다. 다음은 모든 기록을 'M' SEX로 업데이트하는 과정입니다. 여기서는 모든 남자의 나이에 1년을 더합니다.

#!/usr/bin/python

import MySQLdb

# 개방형 데이터베이스 연결
db = MySQLdb .connect("localhost","testuser","test123","TESTDB" )

#cursor() 메소드를 사용하여 커서 객체 준비
cursor = db.cursor()

# 필요한 레코드를 업데이트하기 위한 SQL 쿼리 준비
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
                                                    SQL command
cursor.execute(sql)
# 데이터베이스에 변경 사항을 커밋
db.commit()
제외:
# 오류가 있는 경우 롤백
db .rollback()

# 서버 연결 끊기
db.close()

삭제 작업:

데이터베이스에서 일부 레코드를 삭제하려면 DELETE 작업이 필요합니다. 다음은 20세 이상 직원의 기록을 모두 삭제하는 프로그램입니다.

예:

#!/usr/bin/python

import MySQLdb

# 데이터베이스 연결 열기
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

#cursor() 메소드를 사용하여 커서 객체 준비
cursor = db.cursor()

# 필수 레코드를 삭제하기 위한 SQL 쿼리 준비
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)
try:
# SQL 명령 실행
cursor.execute(sql)
# 데이터베이스에 변경 사항을 커밋
db.commit()
제외:
# 해당되는 경우 롤백
db.rollback()

# 서버 연결 끊기
db.close()

트랜잭션 실행:

트랜잭션은 오류가 없는지 확인하기 위한 메커니즘입니다. 데이터 일관성을 위해 트랜잭션에는 다음 네 가지 속성이 있어야 합니다.

원자성: 트랜잭션이 종료되거나 아무 일도 일어나지 않습니다.

일관성: 트랜잭션은 일관된 상태에서 시작되어야 합니다.

격리: 트랜잭션의 중간 결과는 현재 트랜잭션 외부에서 볼 수 없습니다.

지속성: 트랜잭션이 커밋되면 효과는 지속됩니다. if 시스템 오류 발생 후.

Python DB API 2.0에서 트랜잭션을 커밋하거나 롤백하는 두 가지 방법을 제공합니다.


------------ -- ------------------------------------------------ -- --

import MySQLdb
con = MySQLdb.connect(host='localhost', user='root', passwd='root', db='hr_resume_center', charset='utf8' )
cursor = con.cursor()

sql = "hr_resume_core에 삽입(resume_id,name,mobile,email,add_time,sys_time,version) VALUES(%s,%s,%s,%s, %s,%s,%s)"

param = [
(1,'bright','13641154657','jackieming@sina.cn',1385625423,1385625423,1),
(2,'밝다','13641154657','jackieming@sina.cn',1385625423,1385625423,1),
(3,'밝다','13641154657','jackieming@sina.cn' ,1385625423 ,1385625423,1),
]
cursor.execute(sql,param)
cursor.close()
con.close()


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿