Skip to main content

MySql数据库

该模块需要开发者掌握一定的“SQL”语法

如果你还不会SQL语法,请前往https://www.runoob.com/sql/sql-tutorial.html 学习相关语法.

小程序开发中,我们需要将大量数据存储在数据库,或从数据库获取数据.

云数据库账号注册

AirScript 为各位开发者 提供了 云数据库,免去开发者服务器部署环境.

开发者只需注册,登录AirScript 开发者账号,即可拥有自己的云端Mysql端数据库.

    1. 登录开发者后台,并点击 "数据库"
    1. 点击 “新增” 增加数据库账号,与密码
    1. 这样你就生成了一个云端Mysql数据库
创建成功后得到: 主机地址,端口,用户名,数据库密码,数据库名 .

pymsql连接时需使用.



导包

import pymysql

连接

Airscript 内置 pymysql 包方便对mysql数据库的访问

  • 连接数据库
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库


# 执行完毕后记得关闭db,不然会并发连接失败哦
db.close()

创建表

我们可以配合,数据库后台 来查看执行结果

# 导包
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库

cursor = db.cursor()
res = cursor.execute("create table stu(id int ,name varchar(20),gender int,age varchar(10))")
print(res)

# 执行完之后要记得关闭游标和数据库连接
cursor.close()
db.close()

我们发现 表已经创建成功了

插入数据

我们可以配合,数据库后台 来查看执行结果

# 导包
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库

cursor = db.cursor()
res = cursor.execute("INSERT INTO stu ( id, name,gender,age ) VALUES ( 10,'张三',1,'12岁')")
db.commit(); # 不要忘了提交,不然数据上不去哦
print(res)

# 执行完之后要记得关闭游标和数据库连接
cursor.close()
db.close()

我们通过数据库后台,可以看到数据已经上去了.

查询数据

我们可以配合,数据库后台 来查看执行结果

# 导包
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库

cursor = db.cursor()
cursor.execute("SELECT * FROM stu WHERE name = '张三'" )
results = cursor.fetchall()
# 循环遍历所有数据
for row in results:
# 我们的表数据,总共4列,因此逐个获取每列数据
print('id',row[0])
print('name',row[1])
print('gender',row[2])
print('age',row[3])

# 执行完之后要记得关闭游标和数据库连接
cursor.close()
db.close()

更改数据

我们可以配合,数据库后台 来查看执行结果

# 导包
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库

cursor = db.cursor()
res = cursor.execute("update stu set age = '99岁' WHERE name = '张三'")
db.commit(); # 不要忘了提交,不然数据上不去哦
print(res)

# 执行完之后要记得关闭游标和数据库连接
cursor.close()
db.close()

删除数据

我们可以配合,数据库后台 来查看执行结果

# 导包
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库

cursor = db.cursor()
# res = cursor.execute("delete from stu") # 删除所有数据
res = cursor.execute("delete from stu where name='张三'")
db.commit(); # 不要忘了提交,不然数据上不去哦
print(res)

# 执行完之后要记得关闭游标和数据库连接
cursor.close()
db.close()

删除表

我们可以配合,数据库后台 来查看执行结果

# 导包
import pymysql

db = pymysql.connect(
host="8.140.162.237", #开发者后台,创建的数据库 “主机地址”
port=3307, #开发者后台,创建的数据库 “端口”
user='换成自己的用户名', #开发者后台,创建的数据库 “用户名”
password='换成自己的密码', #开发者后台,创建的数据库 “初始密码”
database ='换成自己的', #开发者后台 ,创建的 "数据库"
charset='utf8mb4' ""
) #连接数据库

cursor = db.cursor()
res = cursor.execute("drop table stu") # 这样这个表就被彻底删除了
db.commit(); # 不要忘了提交,不然数据上不去哦
print(res)

# 执行完之后要记得关闭游标和数据库连接
cursor.close()
db.close()



## Json

### 转换

```python
#导包 标准json库
import json

在http数据传递,或者对象格式化时候.都需要 Json 和Object 的互相转换.

我们可以通过Python 的标准json库来完成操作

该库包含很多的 参数与方法,如需查看请点击 json文档

class 转 json

# 导包json
import json

# 一个 object 对象
obj = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

# 转换为 json String
jsonstr = json.dumps(obj)

print(jsonstr)

json 转 class

# 导包json
import json

# 一段json 字符串
jsonStr = '[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]'

# 转换为对象,方便属性访问
obj = json.loads(jsonStr);

# 访问对象中的属性
print(obj[0]['a'])
print(obj[0]['b'])