Mysql学习笔记(3)-查询数据大全

1.查询所有的列
2.查询指定列
3.查询时使用别名
4.查询时添加常量列
5.查询时合并列
6.查询时去除重复记录(distinct)
7.条件查询
8.聚合查询(使用聚合函数查询)
9.分页查询(limit)
10.查询排序
11.分组查询(grop)
12.分组查询后筛选(having)

1.查询所有的列
select * from student;
Mysql学习笔记(3)-查询数据大全_第1张图片
2.查询指定列
select id,name from student;
Mysql学习笔记(3)-查询数据大全_第2张图片
3.查询时使用别名
select id as '编号',name as '姓名' from student;
Mysql学习笔记(3)-查询数据大全_第3张图片
4.查询时添加常量列
select id,name,age,'软件1501' as '班级'  from student;
Mysql学习笔记(3)-查询数据大全_第4张图片
image.png
5.查询时合并列

查询每个学生的java和和html总成绩

select id ,name ,(java+html)as '总成绩' from student;
Mysql学习笔记(3)-查询数据大全_第5张图片
6.查询时去除重复记录(distinct)
select distinct(html) from student; 
Mysql学习笔记(3)-查询数据大全_第6张图片
7.条件查询

1)逻辑条件:and(与) or(或)
2)比较条件: > < >= <= == <>(不等于) between and
3)判断条件(null 空字符串):is null / is not null /=' '(等于空字符串) / <>' '
4)模糊条件:like

  • 1)逻辑查询
    需求:查询姓名为xiaoming html为88 的学生信息
select * from student where html=88 and name="xiaoming";
Mysql学习笔记(3)-查询数据大全_第7张图片

需求:查询id为2或者java为98的学生信息

select * from student where id=2 or java=98;
Mysql学习笔记(3)-查询数据大全_第8张图片
  • 2)逻辑查询
    需求:查询java大于70小于80的人
select * from student where java>70 and java<80;
Mysql学习笔记(3)-查询数据大全_第9张图片

需求:查询java大于70小于80的人用between and

select * from student where java between 70 and 80;
Mysql学习笔记(3)-查询数据大全_第10张图片
  • 3)判空查询
    需求:查询姓名为空的学生
select * from student where name is null;
Mysql学习笔记(3)-查询数据大全_第11张图片
  • 4)模糊查询
    需求:查询所有姓小的人
select * from student where name like '小%';
Mysql学习笔记(3)-查询数据大全_第12张图片

需求:查询姓小但是名字为两个字的学生信息('小_')

select * from student where name like '小__';
Mysql学习笔记(3)-查询数据大全_第13张图片

8.聚合查询(使用聚合函数查询)

常用的聚合函数:
1.sum(), 求和
2.avg(), 求平均值
3.max(),求最大值

  1. min(), 求最小值
    5.count() 统计数量,不包含null

需求:查询学生的math总成绩

select sum(math) as 'math的总成绩' from students;
Mysql学习笔记(3)-查询数据大全_第14张图片

需求:查询学生math的平均成绩

select avg(math) as '数学平均成绩' from students;
Mysql学习笔记(3)-查询数据大全_第15张图片

需求:查询学生math的最高分

select max(math) from students;
Mysql学习笔记(3)-查询数据大全_第16张图片

需求:查询学生math的最低分

select min(math) from students;
Mysql学习笔记(3)-查询数据大全_第17张图片

需求:查询学生math的最低分

select count(id) from students;
Mysql学习笔记(3)-查询数据大全_第18张图片

9.分页查询(limit)

带两个参数:起始和长度
一般分页查询当前页的数据用:select * from students limit(当前页-1)*每页显示数据条数。

select * from students limit 0,2;
Mysql学习笔记(3)-查询数据大全_第19张图片

10.查询排序

默认为插入记录的顺序查询
order by 字段 asc/desc
asc:顺序,正序。数据:递增,字母:自然顺序(a-z)
desc:倒序,反序。数据:递减,字母:自然反序(z-a)

select * from students order by name asc;
select * from students order by name desc;
Mysql学习笔记(3)-查询数据大全_第20张图片

需求:按照english 正序,按照math倒序排列

select * from students order by english asc,math desc;
Mysql学习笔记(3)-查询数据大全_第21张图片
11.分组查询(grop)

需求:查询成绩相同的人数

select english from students group by english;
select english,count(*) from students group by english;
Mysql学习笔记(3)-查询数据大全_第22张图片
12.分组查询后筛选(having)

需求:查询成绩相同数大于等于2的人数

select english,count(*) from students group by english having count(*)>1 ;
Mysql学习笔记(3)-查询数据大全_第23张图片

小练习(下附students.sql):

Mysql学习笔记(3)-查询数据大全_第24张图片

students.sql

create table students(
    id int,
    name varchar(20),
    chinese int,
    english int,
    math int
);
select * from students;
insert into students(id,name,chinese,english,math) values(1,'小明',89,78,90);
insert into students(id,name,chinese,english,math) values(2,'小红',67,53,95);
insert into students(id,name,chinese,english,math) values(3,'张小非',87,78,77);
insert into students(id,name,chinese,english,math) values(4,'小花花',88,98,92);
insert into students(id,name,chinese,english,math) values(5,'杨飞',82,84,67);
insert into students(id,name,chinese,english,math) values(6,'张三',55,85,45);
insert into students(id,name,chinese,english,math) values(7,'照小飞',75,65,30);

代码演示:

select * from students;
select name,english from students;
select distinct(english) from students;
select name,chinese as '中文',english as '英语',math as '数学'from students;
select (chinese+english+math) '总成绩'  from   students where (chinese+english+math)>200;
select name,(chinese+english+math) as '总成绩' from students;
select name,(chinese+english+math+10) as '总成绩' from students;

上接文章:Mysql学习笔记(2)-管理表数据

文章文集:JavaEE--学习笔记

你可能感兴趣的:(Mysql学习笔记(3)-查询数据大全)