排序查询
mysql中升序asc降序desc
列如:
升序select * from 表名 order by 表中的字段 asc(mysql中默认是升序排序,可不写);
降序:select * from 表名 order by 表中的字段 desc;
若要进行同时一个升序一个降序 列如:
order by 升序 字段asc ,降序字段desc;
按照属性成绩从小到大查询
select * from student order by math;
按照数学成绩从小到大查询
select * from student order by math desc;
分页查询
取除第三条到第六条
select * from student limit 2,4
查询出数字成绩高到低前两名
select * from student order by math desc limit 0 ,2
分组查询
创建一个订单表
create tableemployee(idint,namevarchar(20),sexvarchar(20),ageint);
insertintoemployeevalues(1,'sunsan','男',18);
insertintoemployeevalues(2,'lisi','男',18);
insertintoemployeevalues(3,'wangwu','女',19);
insertintoemployeevalues(4,'zhaoliu','男',15);
分组查询
select * from employee group by sex;
分组查询条件
select * from employee group by sex having age > 18;
报表查询
count个数
sum 总数
avg平均数
max最大值
min最小值
统计班级里边有多少学生
select count(*) from student;
统计总成绩大于250分的人数
select count(*) from student where (math+english+chinese)>250;
统计班级里边各科总成绩
select sum(math),sum(english), sum (chinese)from student;
统计一下语文平均成绩
select sum(chinese)/count(*) from student;
select avg(chinese) from student;
创建数据库表
constraint 约束
foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,能够让表与表之间的数据,更加的完整,关联性更强
foreign key 语句的式例 foreign keu references student
创建班级表
create table class(idintprimary key auto_increment,namevarchar(20));
创建学生表
createtablestudent(idintprimarykeyauto_increment,namevarchar(20),sexvarchar(20)class_idint,constraint foreignkey(class_id)referencesclass(id));
插入班级数据
insert into class values (1,'ceshiban');
insert into class values(2,'kaifa');
插入学生数据
insert into student values(1,'zhangsan','nan',1);
insert into student values(2,'lisi','nan',2);
insert into student values(3,'jingjing','nan',2);
连表查询
分类:内连接、外连接、交叉连接
交叉查询
交叉查询,又叫笛卡尔积查询,会将左表和右表的信息,做一个乘积将所有信息查询出来,会产生临时表,比较占用内存,生成的记录数=表1 X表2
内连接查询
内连接,inner join on 查询两张表,设定条件,将两张表中对应的数据查询出来
不会产生笛卡尔积,不会产生临时表,性能高
左外连接
左外连接 left join on 设定条件,将两张表对应的数据查询出来,同时将左表自己没有关联的数据也查询出来
右外连接
右外连接 right join on 设定条件,将两张表对应的数据查询出来,同时将右表自己没有关联的所有数据查询出来