每次笔试的时候,有两道题我总是会留空白。
一个是写sql语句,一个是用代码写一道算术题。
现在我是希望sql语句至少可以答对一半吧!
而笔试题在我印象中,无非就是增删改查,而且还是最基础的(毕竟工作中都不怎么用。。。),所以我现在说一下这几个基本的sql语句吧。
在详细说明前,必须明确一个表的概念。
游戏中的所有数据都会存在数据库中,常用的比如mysql,redis。而数据库里,比如最常用的mysql都是以一张张表构成的。
而表的构成方式可以参考excel表,有每行对应的每列,通过每行每列的存的值来保留数据。
比如,每款游戏都应该会有个roleinfo表(role,角色;info,信息,就是角色信息表的意思),这张表里存的就是玩家的角色数据,比如玩家id,玩家名称,玩家等级,vip等级,创建角色时间,上次登录时间等等比较常规的数据。
我用excel表做个说明:
假设这是王者荣耀的角色表的一部分。。。
表的名字叫roleinfo,这里节选了四个字段,
roleid 表示角色唯一的id值(这是作为主键的,主键的要求是不能为空值,且不能与本列的值重复。最好做主键一般都会选择玩家的id吧,毕竟id是唯一的。)
name 表示玩家起的角色名字
grade 表示玩家当前的等级
vip_grade 表示玩家当前的vip等级
(每一列都表示一个字段)
如果想要知道玩家的基本属性,直接查询这张表,找到想查询玩家的id。。。就ok了。
好了,知道表的定义,现在开始增删改查吧。
一、新增一条数据
新增一条数据,需要用到insert into 语句。整个连起来就是:
insert into table_name value (值1,值2...)
insert 插入的意思,插入一条数据,就意味着新增一条数据,跟在excel表的手动插入行同理。
into 就是去哪里,跟着后面的表
table_name 这个表示是表的名字,就是你想插入哪张表,就写哪个表的名字。比如现在以roleinfo表为例,那么这个table_name就代表roleinfo表的意思。
value 表示值的意思,后面写的值1,值2就是这个表里面的字段,比如这张roleinfo表就有四个值,中间需要用逗号隔开。
我现在想插入一条新的数据,id是123459(这个得保证表里面没有同样的id,有的话需要先删除,或者直接在这个id后面改写),名字是test,等级是80级,vip等级是0级。
就可以执行:
insert into roleinfo value (“123459”,“test”,“80”,“0”);(分号结尾,代表一个sql语句的结束。)
(后面的value值,跟表里面的列是一一对应的关系。)
进阶版:
insert into roleinfo
(“roleid”,“name”,“grade”,“vip_grade”)
value
(“123459”,“test”,“80”,“0”);
这么写的话,就可以自己设的值有一一对应的关系。虽然复杂点,但是以后如果改表的内容,还是可以使用这个语句。上面那个版本就比较死板,一对一,二对二。
这是插入一行的数据,如果想要插入多行的数据,就只需要在写的value值的括号后面加个逗号,再继续加个括号填写里面的值就行了。
二、删除数据
1.删除一张表的所有数据
delete from table_name
delete 删除的意思
from table_name 从哪张表的意思。 (连起来就是从某张表,删除这张表的所有数据)
温馨提醒:谨慎操作,数据不可逆啊。(删了就删了,主要是会被服务器大佬怼。。。)
2.删除一张表的特定行数据
只需要在上面语句后面加一个限制where 值(一般直接写主键值),直接删除一整行的数据。
比如想删除上面新插入的roleid=123459的数据,就可以写:
delete from roleinfo where roleid = 123459;
where 哪里的意思,主要是加的限制作用,明确删的对象。
where后面跟的roleid = 123459值主要是roleid是主键,一删就是一整行。
三、更改数据
1.更新所有列
update table_name set value (update 更新的意思,set,可以理解为设置,将旧值设为新值)
比如,我想把上面一开始的角色表的等级都更新为120级。我们就可以写:
update roleinfo set grade = “120”;
注意:字段=后面的值 需要用引号。
2.更新特定的列
上面的语句直接就把所有账号的等级都变成120级了,如果想要单独设置等级,就需要加限制where
比如,只想把id=12345 的等级改为120级,就可以:
update roleinfo set grade = “120”where roleid = 123456;
温馨提示:不要把这个语句随便发给运维哦,不然后果自负。
四、查询数据
这是一个最重要的查询语句,就写几个比较常用的。
0.查询表里的所有数据:
select * from table_name;
1.查询列的所有数据
select 字段名 from table_name;
比如想查询这张表的所有角色的等级,就可以:
select grade from roleinfo;
然后可能就会打印下面三个数字(排列顺序可能不太一样。)
2.查询表的多列
这个只需要在字段名后添加一个逗号,再新增一个字段。想加几个就加几个。
比如想查询这张表的所有角色的等级和vip等级,就可以:
select grade,vip_grade from roleinfo;
3.查询单行单列
比如想查询id为123456的等级,只需要在后面加一个where限制语句就行:
select grade from roleinfo where roleid = 123456;
4.查询单行多列
这个跟查询多列是一种情况,只不过在后面多一个where而已:
select grade,vip_grade from roleinfo where roleid = 123456;
5.查询多行多列
比如想查询123456和123457的等级和vip等级,可以在后面加个and:
select grade,vip_grade from roleinfo where roleid = 123456 and roleid = 123457;
扩展一下:
6.可以用比较符号查询
比如想查询角色表里大于60级的数据,则可以:
select grade from roleinfo where grade > 60;
7.给查询结果排序
在上面的例子中有说排列顺序可能不太一样的备注,这是因为数据显示出来可能是从存数据的时间点来的,而不会显示成列表一致,所以可以加一个按a-z的顺序排列,只需要在后面加一个 order by 字段名(order 顺序的意思,by 通过,跟后面的字段名也就是列名连起来就是,给这个字段给排序,通过正序排列。因为这个是默认正序。)
那么第一个例子就可以按顺序展示为:50,80,100语句为:select grade from roleinfo order by grade;
8.给排序再加一个限制
一个表里面有成千上万的数据,如果我想查排名前5的数据呢?那么就需要用到limit语句 (limit 限制的意思。)
比如现在只想查询等级表前2个角色,就可以:
select grade from roleinfo order by grade limit 2;
limit后面的数字代表查询的行数。
那如果我只想查询等级第2的数据呢?也可以:
select grade from roleinfo order by grade limit 1,1;
(limit后面的两个数字,第一个代表的是从第几行开始,相当于一个起始点。第二个数字代表的是行数。1,1代表第一行开始的1行数据;5,4,代表从第5行开始的4行数据。)
温馨提示:程序的排序规则可是从0开始的哦。
哦,对了,学这个增删改查的sql语句有什么作用呢?
0.删数据没有操作过,也不敢瞎操作。我可不想删库跑路不是。。。
1.改数据是可以的,比如某个玩家充值了,但是因为bug没有到账,所以可以手动改一下vip经验值。
2.查询数据,当然一个是因为可以看玩家当前的数据,比如查询一个活动玩家的当前排行榜情况,核对发奖数据是否正确。另一个是可以用来导外网数据直接到内网的。
3.增加数据。上面说到可以导玩家数据到内网,其实可以先通过查询语句把玩家的数据都以sql的形式导出来,再通过插入语句,将玩家的数据插入对应的表,就可以实现数据的导入了。
最后总结一下:
1.增 (在表里新增一条数据)
insert into table_name values 《后面加的是新增的行及字段值,比如grade = “80”》
2.删 (在表里删除一条数据)
delete from table_name where 具体的主键id
3.改
update table_name set 《字段名=新值,比如grade = “80”》 where 具体的主键id
4.查
select 字段名 (所有字段可以用*表示)from table_name where 字段名 order by 字段名(这个是默认按正序) limit 数字 逗号 数字 (限制起始值和行数)
最后的最后,想问个问题:
假设一个玩家充值到的“屠龙宝刀”没有发货,那我们应该用插入语句还是用更新语句呢?
感谢阅读,因技术有限,也操作比较少,有错误的地方烦请不吝赐教。
鞠躬!
同类热门推荐 游戏测试小剧场之登录测试用例 28876人看过 白羊座的性格大全 1883人看过 白羊座男女性格? 30121人看过 党支部班子党史学习教育专题组织生活会对照检查材料范文 60709人看过 马丁•雅克:西方大大低估了中国共产党的理论创新能力及其意义 70399人看过 本站只为传播信息,不对所发布的内容本身负责。如有凯发k8国际手机app下载的版权及其它问题,请联系站长处理。- 上一篇:
- 下一篇:
猜你喜欢
- 2023-03-21化妆基础课程内容「化妆师课程内容」
- 2023-03-21化妆造型师「化妆造型师游戏」
- 2023-03-21小小化妆师「小小化妆师游戏」
- 2023-03-21化妆入门基础知识「最简单化妆三步」
- 2023-03-21化妆基础知识「化妆入门基础知识」
- 2023-03-21学化妆入门基础知识「什么人不建议学化妆」
-
生活百科网创立与2018年,一直不断致力于免费提供生活,经济,健康,母婴等各类百科知识,帮助解答了5w多人,今后我们仍将一如既往的增加百科内容!
- 常见生活百科知识汇总
- 最近发表
- 标签列表