下面我们先容修改的利用,修改的语法比较单一,也比较简单,我们将要运用update关键字,具体实现是如许的:
update 表名 set 列名=值 ,列=值... where 条件;
我们可以一次修改多个列,也可以仅仅修改一列,后面where之后的条件将会限制这次利用具体要修改哪几行的数据。简单来说,语句中的列可以明白为修改的位置的纵坐标,后面条件限制的是横坐标,由此来确定位置。
照旧举个简单的例子吧,现在李四同学已经转入了我们学校,学校决定将他分入二班,学号102,这时间我们就要进行修改,那么我们可以这么实现:
update student set class=2,id=102 where name="李四";
between A and B 范围匹配[A,B] 左闭右闭
option in(option1,option2,option3...),如果option是其中一个,就返回true
is null 是null
is not null 不是null
and和 or或 not非
3.运用like进行模糊匹配
% 代指任意个任意字符(0个也是任意个)
_ 代指任意一个字符
不知道各人有没有打过麻将大概扑克,这两个符号雷同于麻将中的混大概斗田主中的癞子。
例如我们要找一个名字两个的姓孙的人,我们可以这么设置条件:
where name like "孙_";
当我们不知道这个人名字有几个字,我们可以利用%进行模糊匹配:
where name like "孙%"/where name like "%孙%"/where name like "%孙"
以孙开头/包罗孙的/以孙结尾的
此处我们模糊查询的功能有限,在计算机中,还存在正则表达式来帮助我们,我们留到后面先容。
查询
这是最简单的查询,我们前面讨论时,当我们展示结果时运用的就是全列查询。顾名思义,我们可以通过这条语句把整个表展示出来,即把全部行和全部列都查询出来,具体语法是如许的:
select * from 表名;
好比我们上面想查询上面student整个表,我们就可以写:
select * from student;
顾名思义,我们只查询指定列的相干信息,其余信息并不表现出来,具体语法是如许的:
select 列名,列名 from 表名;
这个应该很好明白,我们也演示一下,例如我们只查询门生的姓名和学号:
select name,id from student;
查询字段为表达式、为表达式起别名
这里我们先看一张新的表:
学校进行了一场考试,同学们的成绩分别对应学号纪录了下来,那么现在,我们想查询他们每个人的总分,我们有没有快捷的方式呢,这时我们可以将查询的列酿成表达式,具体语法是如许的:
select 表达式 from 表名;
如许看有些难懂,我们就举这个总分的例子吧:
select id,Chinese+Math+English from test;
我们可以看到结果,我们直接查询出了总分,可以明白为我们可以对列之间进行一定的计算,同时我们当然也可以对单个列进行计算,好比我们想让语文成绩集体减掉非常,我们可以这么利用:
select id,Chinese-10 from test;
这种利用也是答应的。
下面我们来先容别名,照旧上面这个表,我们查询出来了总分,它表现Chinese+Math+English,我感觉好丑,能不能直接称之为总分呢?当然是可以的,我们可以利用as 关键字对它赋予一个新的名字,可以称之为别名,具体表达式是如许的:
select 表达式 as 别名 from 表名;
带入,我们可以这么利用:
select id,Chinese+Math+English as Total from test;
用distinct修饰的列会进行去重,值相同的只会保留一个,我们直接演示。
select distinct English from test;
我们通已往重去掉了一个88。
查询时排序
当我们在查询时要进行排序,我们需要确定两件事
1)针对谁人列作为比较规则
2)排序的时间是升序照旧降序
具体语法是如许的:
select 列名 from 表名 order by 列名 asc/desc;(asc和desc二选其一)
我们一点一点解释。
起首,order by 列名 代表指定某个列进行排序。
其次,asc代表按升序排序,desc代表按降序排序。
末了,asc/desc 可以省略不写,如果省略,就代表按升序排序。
我们要注意,我们是把查询到的结果进行排序,不改变原始数据。我们可以排多个列,如:order by Chinese,math 就是先按语文成绩排,如果语文成绩相同,就再按数学成绩进行排序。
现在,我们想针对门生的总分进行排序,给门生们排出名次,我们可以这么利用:
select id ,Chinese+Math+Englisgh as total from test order by total desc;
如许这个问题也就解决了。
条件查询
下面就来到我们最重要的条件查询,在这里,我们先给出查询的万能公式,当我们进行查询时,可以优先去套用:
select 列名 from 表名 where 条件 (order by);
我们可以发现,我们前面先容的几种方式无非是省略了条件。下面我们就进行演示,我们在这里多举几个例子吧。
1)我们要查询学号为103号同学的成绩
select id,Chinese,Math,English from test where id=103;
我们就可以增长如许的条件。
2)我们想查询102号同学的总分,并表现为“Total”
select id,Chinese+Math+English from test where id=102;
我们可以看到,查询时可以将前面的都进行团结。
分页查询
什么是分页查询呢?当我们进行全列查询,发现数据很多时,我们会很容易想到我们可不可以一次少看一点数据呢?只看前十个可不可以?看第二十个到第三十个行不行呢?答案是肯定的,这里我们就要运用分页查询,对查询出来的纪录数量进行限制。
这是我们进行分页查询的公式:
select 列名 from 表名 where 条件 order by 列名 limit A offset B;
其中A和B是两个整数,offset代表偏移量,而偏移量具体是多大为B,我们可以查询从第B条开始往后共A条数据,不加offset,则从0开始。 select * from test limit 1 offset 3;