mysql数据库--基本查询语句
程序员文章站
2024-03-23 08:58:10
...
算术运算符 | + - * / % |
---|---|
比较运算符 | = > < >= <= <> != |
数据库特有的比较 | in,not in,is null, is not null, like, between and |
逻辑运算符 | and or not |
like | 支持特殊符号 % 和 _ , 其中 % 表示任意数量的任意字符,_ 表示任意一位字符。 |
查询语句的数据流
查询的顺序:where, group by[having], order by, limit 最后输出在 select
where 基本查询
1.查询年龄不等于18岁的所有用户信息
SELECT * FROM user WHERE age!=18;
2.查询班级为 python 的所有用户信息
SELECT * from user WHERE class='python'
3.查询年龄大于16的所有用户信息
SELECT * from user WHERE age>16;
4.查询年龄在18-24岁之间的所有用户信息,包含18岁和24岁
SELECT * from user WHERE age>=18 and age<=24;
5.查询年龄不在18-24岁之间的所有用户的信息
SELECT * from user WHERE age<=18 or age>=24;
6.查询id值是1 2 4 6的所有用户信息
SELECT * from user WHERE id=1 or id=2 or id=4 or id=6;
SELECT * from user WHERE id in (1,2,4,6);
7.查询python 班和web班的所有女生信息
SELECT * from user WHERE gender=0 and (class='python' or class='web');
where 子查询
将 一条查询语句作为另一条查询语句的条件或者是数据源,必须要起别名
from (子查询) as 别名
1.查询年龄大于18 的男生信息
SELECT * from user WHERE age>18;
SELECT * from user WHERE gender=1;
SELECT * from (SELECT * from user WHERE age>18) as newuser WHERE gender=1
2.查询name 为盖伦 的年龄
SELECT * from user WHERE name='盖伦';
模糊查询
1.查询名字以“大”字开头的用户
SELECT * FROM user WHERE name LIKE '大%';
2.查询email 中包含 g 的用户信息
SELECT * from user WHERE email LIKE '%g%';
3.查询姓名是两个字的用户信息
SELECT * from user WHERE name LIKE '__';
4.查询名字以大开头,并且是两个字的用户信息
SELECT * from user WHERE name LIKE '大_';
SELECT name,age from (SELECT * from user WHERE name='盖伦') as newuser;
聚合函数
很少单独使用,一般配合分组查询去使用,主要做数据统计
一般在select 后面使用,不能直接在where 后面使用,可以在having 后面使用
Max(),min(),count(),avg(),sum()
1.统计当前表中一共有多少条数据
SELECT count(*) from user;
2.查询 python 班级最大年龄最小年龄以及平均年龄
SELECT MAX(age),MIN(age),AVG(age) from user WHERE class='python';
3.统计男生的数量
SELECT COUNT(*) from user where gender=1;
去除重复的数据 distinct
1.查询所有的班级
SELECT DISTINCT class from user;
2.查询不重复的班级和性别
SELECT DISTINCT class,gender from user;
分组 group by
1.查询表中有哪些班级
SELECT class from user GROUP BY class;
2.统计当前表中男生和女生的人数各是多少
SELECT gender,COUNT(gender) from user GROUP BY gender;
3.统计每个班的人数
SELECT class,COUNT(*) from user GROUP BY class;
4.统计每个班,男生和女生各多少人
SELECT class,gender,COUNT(*) from user GROUP BY class,gender;
having 子句查询,类似于where。having只能用在分组之后,是对分组后的数据进行筛选
如果where 条件存在,分组只能在where 之后使用,而 having 只能在分组之后使用
1.统计每个班的人数,并查询出班级人数大于2 的班级
SELECT class,COUNT(*) from user GROUP BY class HAVING COUNT(*)>2;
2.查询每个班级男生人数大于2 的班级
SELECT class,gender,COUNT(*) from user GROUP BY class,gender HAVING gender=1 AND COUNT(*)>2;
SELECT class,COUNT(*) from user WHERE gender=1 GROUP BY class HAVING COUNT(*)>2;
排序 order by
默认升序排序 asc ,可以省略不写。Desc 降序排序。
1.查询所有学员信息,并按照年龄进行降序排序
SELECT * from user ORDER BY age DESC;
2.查询班级 python 的女生信息,并按照年龄进行降序排序
SELECT * from user WHERE class='python' AND gender=0 ORDER BY age DESC;
分页 limmit
格式:limit 3 (如果只有一个参数3,取前3条数据)
limit 3,3 (跳过前三条数据,取三条数据)
1.查询前五条数据
SELECT * from user LIMIT 5;
2.按照3条为一页,取第一页数据
SELECT * from user LIMIT 0,3;
上一篇: tableView圆角封装