1. 程式人生 > >python 資料庫程式設計 使用mysql

python 資料庫程式設計 使用mysql

1連線mysql

 例子:

mysql常見命令:

幫助  :help

退出:exit 和quit

顯示所有資料庫      show databases

建立資料庫     create database 資料庫名;

使用資料庫    use 資料庫名;

刪除資料庫    drop database 資料庫名;

管理表:

show tables 表名;

create table 表名;

drop table 表名;

查看錶結構      desc 表名;

例:

新增資料

python官方資料庫api

建立資料庫連線

遊標:暫時的儲存sql語句所影響的物件
 

執行過程:

          

查詢操作

有條件查詢

import pymysql

# 1建立資料庫連線
connection = pymysql.connect(host='localhost',
                             user='zy',
                             password='xzsnm2',
                             database='testdb',
                             charset='utf8'
                             )

# 2.建立遊標物件
with connection.cursor() as cursor:
    #   3.執行SQl操作
    sql = 'select name,userid from user where userid > %s'  # %s表示一個引數 取下面執行語句中列表的值
    cursor.execute(sql, [0])

    # 4.提取結果集
    result_set = cursor.fetchall()  #提取所有的
    print(result_set)

    # 5.關閉遊標
    # cursor.close()

# 6.關閉資料庫連線
connection.close()

無條件查詢

import pymysql

# 1建立資料庫連線
connection = pymysql.connect(host='localhost',
                             user='zy',
                             password='xzsnm2',
                             database='testdb',
                             charset='utf8'
                             )

# 2.建立遊標物件
with connection.cursor() as cursor:
    #   3.執行SQl操作
    sql = 'select max(userid) from user'  # %s表示一個引數 取下面執行語句中列表的值
    cursor.execute(sql)

    # 4.提取結果集
    result_set = cursor.fetchone()   #取出一個 用fetchone
    print(result_set)

    # 5.關閉遊標
    # cursor.close()

# 6.關閉資料庫連線
connection.close()

插入操作

import pymysql


def get_max_userid():  # 得到最大id的函式
    connection = pymysql.connect(host='localhost',
                                 user='zy',
                                 password='xzsnm2',
                                 database='testdb',
                                 charset='utf8'
                                 )

    with connection.cursor() as cursor:
        sql = 'select max(userid) from user'
        cursor.execute(sql)

        result_set = cursor.fetchone()  # 取出一個 用fetchone
        print(result_set[0])
        return result_set[0]

    connection.close()


# 1建立資料庫連線
connection = pymysql.connect(host='localhost',
                             user='zy',
                             password='xzsnm2',
                             database='testdb',
                             charset='utf8'
                             )
try:
    # 2.建立遊標物件
    with connection.cursor() as cursor:
        max_id = get_max_userid()
        # 3.執行SQl操作
        sql = 'insert into USER (userid,name) VALUE (%s,%s)'  # 插入操作
        id = max_id + 1
        name = 'tom' + str(id)
        cursor.execute(sql, [id, name])

        # 4.提交資料庫事物
        connection.commit()
        print('插入成功')
except pymysql.DatabaseError:
    # 4.出錯,回滾資料庫事物
    connection.rollback()
    print('插入失敗')
    # 5.關閉遊標
    # cursor.close()
finally:
    # 6.關閉資料庫連線
    connection.close()

資料更新

import pymysql

# 1建立資料庫連線
connection = pymysql.connect(host='localhost',
                             user='zy',
                             password='xzsnm2',
                             database='testdb',
                             charset='utf8'
                             )
try:
    # 2.建立遊標物件
    with connection.cursor() as cursor:
        # max_id = get_max_userid()
        # 3.執行SQl操作
        sql = 'update user set name=%s WHERE userid=%s'  # 更新

        cursor.execute(sql, ['ING', 2])

        # 4.提交資料庫事物
        connection.commit()
        print('更新成功')
except pymysql.DatabaseError:
    # 4.出錯,回滾資料庫事物
    connection.rollback()
    print('更新失敗')
    # 5.關閉遊標
    # cursor.close()
finally:
    # 6.關閉資料庫連線
    connection.close()

刪除操作

import pymysql

# 1建立資料庫連線
connection = pymysql.connect(host='localhost',
                             user='zy',
                             password='xzsnm2',
                             database='testdb',
                             charset='utf8'
                             )
try:
    # 2.建立遊標物件
    with connection.cursor() as cursor:
        # max_id = get_max_userid()
        # 3.執行SQl操作
        sql = 'delete from user  WHERE userid=%s'  # 更新

        cursor.execute(sql, [5])

        # 4.提交資料庫事物
        connection.commit()
        print('刪除成功')
except pymysql.DatabaseError:
    # 4.出錯,回滾資料庫事物
    connection.rollback()
    print('刪除失敗')
    # 5.關閉遊標
    # cursor.close()
finally:
    # 6.關閉資料庫連線
    connection.close()