MySQL的select详细介绍
MySQL 查询数据
MySQL 数据库使用SQL SELECT语句来查询数据。
你可以通过 mysql> 命令提示窗口中在数据库中查询数据
语法
以下为在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 你可以使用 WHERE 语句来包含任何条件。
- 你可以使用 LIMIT 属性来设定返回的记录数。
- 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
建一张表用于我们测试:
create table student
(
ids int auto_increment primary key,
name varchar(20),
chinese float,
english float,
math float
);
插入如下数据:
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、指定查询列
mysql> select id,name,chinese from student;
2、去重查询
用distinct关键字, 如果结果中有完全相同的行,就去除重复行
mysql> select distinct math from student;
3、select语句中进行运算
查询学生总成绩
mysql> select id,name,(chinese+math+english) as 总成绩 from student;
查询所有姓南宫人的总成绩。
mysql> select id,name,(chinese+math+english) as 总成绩 from student
-> where name like '南宫%';
4、where查询过滤
在where子句中有很多经常使用的运算符,如下:
(1)查询所有英语成绩大于90的同学成绩:
mysql> select id,name,english as 英语 from student
-> where english > 90;
(2)查询所有总分大于200分的同学
注意:where子句后不能用别名
因为数据库中先执行where子句,再执行select子句。
mysql> select id,name,(chinese+math+english) as 总成绩 from student
-> where (chinese+math+english) > 200;
(3)查询姓林并且id大于6的学生信息
mysql> select id,name from student
-> where name like '林%' and id >6;
(4)查询英语成绩大于语文成绩的同学
mysql> select id,name from student
-> where english > chinese;
(5)查询所有总分大于200并且数学成绩小于语文成绩的学生信息
mysql> select id,name from student
-> where (chinese+math+english) >200 and math < chinese;
(6)查询所有英语成绩在80到90分的同学
方法一:
mysql> select id,name,english from student
-> where english >=80 and english <= 90;
方法二:
注意:between是闭区间
mysql> select id,name,english from student
-> where english between 80 and 90;
(7)查询数学成绩为89,90,91的同学信息
or:
mysql> select id,name,math from student
-> where math=89 or math=90 or math=91;
in:
mysql> select id,name,math from student
-> where math in(89,90,91);
5、order by排序语句
asc升序(默认),desc降序
order by 子句应该位于select语句的结尾
eg:对数学成绩进行排序
默认升序:
mysql> select id,name,math from student
-> order by math;
降序:
mysql> select id,name,math from student
-> order by math desc;
对总分进行从高到低输出
mysql> select (chinese+math+english) as 总成绩 from student
-> order by 总成绩 desc;
6、常用函数
(1)count()
count(*)统计null值 count(列名)排除null值
eg :统计当前student表中一共有多少学生
mysql> select count(*) as 人数 from student;
(2)sum()
eg:统计一个班数学总成绩
mysql> select sum(math) as 数学总成绩 from student;
(3)平均值:avg()
求数学的平均值
mysql> select sum(math)/count(*) as 数学平均值 from student;
mysql> select avg(math) as 数学平均值 from student;
7、group by 子句的使用
假设有一个职工信息表,
EMP:表名 ;部门:depton;sal:工资;job:工作
我们设想:
(1)显示每个部门的平均工资和最高工资
select deptno,avg(sal),max(sal) from EMP group by deptno;
(2)显示每个部门的每种岗位的平均工资和最低工资
select avg(sal),min(sal),job, deptno from EMP group by deptno, job;
补充:首先按照deptno分组,然后各组再按照job进行分组。
(3)显示平均工资低于2000的部门和它的平均工资
解题思路:
1. 统计各个部门的平均工资
select avg(sal) from EMP group by deptno
2. having往往和group by配合使用,对group by结果进行过滤
select avg(sal) as myavg from EMP group by deptno having myavg<2000;
MySQL的select详细介绍的更多相关文章
- MySQL Cluster 配置详细介绍
在上篇文章已经详细说明了MySQL Cluster搭建与测试,现在来说说详细的配置参数.在MySQL Cluster 环境的配置文件 config.ini 里面,每一类节点都有两个(或以上)的相应配置 ...
- mysql分区功能详细介绍,以及实例
一,什么是数据库分区 前段时间写过一篇关于mysql分表的 的文章,下面来说一下什么是数据库分区,以mysql为例.mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下 ...
- Spotlight on Mysql详细介绍
Spotlight on Mysql详细介绍 by:授客 QQ:1033553122 1. 版本 2. 使用介绍 1) 主页 会话面板 MySQL面板 INNODB面板 存储面板 主机面板 ...
- 推荐收藏 —— MySQL视图详细介绍
前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会 ...
- 超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数
超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了.本文主 ...
- MySQL视图详细介绍
前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详 ...
- 一.Select 函数详细介绍【转】
转自:http://www.cnblogs.com/hjslovewcl/archive/2011/03/16/2314330.html Select在Socket编程中还是比较重要的,可是对于初学S ...
- 多图文,详细介绍mysql各个集群方案
目录 多图文,详细介绍mysql各个集群方案 一,mysql原厂出品 二,mysql第三方优化 三,依托硬件配合 四,其它 多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移 ...
- 详细介绍Mysql各种存储引擎的特性以及如何选择存储引擎
最近业务上有要求,要实现类似oracle 的dblink linux版本 Server version: 5.6.28-0ubuntu0.14.04.1 (Ubuntu) 修改配置文件 /etc/ ...
随机推荐
- JDOJ3010 核反应堆
JDOJ3010 核反应堆 https://neooj.com/oldoj/problem.php?id=3010 题目描述 某核反应堆有两类事件发生: 高能质点碰击核子时,质点被吸收,放出3个高能质 ...
- docker odoo启动比较完整的命令
docker run --name odoo12 -p : -p : -v /root/workspace/odoo-addons/:/mnt/extra-addons -v /root/worksp ...
- 11/11 <Topological Sort> 207
207. Course Schedule 我们定义二维数组 graph 来表示这个有向图,一维数组 in 来表示每个顶点的入度.我们开始先根据输入来建立这个有向图,并将入度数组也初始化好.然后我们定义 ...
- Linux配置DHCP服务器,DHCP中继配置
配置dhcp服务器 第一步:配置网卡 第二步: 安装dhcp (需要先构建yum仓库,构建yum仓库的方法在之前的博客里有) 编写dhcp.conf文件 进去以后会出现这个内容 需要执行下面的内容将内 ...
- 解决PEnetwork启动的时候提示"An error occured while starting the "TCP/IP Registry Compatibility" Service (2)!"程序将立即退出的问题
解决PEnetwork启动的时候提示"An error occured while starting the "TCP/IP Registry Compatibility" ...
- 写了此书《微软Azure实战参考》 北京航空航天大学出版社 2019年7月
经过大半年的努力,写出了此书<微软Azure实战参考> 北京航空航天大学出版社 2019年7月.喜爱微软云平台和需要使用微软云技术的读者,可以参考一下.
- 编译和安装openssl
linux安装了Python3.7之后, pip不好用了,报错如下: pip is configured with locations that require TLS/SSL, however th ...
- 使用thanos管理Prometheus持久化数据
关于thanos的介绍可以参考这篇官方博客的翻译文档,本文不作部署操作介绍.下图是thanos的官方架构图,主要有5个组件: Query:可以近似看作是Prometheus的实现,用于采集其他组件的数 ...
- go-gin-api 路由中间件 - Jaeger 链路追踪
概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(理论篇). 这篇文章咱们分享:路由中间件 - Jaeger 链路追踪(实战篇). 说实话,这篇文章确实让大家久等了, ...
- js 宏任务和微任务
.宏任务(macrotask )和微任务(microtask ) macrotask 和 microtask 表示异步任务的两种分类. 在挂起任务时,JS 引擎会将所有任务按照类别分到这两个队列中,首 ...