MySQL——select语句的简单介绍和查询时常用的参数

select语句详解

基本的select语句

select 要查询的列名 from 要查询的表 where 限制条件;

如果要查询表的所有内容,则把要查询的列名用—个星号*号表示(之间的案例中都已经使用过),代表要查询表中所有的列。

而大多数情况,我们只需要查看某个表的指定的分列,比如要查看book的id值:

select id from book;

如果要查询单独几列的值,那么就将select关键字后面的星号替换成列名即可,星号表示所有的列。

数学符号条件

SELECT语句常常会有WHERE限制条件,用于达到更加精确的查询。WHERE限制条件可以有数学符号( =,,>=,

select * from book2 where id > 2;

使用where关键字后面跟上条件即可,或者是寻找名字叫做张三的信息:

select * from book2 where name = '张三';

'AND'和'OR'关键字:

从这两个单词就能够理解它们的作用。WHERE后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用[条件一OR条件二]]和[条件一AND条件二]连接:

例如,筛选出id大于2或者地址在北京的信息:

OR表示或者,也就是两个条件满足一个即可,AND表示并且,必须两个条件都满足才行,现在我们使用AND:

此时,id

对于AND来说,还可以连接两个边界条件,查询在两个边界条件中的值:

这种方式可以查询出id在3和6之间的值,包含边界。

IN和NOT IN

关键词IN和NOT IN的作用和它们的名字—样明显,用于筛选*"在"或"不在"**某个范围内的结果,比如说我们要查询id是2和3的人:

注意这里是3和6的信息,不是3到6的信息,所以id为5的信息并没有查出来,也就是说他只会匹配在in后面的括号中的值。

通配符

关键字LIKE可用于实现模糊查询,常见于搜索功能中。

和LIKE联用的通常还有通配符,代表未知字符。SQL中的通配符是_和%。其中_代表一个未指定字符,%代表不定个未指定字符

比如,要只记得这个人姓张,但是名字忘了,就可以使用通配符:

我们先多准备点数据:

现在这是book2表中的数据,我们使用通配符查找姓张的人:

select * from book2 where name like '张%';

所有的张开头的名字就都查出来了,%表示后面不定几个字,_表示一个字,如果我知道这个人姓张,并且是两个字的名字,我就可以这么查:

select * from book2 where name like '张_';

那么就查出来了,并且刚才有一个三个字的名字现在就匹配不上查不出来了,这个通配符可以放在任何位置,比如我只知道他的名字里有一个三,我可以这么查询:

select * from book2 where name like '%三%';

那么所有名字里带三字的人就都被查出来了。

对结果进行排序

为了使查询结果看起来更顺眼,我们可能需要对结果按某一列来排序,这就要用到ORDER BY排序关键词。默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序。

比如,我们按id降序排列,SQL语句为:

select * from book2 order by id desc;

降序就是从大到小,使用desc关键字,要升序就使用asc关键字:

不过默认就是升序,所以这里写不写排序都无所谓的。

SQL内置函数和计算

SQL允许对表中的数据进行计算。对此,SQL有5个内置函数,这些函数都对SELECT的结果做操作:

函数名:

COUNT

SUM

AVG

MAX

MIN

作用:

计数

求和

请平均值

最大值

最小值

现在我再创建一个新的表book3:

这个表里的数据更丰富了,现在我要查询表中年龄最大的:

select max(age) as max_age from book3;

使用max()内置函数就可以做到,或者查询最小的:

或者查询年龄的平均值:

我们求出来的数并没有自动取整,这是因为MySQL的内部一个计算机制的问题,我么后期会介绍如何四舍五入或者其他的策略。

或者是计算表中的总行数:

除了使用count(1)这种写法,还可以使用这样的方式:

不过count(*)的方式可能在MySQL5.x版本中有语法错误,按照自己数据库版本选择最稳定的方式即可。

或者是对年龄进行求和:

所有人的年龄加起来是63

使用AS为查询出来的结果起别名

在之前我们使用函数的时候,我们为查询的单列结果起了个别名,使用了as关键字。什么是别名,就是我们在查询结果的地方打印出来的名字和我们实际的列名不一致,如果我们不使用别名是什么样子:

就是我们在select后面写什么,他就会显示什么,有时候我们显示的样子不符合我们的规范或者说看起来不好看,我们就可以起个别名。除了对这些函数计算的列起别名,还可以对表中的列起别名:

当然,别名也可以是中文,但是一般很少这么使用

别名使用最多的地方在后面的复杂查询中的多表查询的时候,在那时候可以为多个表起别名,方便我们区别不同的表以及表对应的列名。

子查询

所谓的子查询,就是对一个查询的结果做二次查询,这个被二次查询的查询语句就是子查询:

我们对一个查询结果进行了二次查询,这种子查询的形式叫做嵌套查询。

一、实验目的 1. 了解使用SELECT语句进行汇总查询的方法; 2. 熟悉使用COUNT()、SUM()、AVG()、MAX()、MIN()等函数进行汇总查询的方法; 3. 掌握使用GROUP BY子句进行分组汇总查询的方法; 4. 理解使用HAVING子句进行分组汇总查询的方法。 二、实验环境 1. MySQL 5.7及以上版本; 2. Navicat for MySQL。 三、实验内容 1. COUNT()函数 COUNT()函数用于统计某一列或行的记录数。SELECT COUNT(*) FROM table_name;可以统计表中的总记录数,而SELECT COUNT(column_name) FROM table_name;则可以统计某一列的记录数。 示例: 统计学生表中的总记录数: SELECT COUNT(*) FROM student; 统计学生表中“性别”列为“男”的记录数: SELECT COUNT(*) FROM student WHERE gender='男'; 2. SUM()函数 SUM()函数用于对某一列的值进行求和。 示例: 统计学生表中“成绩”列的总和: SELECT SUM(score) FROM student; 3. AVG()函数 AVG()函数用于对某一列的值进行平均值计算。 示例: 统计学生表中“成绩”列的平均值: SELECT AVG(score) FROM student; 4. MAX()函数 MAX()函数用于求某一列的最大值。 示例: 统计学生表中“成绩”列的最大值: SELECT MAX(score) FROM student; 5. MIN()函数 MIN()函数用于求某一列的最小值。 示例: 统计学生表中“成绩”列的最小值: SELECT MIN(score) FROM student; 6. GROUP BY子句 GROUP BY子句用于对查询结果进行分组汇总。它可以对某一列或多列进行分组,然后对每一组进行汇总计算。 示例: 统计学生表中“性别”列的男女人数: SELECT gender, COUNT(*) FROM student GROUP BY gender; 7. HAVING子句 HAVING子句用于在GROUP BY子句的基础上进行筛选,通常与聚合函数一起使用。 示例: 统计学生表中每个“班级”中成绩大于80分的学生数: SELECT class, COUNT(*) FROM student WHERE score>80 GROUP BY class HAVING COUNT(*)>1; 以上为本次实验的全部内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值