查询
在查询部分我们会展示一些基础的查询操作,以及不常用但是在实战中很有用处的查询功能,如模糊查询等。
将使用的数据库示例初始数据如下:
基础查询
基础查询的 代码展示
.
// 查询表中的全部数据
select * from [表名];
// 查询某列中的全部数据
select [列名] from [表名];
// 给某列的表头起别名
select [列名 as 名称] from [表名];
-- 给表头起别名
SELECT name AS 姓名,eng AS 英语成绩 FROM stu;
给数据库表中的每一列都用别名展示,运行代码与结果如上所示:
// 去除重复数据,比如我们想要查询同学们大概都来自哪里
select DISTINCT [列名] from [表名];
SELECT DISTINCT addr FROM stu ;
//条件查询
//假设查询学生中年龄大于20小于30的人
select * from stu where age > 20 && age < 30;//&&可以用and替代
select * from stu where age between 20 and 30;、
//如果查询具体到了某几个时间,方法如下
select * from stu where age in (18,20,25);
//注意!= 和 = 符号不可用于null,如果查找null则用is或者is not
select * from stu where id is null;
模糊查询
模糊查询用like ,“_”表示单个任意字符,“%表示多个任意字符”
//查询第一个字是张的(张前面没有符号代表查询的第一个字就是张,后面%代表张后面的字数不做要求)
SELECT * FROM stu WHERE name LIKE '张%';
//查询第二个字是诗的(前面_代表前面有一个字,后面%代表不限制)
SELECT * FROM stu WHERE name LIKE '_诗%';
//查询名字包含芸的(前后的%表示对前后的字数均不做要求)
SELECT * FROM stu WHERE name LIKE '%芸%';
三条语句的查询结果分别如下:
排序查询
select * from stu order by eng asc;//升序查询
select * from stu order by eng desc;//降序查询
//asc是默认值,如果不写则系统默认为asc
asc排序实例如下:
注意:如果有多个排序条件的话,当前面的条件值一样时才会根据第二条进行排序
分组查询
分组查询中常常会用到聚合函数,于是将分组查询分为两部分,在此讲解基本的聚合函数
聚合函数
函数 | 意义 |
---|---|
count | 统计数量 |
mid/max | 最小/最大值 |
sum | 求和 |
avg | 求平均值 |
语法展示
.
select 聚合函数[列名] from [表名]
注意:null不参与聚合
分组查询
select [列名,聚合] from [表名] [where --] group by [列名] [having --];
//查询男女的数学平均分
select sex,ave(math) from stu group by sex;
顺序:where > 聚合函数 > having
分页查询
分页查询用limit,但是limit只适用于MySQL
//从第0条数据开始查,查三条
select * from stu limit 0,3;//0为起始索引位置,3为显示条数
//从第5条数据开始查,查2条
select * from stu limit 5,2;
可以看出数据下标从0开始。索引公式如下:
起始索引=(当前页码-1)*每页显示条数
则起始索引为(4-1)*20=60,实际索引到的第一条数据为61。
以上是查询部分的内容,如果有错误或者疑问可以评论或联系~