十一. 數據庫和python

一 .python和數據庫

1.鏈接數據庫

import pymysql 
# #01 鏈接數據庫
#     參數1: mysql主機名    192.168.245.1
#     參數2: 用戶名
#     參數3: 密碼
#     參數4: 鏈接數據庫名
db=pymysql.connect("localhost","root","root","a")

# 02 建立一個cursor對象
cursor=db.cursor()

# 03構造sql語句
sql="select version()"

# 04 執行sql語句
cursor.execute(sql)

#05 獲取返回數據
data=cursor.fetchone()
print(data)                  #('5.5.47',) mysql版本號
# 06 斷開
cursor.close()
# 07 關閉
db.close()

2. 建立表

import pymysql

db=pymysql.connect("localhost","root","root","db1")

# 02 建立一個cursor對象
cursor=db.cursor()

# 檢查表是否存在 ,若是存在則刪除
cursor.execute("drop table if exists info")

# 建表
sql='create table info (id int  auto_increment primary key, money int not null)'

# 執行sql語句表
cursor.execute(sql)

3. 插入數據

import pymysql 
db=pymysql.connect("localhost","root","root","a")

# 02 建立一個cursor對象
cursor=db.cursor()

# 插入數據
sql='insert into bb values(0,5000)'
try:
    cursor.execute(sql)
except:

    # 若是提交失敗 滾回上一次數據
    db.rollback()

# 06 斷開
cursor.close()
# 07 關閉
db.close()

4. 更新數據

import pymysql 


# #01 鏈接數據庫
#     參數1: mysql主機名
#     參數2: 用戶名
#     參數3: 密碼
#     參數4: 鏈接數據庫名

db=pymysql.connect("localhost","root","root","a")

# 02 建立一個cursor對象
cursor=db.cursor()

# 更新數據
sql='update bb set money=6662 where id=1'
try:

    cursor.execute(sql)

except:

    # 若是提交失敗 滾回上一次數據
    db.rollback()

# 06 斷開
cursor.close()

# 07 關閉
db.close()

5. 刪除數據

import pymysql 


# #01 鏈接數據庫
#     參數1: mysql主機名
#     參數2: 用戶名
#     參數3: 密碼
#     參數4: 鏈接數據庫名

db=pymysql.connect("localhost","root","root","a")

# 02 建立一個cursor對象
cursor=db.cursor()

# 刪除數據
sql='delete from bb where money=6662'

try:
    cursor.execute(sql)
except:

    # 若是提交失敗 滾回上一次數據
    db.rollback()


# 06 斷開
cursor.close()

# 07 關閉
db.close()

6. 查找數據

""" fetchone() 功能:獲取下一個結果集 結果集是一個對象 fetchall() 功能:接收 所有返回行 rowcount: 是一個只讀屬性,返回execute()方法影響的行數 (就是隻你查了多少條數據) """

import pymysql 


# #01 鏈接數據庫
#     參數1: mysql主機名
#     參數2: 用戶名
#     參數3: 密碼
#     參數4: 鏈接數據庫名

db=pymysql.connect("localhost","root","root","a")

# 02 建立一個cursor對象
cursor=db.cursor()

# 插入數據
sql='select * from cc where money>400'

try:
    cursor.execute(sql)
    reslist=cursor.fetchall()  # 接收 所有返回行
    for row in reslist:
        print(row[0],row[1])


            # 3 500
            # 4 600
            # 5 700

except:

    # 若是提交失敗 滾回上一次數據
    db.rollback()

# 06 斷開
cursor.close()

# 07 關閉
db.close()

7. 數據增刪改查封裝

import pymysql 

class My_Sql():
   
    def __init__(self,host,user,passwd,dbName):

        self.host=host
        self.user=user
        self.passwd=passwd
        self.dbName=dbName

    def connet (self) :
        self.db=pymysql.connect(self.host,self.user,self.passwd,self.dbName)
        self.cursor=self.db.cursor()   


    def close(self):
         self.cursor.close()
         self.db.close()
     
 # fetchone()   查詢 功能:獲取下一個結果集 結果集是一個對象    
    def get_one(self,sql):

         res=None
         try:
            self.connet()
            self.cursor.execute(sql)
            res=self.cursor.fetchone()
            self.close()
         except:
            print("查詢失敗")
         return res

# fetchall()  查詢 功能:接收 所有返回行
    def get_all(self,sql):

         res=()
         try:
            self.connet()
            self.cursor.execute(sql)
            res=self.cursor.fetchall()
            self.close()
         except:
            print("查詢失敗")
         return res


    def insert(self,sql):
        return self._edit(sql)

        
    def update(self,sql):
        return self._edit(sql)


    def delete(self,sql):
        return self.__edit(sql)


    def __edit(self,sql):
        count=0
        try:
            self.connet()
            count=self.cursor.execute(sql)
            self.db.commit()
            self.close()
        except :
            print("提交失敗了")
            self.db.rollback()
        return count
相關文章
相關標籤/搜索