python 資料庫連線 CRUD

2022-03-20 11:58:35 字數 2405 閱讀 2248

import sqlalchemy

from sqlalchemy import create_engine

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy import column,string,integer

from sqlalchemy.orm.session import sessionmaker

from sqlalchemy import func

engine = create_engine('mysql+pymysql://root:412013@localhost/testdb?charset=utf8',echo=false)

base = declarative_base() # 生產orm基類

class user(base):

__tablename__ = 'user' # 表名

id = column(integer, primary_key=true)

name = column(string(32)) # varchar(32)

password = column(string(64)) # varchar(64)

def __init__(self,name,password):

self.name = name

self.password = password

def __repr__(self):

return '<@user:[name=%s,password=%s]> ' %(self.name,self.password)

base.metadata.create_all(engine) # 不存在建立資料表

session_class = sessionmaker(bind=engine) # 建立與資料庫的會話session class ,注意,這裡返回給session的是個class,不是例項

session = session_class() # 生產session例項

user_obj = user(name='kaige',password='123456') # 生成你要建立的資料物件

print(user_obj.name, user_obj.id) # 此時還沒建立物件呢,列印一下id發現還是none

# 插入資料 , 必須要commit

session.add(user_obj) # 把要建立的資料物件新增到這個session裡, 一會統一建立

print(user_obj.name, user_obj.id) # 此時也依然還沒建立

# 提交資料

session.commit()

# session.rollback() 回滾

# 查詢 一條

# my_user = session.query(user).filter_by(name='kaige').first()

# 查詢所有

# my_user = session.query(user).filter(user.name=='kaige').all()

# 修改

# my_user = session.query(user).filter_by(name='kaige').first()

# my_user.name = 'i love you22222222'

# session.commit() # 修改插入需要commit

# 包含多個條件

# my_user = session.query(user).filter(user.name.in_(['kaige', 'i love you'])).all()

# 模糊查詢

# my_user = session.query(user).filter(user.name.like("i%")).all()

# 統計

# my_user = session.query(user).filter(user.name == 'kaige').count()

# 分組

''' select count(user.name) as count_1, user.name as user_name

from user group by user.name

'''# print(session.query(func.count(user.name),user.name).group_by(user.name).all() )

# 輸入結果 : [(1, 'i love you'), (2, 'i love you22222222'), (19, 'kaige')]

# session.query(user).filter(user.name.in_(['jack','rain'])).all()

print(my_user)

CRUD 資料庫SQL操作

概念 crud是指在做計算處理時的 增加 create 讀取 retrieve 重新得到資料 更新 update 刪除 delete 幾個單詞的首字母簡寫。主要被用在描述軟體系統中資料庫或者持久層的基本操作功能。createcreate table stu id varchar 20 primary...

Mysql資料庫操作CRUD

一 資料庫建立 1 建立資料庫 create database 資料庫名稱 2 建立資料庫並檢查是否存在,如果不存在就建立,存在就不建立。create database if not exists 資料庫名稱 3 建立資料庫檢查是否存在並指定字符集 create database if not ex...

資料庫的CRUD操作

dml data mainpuulation language 資料操作語言 dql data query language 資料查詢語言 運算元據庫 crud c create 建立 建立資料庫 create database 資料庫名 建立資料庫並判斷不存在則建立 create database...