操作mysql(圖形介面) 建庫建表
阿新 • • 發佈:2020-11-04
連線Mysql建庫建表
連線伺服器中mysql!
資訊: IP: 39.98.39.173 使用者名稱: root 密碼: root
1. 圖形介面工具: navicate
2. 建庫
3. 建表
分析
# 學生表students
# 學生物件包含屬性(id,姓名,性別,年齡,生日,手機號,地址...) #根據業務需求隨意擴充套件!
# 對應列!
Python操作資料庫
python操作資料庫流程
下載mysql驅動模組(pymysql)
引入模組
建連線(建立和資料庫連線)
執行sql語句
非查詢:增加,刪,修改
查詢:select
處理結果
釋放資源
關連線
關遊標
驅動介紹
python操作mysql驅動/第三方模組: MySQLdb PyMysql
pymysql: 支援2.x 支援3.x
mysqldb: 只支援3.x
#增刪改 SQL安裝模組 pip install pymysql
# 增加 insert into 表名(列1,列2,....) values(值1,值2,...) # 刪除 delete from 表名 ; # 刪除表中所有資料! delete from 表名 where 條件; # 修改 update 表名 set 列1=值1,列2=值2,....; #不加條件,修改所有列!~ update 表名 set 列1=值1,列2=值2,....where 條件; select * from students where sex ='男'; insert into students(name,sex,age,birthday,phone,addr) values(python實現非查詢 非查詢:步驟一樣的! 區別: sql語句不同, 引數個數不同!'劉帥','女',20,now(),'17600950805','山西') ; update students set sex='男' where name ='劉帥' delete from students where name ='劉晒
def my_execute(sql,params): '''非查詢通用功能! sql語句, 引數列表''' # 2.連線 conn = pymysql.connect(host='39.98.39.173',port=13306,user='if __name__ == '__main__': # 通用 sql ='insert into students(name,sex,age,birthday,phone,addr) values(%s,%s,%s,%s,%s,%s)' params=('王五','女',39,'2020-11-03','17600950805','山西') if my_execute(sql,params)>0: print('資料庫操作成功!') else: print('資料庫操作失敗!') 引數如何傳遞root',passwd='root',db='1909C2',c harset='utf8') print(conn) # 3. 獲取遊標 cur = conn.cursor() # 4. 執行sql num = cur.execute(sql,params) #print(f'影響行數:{num}') conn.commit() # 必須手動提交到資料庫! # 5. 釋放資源 cur.close() conn.close() # 返回影響行數! return num
sql ='insert into students(name,sex,age,birthday,phone,addr)# 格式:一行資料就是一個元組! params=('王五','女',39,'2020-11-03','17600950805','山西') num = cur.execute(sql,params)
values(%s,%s,%s,%s,%s,%s)'
批量執行非查詢
sql ='insert into students(name,sex,age,birthday,phone,addr)values(%s,%s,%s,%s,%s,%s)' # 格式:一行資料就是一個元組! params=[('王五1','女',39,'2020-11-03','17600950805','山西'),('王五2','女',39,'2020-11- 03','17600950805','山西')] num = cur.executemany(sql,params) # 結果大於1的
核心物件 連線物件: conn= pymysql.connect(host='IP地址',port=13306,user='使用者名稱',passwd='密 碼',db='資料庫名',charset='utf) conn.close() #關閉 cur= conn.cursor() 建立遊標 遊標 Cursor 操作資料庫依靠遊標! num = cur.execute(sql,引數) 執行非查詢,返回影響的行數! num=cur.executemangy(sql,[(),(),..]) 批量執行非查詢,返回影響行數! cur.close() cur.fetchone() 抓取1條,,返回元組或None cur.fetchall() 抓取所有 cur.fetchmany(大小) 指定抓取大小 cur.next() 遊標下移! 查詢
import pymysql
def get_one():
# 1. 連線
conn = pymysql.connect(host='39.98.39.173', port=13306, user='root',
passwd='root', db='1909C2', charset='utf8')
# 2. 開啟遊標
cur = conn.cursor()
# 3. 執行
sql ='select * from students where sex = %s'
cur.execute(sql,('女'))
#result = cur.fetchone() # 返回一個元組() 預設找第1個!
result = cur.fetchall() # 返回多個元祖 ((),(),(),...)
print(result)
for stu in result:
print(f'id:{stu[0]},名字:{stu[1]}')
# 4.關閉資源
cur.close()
conn.close()
if __name__ == '__main__':
get_one()