# 資料表的操作
###### tags: `程式學習與問題總集`
## 新增資料
* 在查詢資料前必須先新增資料。
1. 建立資料物件
2. 將物件用add()方法添加到站存資料db.session之中
3. 最後commit
* 新增單筆資料
```python=
student = students('rex', '0962050115', "taiwan", 'rex@gmail')
db.session.add(student)
db.session.commit()
```
* 新增多筆資料
```python=
datas = [students('jaula', '0962050666', "taiwan", 'julia@gmail'), students('python', '0962550115', "taiwan", 'python@gmail')]
db.session.add_all(datas)
db.session.commit()
```
* 查看資料

* 資料已顯示

## 查詢資料
* Flask_SQLAlchemy在資料物件的類別上使用了query屬性,使用時會生成新的資料,將所有資料返回。
* 查詢資料
```python=
#前者是取得所有資料,後者是指第一筆
query.all() query.first()
```
* 篩選條件
```python=
datas = students.query.filter_by(name = 'rex').first() #all()
```
* query.get()主索引攔查詢
```python=
data = students.query.get(1)
#get()取回的是所屬的資料物件,而非串列
```
* 範例
```python=
@app.route('/queryall')
def queryall():
datas = students.query.all()
msg = ''
for student in datas:
msg += f'{student.name}, {student.tel}, {student.addr}, {student.email} <br>'
return msg
```
* 結果

* 範例
```python=
@app.route('/queryuser/<int:uid>')
def queryuser(uid):
student = students.query.get(uid)
return f'{student.name}<br>, {student.tel}<br>, {student.addr}<br>, {student.email}<br>'
```
* 結果

* 範例
```python=
@app.route('/queryname/<string:name>')
def queryname(name):
student = students.query.filter_by(name = name).first()
return f'{student.name}<br>, {student.tel}<br>, {student.addr}<br>, {student.email}<br>'
```
* 結果

## 更新、刪除資料
* 更新,範例
```python=
@app.route('/updateuser/<int:uid>')
def updateuser(uid):
student = students.query.get(uid)
student.name = student.name + 'check'
db.session.commit()
return '修改成功'
```
* 結果

* 刪除,範例
```python=
@app.route('/deleteuser/<int:uid>')
def deleteuser(uid):
student = students.query.get(uid)
db.session.delete(student)
db.session.commit()
return 'delete data Successfully'
```
* 結果
