淘先锋技术网

首页 1 2 3 4 5 6 7

条件查询

使用where限定语句,查询集只返回条件为True的内容。

select * from students where id>13;

逻辑运算符

and or not

select * from students where hometown='深圳' and gender=0;

模糊查询 

like  rlike(可以匹配正则) %表示任意多个字符 _表示一个字符 

如果匹配本身使用%%

between and 表示一段区间

null值判断

直接用hometown=null并不能得到结果,在mysql中null表示空。 如果要查询为null值的应该是使用is      select * from students where hometown is null;

排序

order by 字段 [desc/asc]

desc 表示降序(从大到小排序)

asc 默认排序规则,表示升序(从小到大排序)

select * from students order by id desc; #按照id从大到小排序

聚合函数

 count 统计行数  max计算最大值  min计算最小值 数据函数sum 求和 avg求平均数 

分组查询

group by 字段  # 以xx字段作为分组依据分组

select gender,count(*) from students group by gender;

where与having的区别:where用户from之后的条件过滤 having用在分组之后的条件过滤,两个功能是一样的,只是作用的位置不一样

limit分页

分页的原因:如果数据量很大的话,一次性将所有数据查询出来,不仅不方便查看而且耗费传输带宽。那么就使用到了分页功能,一次只查询一页的数据,如:      

select * from students limit start,count; 

select * from students limit 0,3; 

连接查询

内连接查询:查询的结果为两个表匹配到的数据,两个表都能匹配上的数据将返回给结果集         select * from 表1 inner join 表2 on 表1.列=表2.列;     

右连接查询:查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充     select * from 表1 right join 表2 on 表1.列=表2.列;

左连接查询:查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充     select * from 表1 left join 表2 on 表1.列=表2.列

子查询

在一个select语句中嵌入了另外一个select语句,嵌入的这个select语句就是子查询语句。 子查询是辅助主查询的,充当数据源,或者充当条件。子查询是一条独立的语句,即使单独拿出子查询也是可以正常执行的