aws php nosql query,[AWS][Nosql]DynamoDB动手实验101

这个实验包括:sql

建立一个DynamoDB 的Table(表)

添加数据到Table中

查询Table中的数据

删除数据库

补充,JSON和 Python 的query

Task1:建立一个DynamoDB 的Table(表)

0ecdf2c6746a4a6b646e98560952c341.png

1a3fdf3122bd35327ef3beeef7ecf1d1.png

Task2:添加数据到Table中

69627db2e1aed9edc9a721cc475b8dd0.png

42f0e92de23cb26485ea52ee39c1cac5.png

844a90490167356c4e94d7abbc77e922.png

3a55fc7d3c4e4c1cffdbea675f1e9e62.png

0d385a7943abf59a638aabb461a29515.png

99de5527ee29d361bf3bc73b8c8ff561.png

Task3:查询Table中的数据

a7184c390b29db32ca4430708c1e22bb.png

条件是and ,不是or。

能够添加Filter数据库

fa2150afb7497d221ed7d07df67d4163.png

Task4:删除数据库

0f990b9d583dd5eff7727a6da8acab3d.png

87558866cc7340b7fc8a852579b3458c.png

那么应用程序查询的方式呢?

如下是 DynamoDB 中的几个 Query 示例:less

###返回 Aritist = 'No One You Know' SongTitle='Call Me Today' 的歌曲:

{

TableName: "Music",

KeyConditionExpression: "Artist = :a and SongTitle = :t",

ExpressionAttributeValues: {

":a": "No One You Know",

":t": "Call Me Today"

}

}ide

###返回 Aitist='No One You Know’ 的全部歌曲:3d

{

TableName: "Music",

KeyConditionExpression: "Artist = :a",

ExpressionAttributeValues: {

":a": "No One You Know"

}

}视频

###返回Aritist ='No One You Know' 而且 SongTitle 开头为Today 而且价格小于1 的全部歌曲:blog

{

TableName: "Music",

KeyConditionExpression: "Artist = :a and contains(SongTitle, :t)",

FilterExpression: "price < :p",

ExpressionAttributeValues: {

":a": "No One You Know",

":t": "Today",

":p": 1.00

}

}ci

###在 DynamoDB 中,必须使用 ExpressionAttributeValues 做为表达式参数(例如,KeyConditionExpression和 FilterExpression)中的占位符。

这相似于在关系数据库中使用绑定变量,在运行时将实际值代入 SELECT语句。 下边是query的语法:get

###返回 Aritist = 'No One You Know' SongTitle='Call Me Today' 的歌曲:

{

TableName: "Music",

KeyConditionExpression: "Artist = :a and SongTitle = :t",

ExpressionAttributeValues: {

":a": "No One You Know",

":t": "Call Me Today"

}

}it

###返回 Aitist='No One You Know’ 的全部歌曲:

{

TableName: "Music",

KeyConditionExpression: "Artist = :a",

ExpressionAttributeValues: {

":a": "No One You Know"

}

}

###返回Aritist ='No One You Know' 而且 SongTitle 开头为Today 而且价格小于1 的全部歌曲:

{

TableName: "Music",

KeyConditionExpression: "Artist = :a and contains(SongTitle, :t)",

FilterExpression: "price < :p",

ExpressionAttributeValues: {

":a": "No One You Know",

":t": "Today",

":p": 1.00

}

}

###Python的查询语法:

###返回 Artist='No One You Know' 而且SongTitle='Somewhere Down The Road' 的全部歌曲:

response = table.query(

KeyConditionExpression=Key('Artist').eq('No One You Know') & Key('SongTitle').eq('Somewhere Down The Road')

)

items = response['Items']

print(items)

##返回值,output:

[{

u'Artist': u'No One You Know',

u'AlbumTitle': u'Somewhat Famous',

u'CriticRating': Decimal('8.4'),

u'Year': Decimal('1984'),

u'Genre': u'Country',

u'SongTitle': u'Somewhere Down The Road'

}

]

###返回Aritist ='No One You Know' 而且 SongTitle 开头为 Look 的全部歌曲:

response = table.query(

KeyConditionExpression=Key('Artist').eq('The Acme Band') & Key('SongTitle').begins_with('Look')

)

items = response['Items']

print(items)

###output

[

{

u'Genre': u'Rock',

u'Price': Decimal('0.99'),

u'Artist': u'The Acme Band',

u'SongTitle': u'Look Out, World',

u'AlbumTitle': u'The Buck Starts Here'

}

]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值