用户:
小熊与雪查看:16 回复:13 评论:16 创建时间:2021-03-11T20:10:51
你在做BOX3.0是,是不是想做存档功能?
你在游玩别人的地图时,是不是十分羡慕?
如果是,那么这篇教程十分适合你!
闲话少说,进入主题!
1、注意
使用SQL语句时,将语句包含在反引号 ` ` 里面。反引号前添上db.sql如:
db.sql`SELECT * FROM users`
2、技巧
用${}可以将大括号内的值转变为适用语句的类型,可以与字符串相拼接,注:要用反引号引起来。如:
console.log(`${entity.player.name}进入地图`)//益智作者进入地图
`SELECT * FROM users WHERE name=${entity.player.name}` //
3、类型
可以存入表中的类型有:
TEXT字符串 'abc' 、`${entity.player.name}`
INTEGER整数 3、157、-21
REAL浮点(小数) 3.42 、 5.18 、-0.09
NUMERIC其余类型 true、flase
以上是SQL常用的类型
4、表
这是一个SQL表格:
序号 用户名 钱
—————————————
1 '益智作者' 500
2 '吉吉喵' 3000
async function createTable() {
await db.sql`CREATE TABLE IF NOT EXISTS players (
name VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL,
money INTEGER DEFAULT ''
)`;
}
//普通键的创建方法:属性名 类型 DEFAULT 初始值
1、因为要用到await,所以要用async function
2、IF NOT EXISTS players 当不存在players表时,EXISTS存在
3、除搜索键外其他都是普通键 如:
async function createTable() {
await db.sql`CREATE TABLE IF NOT EXISTS players (
name VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL,
money INTEGER DEFAULT '',
ifBig NUMERIC DEFAULT true,
say TEXT DEFAULT ''
)`;
}
//name是搜索键,以后会讲
4、赋值后要加逗号,最后一行不能加,见上代码3-6行末尾(这也是我经常犯的错误)
可以看到,表格主要分为 序号、属性与数值,SQL表创建出来后,里面是没有数据的,这个我们以后再说
这节课,我们主要学了类型与技巧,请大家多多复习~
具体怎么创建,我们在下节课将会运用今天的知识来解决!
留个作业:
1、在上表中,用户名、钱分别是什么类型?
2、用普通键的创建方法:属性名 类型 DEFAULT 初始值 的方法分别创建一个整数、浮点、字符串、其他类型的普通键
FML饭米粒async function createTable() {
await db.sql`CREATE TABLE IF NOT EXISTS players (
name VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL,
money INTEGER DEFAULT ''
)`;
}
这里的money是整数类型,默认值应该为0,不是‘’
点赞0
评论
FML饭米粒求助!!!
db.sql`CREATE TABLE IF NOT EXISTS VIP(
id TEXT PRIMARY KEY UNIQUE NOT NULL,
vip NUMERIC DEFAULT false
)`
world.onPlayerJoin(async ({entity})=>{
const data = await db.sql`SELECT vip FROM VIP WHERE id = ${entity.player.userKey}`
for (const vip of data) {
const data = JSON.stringify(vip)
}
console.log(data)
if(data == 1){
entity.player.invisible=true;
entity.player.canFly=true;
textDialog(entity,'您好,尊贵的VIP用户,您已获得飞行及隐身权限!','VIP系统')
}else{
if(data && !data.length){
await db.sql`INSERT INTO VIP(id, vip) VALUES (${entity.player.userKey}, false)`
}
await db.sql`UPDATE vip SET vip = "true" WHERE id = ${entity.player.userKey}`
………………
为什么我执行了以后告诉我data是[object Object]?请问如何修改?
点赞0
评论
SKQA作业:
1.用户名是字符串,钱是整数
2.
async function createTable(){
await db.sql`CREATE TABLE IF NOT EXISTS table(
int INTEGER DEFAULT 0
fl REAL DEFAULT 0.1 --初始值的类型必须是值的类型吗?
str TEXT DEFAULT '' --和VARCHAR类型有什么区别?
bool NUMERIC DEFAULT true
)
`
}
createTable()//这个已经是异步函数了,需要再套async吗?点赞0
评论