Python操纵Mysql数据库的三种方法,实现增删改查
生活随笔
收集整理的這篇文章主要介紹了
Python操纵Mysql数据库的三种方法,实现增删改查
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
這里使用的數據庫是關系型數據庫Mysql
一、首先,需要安裝兩個庫
二、3種實現增刪改查的方法?
1.? 使用原生語句進行增刪改查
2. 使用表結構進行增刪改查
3. 使用集成ORM類操縱數據庫,Flask會用到,非常重要,必須掌握
這里使用的數據庫是關系型數據庫Mysql
一、首先,需要安裝兩個庫
pip install sqlalchemy pip install pymysql二、3種實現增刪改查的方法?
1.? 使用原生語句進行增刪改查
from sqlalchemy import create_engine # 創建引擎 from sqlalchemy import MetaData # 創建屬性 from sqlalchemy import Table # 創建表 from sqlalchemy import Column,String,Integer # 創建表字段# 創建引擎 engine=create_engine(# //用戶名:密碼@IP地址:端口/數據庫"mysql+pymysql://root:root@127.0.0.1:3306/pytest",pool_size=10, # 連接池大小# 超過連接池大小外最多可以創建的連接,也就是一共可以創建15個連接max_overflow=5,echo=True, # 調試信息展示 ) # 取得元數據,介紹數據庫 metadata=MetaData() # 創建用戶表 user=Table('user',metadata, # 表名為user,參數# 列名,類型,是否為主鍵,自增長Column('id',Integer,primary_key=True,autoincrement=True),Column('name',String(20)) ) metadata.create_all(engine) # 創建數據表#方法一:原生語句增刪改查 # 插入,必須用雙引號 engine.execute("insert into user (name) values ('KantLee')") # 更新數據 engine.execute("update user set id=5,name='python' where id=1") # 查詢數據 result=engine.execute("select * from user") # 迭代器 for i in result:print(i) # 元組 # 刪除數據 engine.execute("delete from user where id=5")2. 使用表結構進行增刪改查
from sqlalchemy import create_engine # 創建引擎 from sqlalchemy import MetaData # 創建屬性 from sqlalchemy import Table # 創建表 from sqlalchemy import Column,String,Integer # 創建表字段 from sqlalchemy import select # 創建引擎 engine=create_engine(# //用戶名:密碼@IP地址:端口/數據庫"mysql+pymysql://root:root@127.0.0.1:3306/pytest",pool_size=10, # 連接池大小# 超過連接池大小外最多可以創建的連接,也就是一共可以創建15個連接max_overflow=5,echo=True, # 調試信息展示 ) # 取得元數據,介紹數據庫 metadata=MetaData() # 創建用戶表 user=Table('user',metadata, # 表名為user,參數# 列名,類型,是否為主鍵,自增長Column('id',Integer,primary_key=True,autoincrement=True),Column('name',String(20)) ) metadata.create_all(engine) # 創建數據表# 方法二:表結構的增刪改查 connect=engine.connect() #獲取連接 # 增加數據 connect.execute(user.insert(),{'name':'python'}) # 修改數據,c必須要加 connect.execute(user.update().where(user.c.id==6).values(name='C++')) # 查詢數據 res=connect.execute((select([user.c.name,user.c.id]))) # 迭代器 print(res.fetchall()) # 列表 # 刪除數據 connect.execute(user.delete().where(user.c.id==6)) connect.close()3. 使用集成ORM類操縱數據庫,Flask會用到,非常重要,必須掌握
from sqlalchemy import create_engine from sqlalchemy import Column,String,Integer from sqlalchemy.orm import sessionmaker # 創建連接 from sqlalchemy.ext.declarative import declarative_base # 創建表的基類# 創建引擎 engine=create_engine(# //用戶名:密碼@IP地址:端口/數據庫"mysql+pymysql://root:root@127.0.0.1:3306/pytest",pool_size=10, # 連接池大小# 超過連接池大小外最多可以創建的連接,也就是一共可以創建15個連接max_overflow=5,echo=True, # 調試信息展示 )Base=declarative_base() # 每張表都是一個類 # 創建host表 class Host(Base):__tablename__='hosts' # 表名id=Column(Integer,primary_key=True,autoincrement=True)hostname=Column(String(64),unique=True,nullable=False)ip_addr=Column(String(126),unique=True,nullable=False)port=Column(Integer,default=8080)if __name__ == '__main__':Base.metadata.create_all(engine) # 創建表Session=sessionmaker(bind=engine)sess=Session() # 創建連接# 添加數據h=Host(hostname='test1',ip_addr='127.0.0.1')h2=Host(hostname='test2',ip_addr='192.168.1.1',port=8080)h3=Host(hostname='test3',ip_addr='192.168.1.2',port=8081)# 添加數據sess.add(h) # 添加一條數據sess.add_all([h2,h3]) # 添加多條數據# 刪除數據sess.query(Host).filter(Host.id>1).delete()# 更新數據sess.query(Host).filter(Host.id==1).update({'port':3309})# 查詢數據# res=sess.query(Host).filter(Host.id==1).all()# 查詢數據的第二種寫法res=sess.query(Host).filter_by(id=1).all()for r in res:print(r.hostname,r.port)sess.commit() # 提交?
?
總結
以上是生活随笔為你收集整理的Python操纵Mysql数据库的三种方法,实现增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫学习获取腾讯新闻并存入C
- 下一篇: Mysql之WHERE子句