sqlalchemy常用語法

2022-07-04 02:24:10 字數 4269 閱讀 2531

# 新增一條資料

user_obj = user(name="bigberg", passwd="twgdh123")

session.add(user_obj)

session.commit()

# 新增多條資料

user_obj1 = user(name="bigberg", passwd="twgdh123")

user_obj2 = user(name="someone", passwd="twgdh123")

session.add_all([user_obj1,user_obj2])

session.commit()

2.1普通查詢

# filter_by獲取的是物件列表

data = session.query(user).filter_by(name='bigberg').all()

print(data)

print(data[0].id, data[0].name, data[0].passwd)

#輸出[<__main__.user object at 0x0000029dc2d51160>]

1 bigberg twgdh123

# 不指定條件

data = session.query(user).filter_by().all()

print(data)

print(data[0].id, data[0].name, data[0].passwd)

# 輸出

[<__main__.user object at 0x0000026c9d27f0f0>, <__main__.user object at 0x0000026c9d27f160>, <__main__.user object at 0x0000026c9d27f1d0>]

1 bigberg twgdh123

2.2 查詢資料顯性展示

在類中定義

class user(base):

__tablename__ = "user" # 表名

id = column(integer, primary_key=true)

name = column(string(32))

passwd = column(string(64))

def __repr__(self):

return "id:%s name:%s password:%s" % (self.id, self.name, self.passwd)

data = session.query(user).filter_by().all()

print(data)

print(data[0].id, data[0].name, data[0].passwd)

#輸出[id:1 name:bigberg password:twgdh123, id:2 name:jerry password:twgdh123, id:3 name:jack password:twgdh123]

1 bigberg twgdh123

2.3 獲取第一條資料

data = session.query(user).filter_by().first()

print(data)

print(data.id, data.name, data.passwd)

# 輸出

id:1 name:bigberg password:twgdh123

1 bigberg twgdh123

2.4 獲取所有資料

print(session.query(user.id, user.name, user.passwd).all())

#輸出[(1, 'bigberg', 'twgdh123'), (2, 'jerry', 'twgdh123'), (3, 'jack', 'twgdh123')]

2.5 多條件查詢

data = session.query(user).filter(user.id > 2).filter(user.id < 7).all()

print(data)

#輸出[id:3 name:jack password:twgdh123]

2.6 模糊查詢

data = session.query(user).filter(user.name.like('j%')).all()

#輸出[id:2 name:jerry password:twgdh123, id:3 name:jack password:twgdh123]

2.7 and / or

from sqlalchemy import and_, or_

data = session.query(user).filter(and_(user.id > 2, user.name.like('j%'))).all()

print(data)

#輸出[id:3 name:jack password:twgdh123]

2.8 in_

data = session.query(user).filter(user.id.in_([1,3])).all()

print(data)

data = session.query(user).filter(user.name.in_(['bigberg', 'jack'])).all()

print(data)

2.9 排序

data = session.query(user).order_by(user.name.desc()).all()

print(data)

# data = session.query(user).filter(user.name=='marry').first()

data = session.query(user).filter_by(name='marry').first()

data.name = 'tom'

session.commit()

session.query(user).filter_by(name='tom').update()

session.commit()

ession.query(user).filter_by(name='hary').update()

print(session.query(user).filter_by(name='john').all())

# 回滾

session.rollback()

print(session.query(user).filter_by(name='john').all())

session.commit()

#輸出[id:2 name:john password:twgdh123]

mysql> select * from user;

+----+---------+----------+

| id | name | passwd |

+----+---------+----------+

| 1 | bigberg | twgdh123 |

| 2 | hary | twgdh123 |

| 3 | jack | twgdh123 |

+----+---------+----------+

3 rows in set (0.00 sec)

# hary 確實沒有改成 john

data = session.query(user).filter(user.name.like('%a%')).count()

print(data)

#輸出2

from sqlalchemy import func

data = session.query(user.name, func.count(user.name)).group_by(user.name).all()

print(data)

# 輸出

[('bigberg', 1), ('hary', 1), ('jack', 1)]

mysql常用語法 MySQL常用語法

更新資料 update 表名 set 健名 更改的值 where 建 刪除資料 delete from 表名 where 索引 create index 索引名稱 on 表名 鍵名 建立試圖 create view 檢視名 鍵,鍵 as select matchno,abs won lost fro...

mysql基本常用語法 mysql 常用語法

1.1.開啟 service mysql start 1.2.關閉 service mysql stop 1.3.重啟 service mysql restart 2.1.密碼明文 語法 mysql u使用者名稱 p使用者密碼 舉例 mysql uroot p123456 2.2.密碼密文 語法 m...

wiki常用語法

公司啟用了streber執行部分專案管理工作。streber基於wiki系統建立。在streber中,我們可以建立專案 project 可以為專案建立milestone task等等。與其他專案管理系統一樣,可以為每乙個task分配資源,指定執行時間。由於streber基於wiki組建,具備了wik...