record 10 程式與資料庫

2022-07-13 12:51:10 字數 2450 閱讀 5816

#__author: hasee

#date: 2018/1/17

# python程式連線資料庫,需要提前準備好第三方庫(不同型別的資料庫第三方庫不同)

# 利用python開發環境中自帶的pip工具完成第三方庫的安裝 pip install pymysql

# 資料庫連線過程

# 1、準備第三方庫

# 2、在程式中import模組

# 3、利用pymysql模組中的connect建立與資料庫伺服器的連線

# 4、建立連線後返回連線物件

# 4.1 close()

# 4.2 commit()

# 4.3 rollback()

# 4.4 cursor()

# 5、利用連線物件呼叫cursor()建立乙個游標物件,完成對資料庫的操作

# 5.1 execute()

# 5.2 executemany()

# 5.3 callproc()

# 5.4 fetchone() 在執行了select命令後

# 5.5 fetchall() 在執行了select命令後

# 5.6 fetchmany()在執行了select命令後

# 5.7 close()

# 6、如果對資料庫做了增、刪、改操作,需要commit()

# 7、釋放游標、釋放連線

import pymysql

# connect()函式返回乙個資料庫連線物件,主要負責管理程式與資料庫的連線

# grant all on *.* to 'root'@'%' identified by '123456'

# flush previleges

conn = pymysql.connect(host='192.168.8.30', port=3306, user='root', password='123456', db='test', charset='utf8')

cur = conn.cursor() # 建立游標物件,主要負責完成資料庫中資料的具體操作

cur.execute('select * from student')

# result1=cur.fetchone() #readline()相似

# print(result1) #fetchone()獲取結果集中的一行記錄,並把這一行記錄中的多個屬性值放到元組中管理

# result2=cur.fetchall() #readlines相似

# print(result2) #fetchall()獲取多行記錄,每行記錄包含多個屬性值 放到元組(巢狀)中管理 外層元組管理多行記錄,內層元組管理每行記錄的多個屬性值

# result3=cur.fetchmany(2) #同fetchall()類似,需要指定獲取的記錄數量

# print(result3)

# result=cur.execute('insert into student values(1,"zhangsan")) #execute()返回值為sql命令執行後,資料庫中收到影響的記錄數量

# cur.execute('insert into student values(%d,%r)'%(i,'zhangsan'+str(i)))

# cur.execute('insert into student values(%d,"zhangsan")'%10) #字串格式化

# cur.execute('insert into student values(%s,"zhangsan")',10) #第二個引數

# cur.execute('insert into student values(%s,%s)',[10,'zhangsan'])

# cur.execute('insert into student values(%s,%s),(%s,%s)',[10,'zhangsan',20,'lisi'])

# cur.executemany('insert into student values(%s,"zhangsan")',[1,2,3,4,5]) #executemany() 將同樣一條sql命令重複執行多次,相當於execute()+for迴圈

# cur.executemany('insert into student values(%s,%s)',[[1,'zhangsan'],[2,'lisi'],[3,'wangwu']])

'''for i in range(1,6):

cur.execute('insert into student values(%s,"zhangsan")',i)

'''# cur.callproc('p1') #完成資料庫中已經定義好的儲存過程的呼叫(儲存過程不能有輸出引數)

cur.close()

conn.commit() # 提交事務,程式中對資料庫做的操作預設都是屬於同乙個事務的

# conn.rollback() #撤銷事務

conn.close()

record 11 程式練習,取款機(資料庫)

import pymysql conn pymysql.connect host 192.168.8.30 port 3306,user root password 123456 db hzdl charset utf8 cur conn.cursor while true 提示使用者輸入賬號 pr...

資料庫10 資料庫引擎

索引的特點 缺點 索引的型別 hash 索引的分類 單列索引 乙個索引只包含乙個列,乙個表可以有多個單列索引 組合索引 組合多個字段建立索引,使用最左側字段才能使用索引 全文索引 支援全文查詢,允許定義索引的列 現重複值和空值 空間索引 對空間型別的字段進行索引 索引的設計要求 查詢索引是否在使用的...

資料庫考點 10

next key鎖 行鎖 gap鎖 行鎖 行鎖 即record lock,指對單個行記錄上的鎖.gap鎖 gap lock 間隙鎖 表示鎖定乙個範圍,但不包括記錄本身.其主要目的是為了防止同一事務的兩次當前讀出現幻讀的情況.它在rc及ru隔離級別中是沒有的,在rr以及序列化中預設支援,這就是為啥rc...