>  기사  >  백엔드 개발  >  Python을 MySQL에 연결하는 방법

Python을 MySQL에 연결하는 방법

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-06-25 15:28:102671검색

Python을 MySQL에 연결하는 방법

MySQL을 Python과 어떻게 연결하나요? MySQLdb 사용 방법에 대한 자세한 소개는 다음과 같습니다.

(1) MySQLdb란 무엇입니까?

MySQLdb는 Python 데이터베이스에 연결하기 위한 Python 인터페이스입니다. Python 데이터베이스 API 사양 V2.0을 구현하고 MySQL C API를 기반으로 합니다.

(2) 소스 코드 설치 MySQLdb: https://pypi.python.org/pypi/MySQL-python

$ tar zxvf MySQL-python-*.tar.gz
$ cd MySQL-python-*
$ python setup.py build
$ python setup.py install

관련 권장 사항: "Python Video Tutorial"

(3) MySQLdb 사용:

#!/usr/bin/env python
# coding=utf-8
import MySQLdb
def connectdb():
    print('连接到mysql服务器...')
    # 打开数据库连接
    # 用户名:hp, 密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,
    并在TESTDB数据库中创建好表Student
    db = MySQLdb.connect("localhost","hp","Hp12345.","TESTDB")
    print('连接上了!')
    return db
def createtable(db):
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # 如果存在表Sutdent先删除
    cursor.execute("DROP TABLE IF EXISTS Student")
    sql = """CREATE TABLE Student (
            ID CHAR(10) NOT NULL,
            Name CHAR(8),
            Grade INT )"""
    # 创建Sutdent表
    cursor.execute(sql)
def insertdb(db):
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 插入语句
    sql = """INSERT INTO Student
         VALUES ('001', 'CZQ', 70),
                ('002', 'LHQ', 80),
                ('003', 'MQ', 90),
                ('004', 'WH', 80),
                ('005', 'HP', 70),
                ('006', 'YF', 66),
                ('007', 'TEST', 100)"""
    #sql = "INSERT INTO Student(ID, Name, Grade) \
    #    VALUES ('%s', '%s', '%d')" % \
    #    ('001', 'HP', 60)
    try:
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # Rollback in case there is any error
        print '插入数据失败!'
        db.rollback()
def querydb(db):
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 查询语句
    #sql = "SELECT * FROM Student \
    #    WHERE Grade > '%d'" % (80)
    sql = "SELECT * FROM Student"
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 获取所有记录列表
        results = cursor.fetchall()
        for row in results:
            ID = row[0]
            Name = row[1]
            Grade = row[2]
            # 打印结果
            print "ID: %s, Name: %s, Grade: %d" % \
                (ID, Name, Grade)
    except:
        print "Error: unable to fecth data"
def deletedb(db):
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 删除语句
    sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)
    try:
       # 执行SQL语句
       cursor.execute(sql)
       # 提交修改
       db.commit()
    except:
        print '删除数据失败!'
        # 发生错误时回滚
        db.rollback()
def updatedb(db):
    # 使用cursor()方法获取操作游标 
    cursor = db.cursor()
    # SQL 更新语句
    sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')
    try:
        # 执行SQL语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        print '更新数据失败!'
        # 发生错误时回滚
        db.rollback()
def closedb(db):
    db.close()
def main():
    db = connectdb()    # 连接MySQL数据库
    createtable(db)     # 创建表
    insertdb(db)        # 插入数据
    print '\n插入数据后:'
    querydb(db) 
    deletedb(db)        # 删除数据
    print '\n删除数据后:'
    querydb(db)
    updatedb(db)        # 更新数据
    print '\n更新数据后:'
    querydb(db)
    closedb(db)         # 关闭数据库
if __name__ == '__main__':
    main()

위 내용은 Python을 MySQL에 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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