天天看点

MySql之select的具体用法示例

select

select用于查询,其功能很多,我们一起来了解一下它子句及函数的用法。

建一张表用于我们测试:

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 ‘英语成绩’,

);

插入如下数据:

insert into student values(1, ‘李明’, 89,78, 90);

insert into student values(2, ‘刘红’, 67,89, 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、指定查询列

eg:

MySql之select的具体用法示例

2、去重查询

用distinct关键字, 如果结果中有完全相同的行,就去除重复行

eg:

MySql之select的具体用法示例

3、select语句中进行运算

eg:查询学生总成绩

select id,name,(chinese+math+english) from student;

MySql之select的具体用法示例

4、起别名:as

eg:查询所有学生总成绩并起别名‘总成绩’。

MySql之select的具体用法示例

eg:查询所有姓李同学的总成绩。

MySql之select的具体用法示例

eg:将所有姓唐的学生总成绩增加60%。

MySql之select的具体用法示例

5、where查询过滤

在where子句中有很多经常使用的运算符,如下:

MySql之select的具体用法示例

我们对其中几个进行举例应用,如下:

(1)查询所有英语成绩大于90的同学成绩:

MySql之select的具体用法示例

(2)查询所有总分大于200分的同学

MySql之select的具体用法示例

由图可知,并没有查找出来,这是因为

where子句后不能用别名

因为数据库中先执行where子句,再执行select子句。

如下:

MySql之select的具体用法示例

(3)查询姓李并且id大于6的学生信息

MySql之select的具体用法示例

(4)查询英语成绩大于语文成绩的同学

MySql之select的具体用法示例

(5)查询所有总分大于200并且数学成绩小于语文成绩的姓刘的学生信息

MySql之select的具体用法示例

(6)查询所有英语成绩在80到90分的同学

方法一:

MySql之select的具体用法示例

方法二:

MySql之select的具体用法示例

注意:between是闭区间

(7)查询数学成绩为89,90,91的同学信息

or:

MySql之select的具体用法示例

in:

MySql之select的具体用法示例

6、order by排序语句

asc升序(默认),desc降序

order by 子句应该位于select语句的结尾

eg:对数学成绩进行排序

默认升序:

MySql之select的具体用法示例

降序:

MySql之select的具体用法示例

eg:对所有姓李的学生按成绩进行倒序排序

MySql之select的具体用法示例

eg:对总分进行从高到低输出

MySql之select的具体用法示例

7、常用函数

(1)count()

count(*)统计null值 count(列名)排除null值

eg :统计当前student表中一共有多少学生

MySql之select的具体用法示例

我们这里也可以起别名:

MySql之select的具体用法示例

PS:为了测试count(*)与coun(列名)的区别,我们这里插入一个数学成绩为空的学生信息。

MySql之select的具体用法示例

看查询结果:

MySql之select的具体用法示例

(2)sum()

eg:统计一个班数学总成绩

MySql之select的具体用法示例

(3)平均值:avg()

求平均值算不算成绩为空的人呢?

我们可以用如下方法:

MySql之select的具体用法示例

我们看一下avg函数的结果:

MySql之select的具体用法示例

所以avg是去除null后求平均数, 只对数值型列起作用

(4)max()/min()

eg:求一个班级最高分和最低分的学生信息

8、group by 子句的使用