2018-04-01

其中有一个查询,这次就较为全面的写一下MySQL的查询

查询的基本语法为:

select  *  from  表名;

在select后面列使用distinct可以消除重复行,语法为:

select  distinct  字段名  from  表名;

使用where字句对表中的数据筛选,结果为true的行会出现在结果集中,语法为:

select  *  from  表名  where  条件;

比较运算符:

等于 =

大于 >

大于等于  >=

小于 <

小于等于 <=

不等于  != 或 <>

查询标号不大于4的科目

select  *  from  表名  where  id <= 4;

查询姓名不是张三的学生

select  *  from  表名  where  name != "张三";

查询没被删除的男生

select  *  from  表名  where  isdelete=0  and  sex=1;


逻辑运算符:

and     or   not 

查询编号大于3的女同学

select  *  from  表名  where  id>3  and  sex=0;

模糊查询:

like  

%表示任意多个任意字符

_表示一个任意字符

查询姓黄的学生:

select  *  from  表名  where  name  like '黄%';



范围查询:

in 表示在一个非连续的范围内

between...and...   表示在一个连续的范围内

优先级:

小括号,not,比较运算符,逻辑运算符

and比or选运算,如果同时出现并希望先算or,需要结合()使用

聚合函数:

count()表示计算总行数,括号中写星或列名,结果是相同的

max(列)  表示求此列的最大值

min(列)   表示求此列的最小值

sum(列)  表示求此列的和

avg(列)   表示求此列的平均值

分组:

语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3...

分组后的数据筛选:

select  列1,列2,聚合...from  表名

group  by   列1,列2,列3...

having  列1,....聚合...

having后面的条件运算符与where的相同

对比where与having

where 是对from 后面指定的表进行数据筛选,属于对原始数据的筛选

having是对group  by的结果进行筛选

排序:

语法为下

slelect   *  from  表名

order  by  列1  asc(从小倒下排列,即升序)

select  *  from  表名

orser  by  列1  desc(从大到小排列,即降序)

分页


select *  from  表名

limit  start,count

从start开始,获取count条数据

start索引从0开始

你可能感兴趣的:(2018-04-01)