设为首页 加入收藏

TOP

MySQL初学之select与函数的搭配使用
2018-06-18 14:24:20 】 浏览:179
Tags:MySQL 初学 select 函数 搭配 使用

上一节介绍了select语句的构成与使用(select语句以及where,order by, group by子句的使用),但是只单单依靠select的字句们,是不能发挥出select的全部能力的,本节将介绍select与函数的搭配使用。

本节测试用表为student表,创建脚本如下:

create table student (
id int not null default 1,
name varchar(20) not null default '',
chinese float not null default 0.0 comment '语文成绩',
english float not null default 0.0 comment '英语成绩',
math float not null default 0.0 comment '数学成绩'
);

insert into student values(1, '李白', 89,78, 90);
insert into student values(2, '唐僧', 67,98, 56);
insert into student values(3, '孙悟空', 87,78, 77);
insert into student values(4, '老妖婆', 88,98, 90);
insert into student values(5, '红孩儿', 82,84, 67);
insert into student values(6, '如来佛祖', 55,85, 45);
insert into student values(7, '菩萨', 75,65, 30);

1. count()聚合函数

count()函数返回指定列的数量。

count(colName)

使用如下:

-- 统计总共有多少学生
mysql> select count(*) from student;
+----------+
| count(*) |
+----------+
|        7 |
+----------+
1 row in set (0.00 sec)

count()会统计一列总的记录数,但是对于null会自动忽略,因为null参与的运算自动忽略null。

2. sum()求和函数

sum返回指定行数据的和,语法如下:

select sum(colName) from tableName [where condition];

示例如下:

-- 统计一个班的数学总成绩
mysql> select sum(math) from student;
+-----------+
| sum(math) |
+-----------+
|     455.0 |
+-----------+
1 row in set (0.07 sec)


-- 统计一个班级各科成绩平均分
-- 别名操作时,as可以省略
mysql> select sum(chinese)/count(*) avg_chinese, sum(math)/count(*) as avg_math, sum(english)/count(*) from student;
+-------------+----------+-----------------------+
| avg_chinese | avg_math | sum(english)/count(*) |
+-------------+----------+-----------------------+
|    77.57143 | 65.00000 |              83.71429 |
+-------------+----------+-----------------------+
1 row in set (0.04 sec)

注意,sum仅对数值数据起作用,其他类型的数据不能使用sum。

3. avg()平均值函数

agv函数返回满足where条件的一列的平均值。

-- 统计一个班级各科成绩平均分
mysql> select avg(chinese), avg(math), avg(english) from student;
+--------------+-----------+--------------+
| avg(chinese) | avg(math) | avg(english) |
+--------------+-----------+--------------+
|     77.57143 |  65.00000 |     83.71429 |
+--------------+-----------+--------------+
1 row in set (0.00 sec)

4. max()/min()极值函数

max()/min()返回满足条件的一列最大值/最小值。

-- 求班级最高分与最低分
mysql> select max(chinese+math+english), min(chinese+math+english) from student;
+---------------------------+---------------------------+
| max(chinese+math+english) | min(chinese+math+english) |
+---------------------------+---------------------------+
|                     276.0 |                     170.0 |
+---------------------------+---------------------------+
1 row in set (0.00 sec)

在不同的场景和需求下,我们可以使用select搭配不同的子句和函数进行数据的查找。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇mysqli的预编译机制实例讲解 下一篇oracle存储过程selectinto没有查..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目