全列查询:
select *from 表名;
1.这一种操作的危险性较大,公司的生产服务器上数据量大,用这个可能会挂!!!!
指定列查询:
select 列名 from 表名;
1.可以一次指定多个列,中间用"逗号,"隔开.
表达式查询:
select 表达式(例如列名+10) from 表名;
1.此处表达式得到的只是一个临时数据,并不会影响本体.
查询结果指定别名:
select 表达式 as 别名 from 表名;
1.取别名的作用就是在数据库中显示时候不会显示的是表达式,而是我们的别名,减少了显示的繁琐.
重复元素保留:
select distinct 列名 from 表名;
1.如果查询结果中存在重复的元素,只需要保留一个
排序查询:
select 列名/* from 表名 order by 列名(这个列名就是你想排序的依据);
这个排序默认为升序,如果要改为降序,则是加上desc.
如select 列名/* from 表名 order by 列名 desc;
select 列名/* from 表名 order by 列名1,列名2;
1.order by 是可以支持多个列依据排序的,但是是有优先级的,优先排序列名1,当列名1相同时,才会根据列名2来排序.
筛选排序查询:
select 列名/* from 表名 order by where 列名(具体是啥根据所需);
1.注意where的后面这个列名是不可以为别名的!!!!
where中的and和or
select * from exam_result where chinese > 80 and english >80;
这个查询的就是在成绩单这个表中,筛选出语文和英语大于80.and是和的意思.
select * from exam_result where chinese > 80 or english >80;
这个查询的就是在成绩单这个表中,筛选出语文或英语大于80.or是或者的意思.
注意:一个where中如果有and也有or会先执行and再去执行or!!!!!!
between这个区间筛选
select * from exam_result where chinese between 80 and 90;
这个查询的就是在成绩单这个表中,筛选出语文成绩是80到90之间的
注意:between是一个闭区间的,包含边界值!!!!
in这个选中值筛选
select * from exam_result where math in(70,68,90,95);
这个查询的就是在成绩单这个表中,筛选出数学成绩是70,68,90,95的
like关键字的通配符查询
%:匹配任意个字符(包含0个,开头结尾皆可用)
_:匹配一个字符(开头结尾皆可用)
select * from exam_result where name like '孙%';
这个就是查询成绩单中姓孙的人,名可以有好几个
select * from exam_result where name like '孙_';
这个就是查询成绩单中姓孙的人,但是后面名只能有一个(此处是一个_一个字符,要两个的话可以打两个下划线!!!)
分页查询
1>limit,限制返回多少个记录的
2>offset,从第几条开始查询
select * from exam_result limit 3 offest 3;
意思是从第三条以后开始查询,查三条(此处不包含第三条)