前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql基础操作(三)

Mysql基础操作(三)

作者头像
清菡
发布2020-12-02 16:46:35
5030
发布2020-12-02 16:46:35
举报
文章被收录于专栏:清菡软件测试清菡软件测试

文章总览图

排序

代码语言:javascript
复制
-- 升序
-- select * from students order by age asc
-- asc可省略
-- select * from students order by age 

-- 如果不用排序就按添加的顺序排序
-- select * from students 

-- 降序
-- select * from students order by age desc

-- 查询所有学生信息,按年龄从大到小排序,如果年龄相同,就按照学号降序排列
-- 优先按第一个字段进行排序,如果第一个字段的值相同了,才按照第二个字段进行排序
select * from students order by age,studentno desc

代码语言:javascript
复制
-- 查询所有学生信息,按班级从小到大排序,班级相同时,再按学号从小到大
-- select * from students order by class desc,studentno desc

-- gbk是中国的编码  对中文数据进行排序
-- select * from students order by convert(name using gbk)

聚合函数

count(*)代表一行记录任意字段有值,就会统计在内。

count(card) 代表只统计card字段的个数,如果有null值不会被统计。

代码语言:javascript
复制
-- 统计所有记录 查询学生总数
-- select count(*) from students 

-- 统计某个字段
-- select count(card) from students

-- 查询女生的最大年龄 
-- select max(age) from students where sex='女'

-- 查询1班的最小年龄
-- select min(age) from students where class='1班'


-- 查询北京学生的年龄总和
-- select sum(age) from students where hometown='北京'

-- 查询女生的平均年龄
select avg(age) from students where sex='女'

分组

按照字段分组,表示此字段相同的数据会被放到一个组中。

分组后,分组的依据列会显示在结果集中,其它列不会显示在结果集中。

可以对分组后的数据进行统计,做聚合运算。

select 列1,列2,聚合...from 表名 group by 列1,列2....

代码语言:javascript
复制
-- 查询各种性别的人数
-- select sex,count(*) from students group by sex

-- 查询各种年龄的人数
select age,count(*) from students group by age

分组后过滤

代码语言:javascript
复制
-- 查询男生总人数
-- select count(*) from students where sex='男'

select sex,count(*) from students group by sex having sex='男'

where是对from后面指定的表进行数据筛选,属于对原始数据的筛选 having 是对group by的结果进行筛选

代码语言:javascript
复制
-- 查询1班除外其它班级学生的平均年龄、最大年龄、最小年龄
-- select class,avg(age),max(age),min(age) from students where class !='1班' group by class

select class,avg(age),max(age),min(age) from students group by class having class !='1班'

分页

获取部分行

当数据量过大时,在一页中查看数据是一件非常麻烦的事情。

select * from 表名 limit start,count

从start开始,获取count条数据。

start索引从0开始。

代码语言:javascript
复制
-- 查询前3行学生信息
-- select * from students limit 0,3
-- select * from students limit 4,4
-- select * from students order by age limit 0,3

-- 要求每页显示3条

-- select count(*) from students 
-- 12/3 获取总页数

-- 第一页
-- select * from students limit 0,3 

-- 第二页
-- select * from students limit 3,3

-- 第三页
-- select * from students limit 6,3

-- 第四页
select * from students limit 9,3

-- 每页显示5条数据,显示每一页的数据
-- 12/5 2+1

-- 第一页
-- select * from students limit 0,5
-- 第二页
-- select * from students limit 5,5
-- 第三页
select * from students limit 10,5

分页练习

代码语言:javascript
复制
-- select * from students limit 7

-- 相当于
select * from students limit 0,7

连接查询-等值连接

使用方式一会产生笛卡尔积,产生虚拟的临时表,会放进计算机的内存中,再过滤出需要的数据。

方式二不会产生临时表,每次连接的时候先判断条件,再出来结果。

准备数据

代码语言:javascript
复制
-- drop table if exists courses;
-- 
-- create table courses(
--   courses int(10) unsigned primary key auto_increment,
--  name varchar(10)
-- );
-- 

-- insert into courses values
-- ("1","数据库"),
-- ("2","qtp"),
-- ("3","linux"),
-- ("4","系统测试"),
-- ("5","单元测试"),
-- ("6","测试过程");

-- drop table if exists scores;
-- create table scores(
-- id int(10) unsigned primary key auto_increment,
-- courseNo int(10),
-- studentno varchar(10),
-- score tinyint(4)
-- );

insert into scores values
("1","1","001","90"),
("2","1","002","75"),
("3","2","002","98"),
("4","1","001","86"),
("5","3","003","80"),
("6","4","004","79"),
("7","5","005","96"),
("8","6","006","80");
代码语言:javascript
复制
-- 查询学生信息以及学生的成绩
select * from students,scores where students.studentno=scores.studentno

连接查询-内连接

代码语言:javascript
复制
-- 方式一
-- select * from students,scores where students.studentno=scores.studentno

-- 方式二  不会产生笛卡尔积,不会产生临时表,性能高

select * from students inner join scores on students.studentno=scores.studentno

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章总览图
    • 排序
      • 聚合函数
        • 分组
          • 分组后过滤
            • 分页
              • 获取部分行
            • 分页练习
              • 连接查询-等值连接
                • 准备数据
              • 连接查询-内连接
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档