天天看点

mysql单表查询怎么做_mysql单表查询

简单查询:

select * from tb_name

select field1,field2 from tb_name;

select * from tb_name where qualification ;

例子:select  name,age from students where age+1>20;

select name from student where age>20 and gender='M';

select name from student where age>20 or gender='M';

select name from student where not age>20 and not gender='M';

select name from student where not (age>20 or gender='M');

select name from student where age>=20 and age<=50;或者select name from student where age between 20 and 25;

select name from student where like name 'Y%';

REGEXP 或者RLIKE 后面可以跟上正则表达式:

select name from student where name relike '^[MNY].*$';匹配以M或者N或者Y开头后面任意字符的。

IN的用法:年龄在18、20、25岁的同学名字

select name from student where age in (18,20,25);

显示student表中cid是null的同学;

select name from student where cid is null;

不是null值的写法:

select name from student where cid is not null;

根据查询到的数据排序:

select name from student where cid is not null order by name;

数据存储的三种格式:堆文件、顺序文件、hash

给字段取别名;

select name as student_name from student where cid is not null order by name;

限制显示的行数(limit);

例子: select name as student_name from student as xiaohai  limit 2

限制只显示两行。

略过前两行:

select name as student_name from student as xiaohai limit 2,3

略过前两行显示三行。

聚合计算:

所有同学的平均年龄:

select avg(age) from student;

select max(age) from student;

select min(age) from student;

select sum(age) from student; 求和

select count(age) from student;   求个数

group by :分组

select age,gender from student group by gender;

按照性别把student表分组(即男,女) 显示age gender

select avg(age) from student group by gender;

按照性别把表student分组,分别计算出他们的的平均值。

分组的主要目的是聚合:

注意:对group by 条件进行过滤必须用having 它的作用相当于where

select count(cid1) as persons,cid from student group by cid1 having persons>=2;

having的作用是对group by的结果做再次过滤