SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;
对列和表同时指定别名
SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名;
SELECT DISTINCT 字段名 FROM 表名;
可以作用于单列,也可以作用于多列
某列数据和固定值运算
SELECT 列名 1 + 固定值 FROM 表名;
某列数据和其他列数据参与运算
SELECT 列名 1 + 列名 2 FROM 表名;
SELECT 列名 1 + 列名 2 FROM 表名;
SELECT 字段名 FROM 表名 WHERE 条件;
(比较运算符)条件: >,<,<=,>=,=,<> --不等于
between ...and --范围
IN --表示多个值
in 关键字
SELECT 字段名 FROM 表名 WHERE 字段 in (数据 1, 数据 2...);
in 里面的每个数据都会作为一次条件,只要满足条件的就会显示
LIKE '%张%' --模糊查询
通配符: % 匹配任意多个字符 _ 匹配一个字符
IS NULL --查询某一列上为NULL的记录,不能用 =NULL
逻辑运算符
and 或 &&
or 或 ||
not 或 !
*排序查询
*聚合函数
*分组查询
*分页查询
select 字段 odder by 字段 asc(desc) -- 字段里面要是数值; 这里有第二排序规则
聚合函数:5个 count
1.count:计算记录的个数
2.max:计算列中的最大值
3.min:计算列中的最小值
4.sum:计算列中数据的和
5.avg:计算列中数据的平均值
select 分组字段,聚合函数() group by 分组字段;
分页查询:limit (n-1)*页显示条数,页显示条数 第n页
2.约束
3.多表之间的关系
4.范式
5.数据库的备份与还原
排序查询-order by
select * from student order by meth; -- 不写则默认升序
select * from student order by meth asc; -- 数学成绩升序排列
select * from student order by meth desc; --
select * from student order by meth asc,english asc; -- english asc 第二排序,如果第一排序条件相同则按第二排序
聚合函数:将一列数据作为一个整体,进行纵向计算. – 聚合函数的计算排除非空值.需要使用ifnull()替换.
select count(name) from student;
select count(1) from student; -- 查询第一列的记录个数,一般包括有主键,所以查询速度快.
select count(*) from student; -- 只要数据中的有一列有完整数据就会被计算入个数.
注意:聚合函数的计算,排除null值
解决方案:不选有null的,ifnull替换.
格式:select 函数(列) from 表; -- 注意是对数字进行的计算.
分组查询:group by:将列数组的信息,分组成若干组进行查询.
select sex,avg(math) from student group by sex; -- 计算男女同学数学成绩的平均分.
注意:分组字段:只能写入分组字段,或者是聚合函数.
select sex,avg(math) from student where math>70 group by sex;
select sex,avg(math) from student where math>70 group by sex;
select sex,avg(math) from student where math>70 group by sex having count(id)>2;
where 和having 的区别:
where 在分组之前进行过滤,不能使用聚合函数.如果不满足条件则不参与分组
having 在分组之后进行过滤,可以使用聚合函数.
分页查询:limit
1.limit 开始的索引,每页的条数.
每页显示三条数据
select * from student limit 0,3; -- 第1页
select * from student limit 3,3; -- 第2页
2.-- 公式:
开始的索引= (当前的页码-1)*每页显示的条数.
select * from student limit (n-1)*10,10; -- 每页10条,当前为第n页.
3.limit操作是Mysql特有的分页操作.