用户:
小熊与雪查看:13 回复:7 评论:13 创建时间:2021-06-02T21:01:13
hello!大家好!没错又是我,我们继续来学习SQL
话说之前发过一次教程,不过被莫名其妙的删了……
上期我们讲了SQL的技巧、类型和普通键的创建,童鞋们记得复习一下哦。
https://shequ.codemao.cn/community/367733
作业:恭喜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 '',
bool NUMERIC DEFAULT true,
s VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL
)`
}
createTable()
你们做对了吗?
言归正传
这期我们来讲搜索键的创建,还是这张表。![]()
序号 用户名 钱 userkey
—————————————————————
1 '益智作者' 500 ***
2 '吉吉喵' 3000 ***
async function createTable() {
await db.sql`CREATE TABLE IF NOT EXISTS players (
name TEXT DEFAULT ''
money INTEGER DEFAULT 0
)`;
}
有童鞋给我发了一串报错代码,大家能发现那些错误呢?
我们看看编程手册第四条
1、赋值后要加逗号,最后一行不能加(这也是我经常犯的错误)
也就是第三行要切记加上一个小小的,
还有吗?
还有?
有吗?
这就是我们的手册第五条:
一个SQL表里要有搜索键!
搜索键就好比你的身 份 证 号,每个人的身 份 证 号都是独一无二的,一个身 份 证 号就是一个人,有了它,你的SQL表才能搜索,读取内容,否则他便一无是处!
好,那搜索键怎么创建呢?
见下:
async function createTable() {
await db.sql`CREATE TABLE IF NOT EXISTS players (
userKey VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL,
money INTEGER DEFAULT 0,
name TEXT DEFAULT ''
)`;
}
//搜索键的创建方法:属性名 + VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL



意思就是:创建一个最长为(50),重要且唯一的,不能为空的键。
其实大家只要记住一点:
搜索键的创建方法:属性名 + VARCHAR(50) PRIMARY KEY UNIQUE NOT NULL
大家get到了吗?
我们想一想:为什么不用name作为搜索键呢?
其实也很好理解:因为角色的名字是会变化的,而userkey不会变,他就是岛民们的身 份 证啦!
详见:
留个作业:
1、找茬:下代码有什么问题?
async function createTable() {
await db.sql CREATE TABLE IF NOT EXISTS players (
userKey VARCHAR(50) KEY UNIQUE NOT NULL
money INTEGER DEFAULT ''
name TEXT DEFAULT ''
);
}
答案下期见!
爱探险的可乐呀详细一点解释的话
PRIMARY KEY是主键呀
所谓主键,就是可以唯一标识表中某一行的属性(或属性组),
就是可以确保执行数据更新、删除灯操作的时候不会出现这种搞错对象分不清,张冠李戴的错误
UNIQUE是禁止出现相同值
点赞0
评论