需要自己建一张里面写好数据的表,查询是对这张完成的表进行操作。
我的表:
id name age score
1
2
3
里面的自己填
第一部分:---基本显示数据
第一节:行列操作
显示表所有数据:
select * from student;
显示部分列数据:
select id,name,age from student; 列操作在前面。
显示部分行数据:
select * from student where id=2,age>22; 行操作在后面。
第二节:限制条件
显示约束点数据:
select * from student where age in(1,2,3,4); 找某几个点。
显示约束范围数据:
select * from student where age>=10 and age<=11; 找个范围。
显示null的行
select * from student where age is null;
模糊查询:
select * from student where name like '小%'; %代表名字有小字的都显示出来。
select * from student where name like '小_' _代表小x,显示的只有两个字,且第一个是小。
显示非重复部分(A,A,B,C变为A,B,C):
select distinct age from student;
第三节:逻辑语句
and 语句(且):
select * from student where name like '小%' and age=10;
or 语句(或):
select * from student where name like '小%' or age=10;
第四节:升降序
升序排列:
select * from student order by age asc;
降序排列:
select * from student order by age desc;
第二部分:函数
count()函数:
select count(*) from student; 有多少行。
select count(*) as new_name from student; 命个名。
select count(*) from student group by age; 相同年龄的的有多少个。
select count(*),age from student group by age; 输出相同年龄有多少个的同时把年龄也输出出来。
sum()函数
select sum(score),name from student where name ="小张"; 小张成绩总和。
select sum(score),name from student group by score; 所有人的成绩总和。
avg()函数
select avg(score),name from student group by score;求所有人的平均成绩。
max()和min()函数
select max(score),name from student group by score;成绩最高的科目。
select min(score),name from student group by score;成绩最高的科目。
第三部分:连接查询
我没看太懂,就知道他是处理多个表的方法,就会最简单的,其他的用到再说。
两个表 student1,student2自己打代码,自己看,这个实在是说不清楚。
select * from student1,student2;
select * from student union select * from student1;将两个表合并查询(完全一样的合并)
select * from student union all select * from student1;经两个表不合并查询
第四部分:子查询
我个人把子查询当作综合查询。
分页查询;
select * from student limit 0,5; 从0开始有五条;
select * from student limit 5,5; 从6开始有五条,没错就是6;