四十 Python 關係型資料庫MySQL

2021-10-10 08:48:45 字數 2152 閱讀 2458

sqlaalchemy是python程式語言下的一款開元軟體。提供了sql工具包及物件關係對映(orm)工具,為高效和高效能的資料庫訪問設計,實現了完整的企業級持久模型

from sqlalchemy import create_engine #匯入建立搜尋引擎

from sqlalchemy.ext.declarative import declarative_base #匯入建立基類函式

from sqlalchemy.orm import sessionmaker #匯入

from sqlalchemy import column,integer,string # 匯入列資訊,整型,浮點型

# 建立引擎

# 使用create_engine建立同資料庫的連線,返回的是乙個engine例項

# 指向資料庫的一些核心介面

# max_overflow=5 最大連線數為5

# echo=true可以在控制台看到操作設計的sql語言

engine=create_engine(

"mysql+pymysql://root:weoopp@localhost:3306/weoopp?charset=utf8",max_overflow=5,echo=true)

# 建立session回話(用作物件導向程式和資料庫之間的快取)

#定義快取物件

session=sessionmaker(bind=engine)

session=session(

)#宣告基類,包含orm對映中相關的類和表的資訊

base=declarative_base(

)# 基於這個基類來建立我們的自定義類,乙個類就是乙個資料庫表

class people(base):

__tablename__=

'people'

id=column(integer,primary_key=true)

name=column(string(30),unique=true)

age=column(integer)

# 字串友好展示

def __repr__(self):

return

"" %(self.id,self.name,self.age)

# 檢查表的存在性,如果不存在的話就會執行建立工作

base.metadata.create_all(engine)

# 新增單條資料

new=people(name=

'bob'

)#建立乙個new物件

new.age=12 # 設定age

session.add(new)

# 新增new物件

session.commit(

)# 提交到資料庫

print(

"bob add success"

)# 新增多條資料

session.add_all(

[ people(name=

'cat',age=14),

people(name=

'dog',age=15)])

session.commit(

)# 查詢資料

s1=(session.query(people).filter_by(name=

'bob'

).all(

))# 所有資料

s2=(session.query(people).filter_by(name=

'bob'

).first(

))#第一條資料

s3=(session.query(people).filter_by(name=

'bob'

).one_or_none(

))print(s1)

# 刪除資料

s2=session.query(people).filter_by(name=

'bob'

).first(

)session.delete(s2)

#刪除session.commit(

)#提交到資料庫

關係型資料庫 非關係型資料庫

關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...

關係型資料庫 非關係型資料庫

2019 02 25 20 38 36 關係型資料庫和非關係型資料的比較 一 關係型資料庫 關係型資料庫最典型的資料結構是表,由二維表及其之間的聯絡所組成的乙個資料組織 優點 1 易於維護 都是使用表結構,格式一致 2 使用方便 sql語言通用,可用於複雜查詢 3 複雜操作 支援sql,可用於乙個表...

關係型資料庫與非關係型資料庫

關係型資料庫與非關係型資料庫的區別 非關係型資料庫的優勢 1.效能 nosql是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過sql層的解析,所以效能非常高。2.可擴充套件性 同樣也是因為基於鍵值對,資料之間沒有耦合性,所以非常容易水平擴充套件。關係型資料庫的優勢 1.複雜查詢 可...