mysql查询语句4,MySQL(4):CRUD语句(2)——基本查询
“增删改查”的查询语句。
create table student(
id int,
name varchar(20),
chinese float,
english float,
math float
);
insert into student(id,name,chinese,english,math) values(1,'张小明',89,78,90);
insert into student(id,name,chinese,english,math) values(2,'李进',67,98,56);
insert into student(id,name,chinese,english,math) values(3,'王五',87,78,77);
insert into student(id,name,chinese,english,math) values(4,'李一',88,98,90);
insert into student(id,name,chinese,english,math) values(5,'李来财',82,84,67);
insert into student(id,name,chinese,english,math) values(6,'张进宝',55,85,45);
insert into student(id,name,chinese,english,math) values(7,'黄蓉',75,65,30);
查询语句,一定是重点!
基本select语句
1. 基本语法
SELECT [DISTINCT] *|{column1, column2. column3..} FROM tableName;
select 指定查询哪些列的数据。
column指定列名。
*号代表查询所有列。
From指定查询哪张表。
DISTINCT可选,指显示结果时,是否剔除重复数据
select english from student;
select distinct english from student; -- 自动过滤重复的记录
指定列名
select name, english from student;
2. 在select语句中可使用表达式对查询的列进行运算
select name, english + chinese + english from student; -- 有表达式
select name, english + chinese + english + 10 from student;
sum怎么办…
sum 好像是把所有行加起来,不是把列加起来……
3. 在select语句中可使用as语句
select name as 姓名, english as 英语, math as 数学 from student;
(甚至可以不加 as)
4. where语句
select * from student where name = '张小明';
select * from student where english > 90;
select * from student where chinese+math+english > 200;
5. where中常用运算法
比较
<> 不等于号
!= 等号
between ... and ... -- 闭区间!开区间呢?
in (范围中) select * from student where math in (90,77);
like 模糊查询
like语句中,% 代表零个或多个任意字符,_ 代表一个字符,例first_name like ‘_a%’;
is null 查询为空 is not null 查询非空 【注意】不能写 = null
逻辑
select * from student where math <= 80;
select * from student where not (math > 90); -- 非
查询英语分数在80-90之间的同学。
select * from student where (english >= 80) and (english <=90);
select * from student where english between 80 and 90;
查询数学分数为89,90,91的同学。
select * from student where math in (89,90,91);
查询所有姓李的学生成绩。
select * from student where name like '李%';
select * from student where name like '李_'; -- (姓李的,且两个字的名字)
查询数学分>80,语文分>80的同学。
select * from student where (math > 80) and (chinese > 80);
6. order by
SELECT column1, column2. column3.. FROM table order by column asc|desc
Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 语句后指定的列名。
asc 升序、desc 降序
ORDER BY 子句应位于SELECT语句的结尾。
对数学成绩排序后输出。
select * from student order by math desc;
select * from student order by math asc;
对总分排序后输出,然后再按从高到低的顺序输出
select name 姓名, (chinese + math + english) 总分 from student order by 总分 desc;
对姓李的学生成绩排序输出
select name 姓名, (chinese + math + english) 总分 from student where name like '李%' order by 总分 asc;
聚合函数
1. count函数
count(列名)返回某一列,行的总数【注意】 返回的是一个数!
统计一个班级共有多少学生?
select count(*) from student;
统计数学成绩大于90的学生有多少个?
select count(*) from student where math >= 90;
统计总分大于250的人数有多少?
select count(*) 总分大于250的人数 from student where (chinese + math + english) > 250;
2. sum函数
sum函数返回满足where条件的行的和【注意】 是从上往下合计! 不是横着加! 对行统计!
select sum(列名){,sum(列名)…} from tablename [WHERE where_definition] -- 列名的数据类型是数值型
统计一个班级数学总成绩?
select sum(name) 数学总成绩 from student;
统计一个班级语文、英语、数学各科的总成绩
select sum(chinese) 语文总成绩, sum(english) 英语总成绩, sum(math) 数学总成绩 from student;
统计一个班级语文、英语、数学的成绩总和
select sum(chinese + english + math) from student; -- 这样写!
select sum(chinese) + sum(english) + sum(math) from student; -- 这样也可以!
统计一个班级语文成绩平均分
select sum(chinese)/count(*) from student;
注意:对多列求和,“,”号不能少。
3. avg函数
AVG函数返回满足where条件的一列的平均值
求一个班级数学平均分
select avg(math) 数学平均分 from student; -- 注意,如果有一个空值null,会跳过这条记录。
求一个班级总分平均分
select avg(math + chinese + english) from student;
sum函数、avg函数都会忽略掉null?
4. max/min函数
max/min函数返回满足where条件的一列的最大/最小值
求班级最高分和最低分(数值统计)
select max(english+math+chinese) from student;
distinct 剔除重复结果
group by 分类
准备数据。
create table orders(
id int,
product varchar(20),
price float
);
insert into orders(id,product,price) values(1,'电视',900);
insert into orders(id,product,price) values(2,'洗衣机',100);
insert into orders(id,product,price) values(3,'洗衣粉',90);
insert into orders(id,product,price) values(4,'桔子',9);
insert into orders(id,product,price) values(5,'洗衣粉',90);
-- group by 的用法
-- 对订单表中商品归类后,显示每一类商品的总价
SELECT product, SUM(price) FROM orders GROUP BY product;
-- 注意,是对产品分类后的,进行sum。sum参与的是分组后的sum
having 聚合后筛选 -- having 过滤 -- 查询购买了几类商品,并且每类总价大于100的商品 SELECT product, SUM(price) FROM orders GROUP BY product HAVING (SUM(price)>100); -- having 和 where均可实现过滤,但在having可以使用聚合函数,having通常跟在group by后,它作用于组。 -- 顺序:group by … having … order by … -- 一共买了哪些类型的产品 SELECT product FROM orders GROUP BY product;
mysql查询语句4,MySQL(4):CRUD语句(2)——基本查询相关推荐
- mysql查询所有课程的分数_Sql语句之查询所有学生所有科目分数及总分
昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...
- mysql如何修改学生表_MySQL 详细单表增删改查crud语句
MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范 ...
- MySQL查询本年的数据的sql语句
MySQL查询本年的数据的sql语句: SELECT * FROM 表名 WHERE YEAR(时间字段)=YEAR(NOW());
- left join 一对多_MYSQL 连接查询算法:JOIN语句在 MYSQL 内部到底是怎么执行的
前言 我们从一个问题引入今天的主题. 在日常业务开发中,我们可能经常听到 DBA 对我们说"不要"(注意:不是禁止)使用 join,那么为什么 DBA 对 join 这么抵触呢?是 ...
- jpa mysql sql分页查询语句_JPA多条件复杂SQL动态分页查询功能
概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 spring ...
- java mysql语句_java mysql查询语句怎么写
展开全部 1:使用SHOW语句找出在服务器上当前存在什么数据32313133353236313431303231363533e4b893e5b19e31333363373766库: mysql> ...
- mysql查阅某个日期的语句_mysql查询指定日期时间内的sql语句及原理
查询指定日期时间内的sql语句的实现原理: 如果是月份就是当前的月减去你要统计的时间,比如要查询数据库中从今天起往前三个月的所有记录. 另外,在数据库设计阶段,要注意时间字段为int(11),保存在数 ...
- mysql 查询语句_MySQL相关(一)- 一条查询语句是如何执行的
前言 学习一个新知识最好的方式就是上官网,所以我先把官网贴出来 MySQL官网 (点击查阅),如果大家有想了解我没有说到的东西可以直接上官网看哈~目前 MySQL 最新大版本为8.0,但是鉴于目前应用 ...
- mysql分组查询和子查询语句_6.MySQL分组聚合查询,子查询
自己的MySQL阅读笔记,持续更新,直到看书结束. 数据库技术可以有效帮助一个组织或者企业科学.有效的管理数据,也是现在很多企业招聘数据分析师的必备要求之一. 大家如果看过MySQL的书,也可以看我的 ...
最新文章
- java 静态代码块 多线程,Java多线程编程笔记10:单例模式
- 【数据结构】判断一个单链表中各结点的值是否有序
- mac 更换默认蓝牙适配器_Win7连接低功耗蓝牙(BLE)鼠标
- Haskell语言实现求解一个整数所有因子的代码及运行结果
- 想拥有一款钢铁侠Jarvis管家的软件吗?
- 大数据WEB阶段(九)Servlet+Request
- Android Studio导入包
- 本田和丰田,你选那个?
- python学习之路---day12
- 项目10.2-企业级自动化运维工具---puppet详解
- 自定义分页信息java_java-displaytag自定义分页
- 机器人码垛手持式编程_码垛机器人编程软件图解教程
- 考研如何设置桌面倒计时,便签设置桌面倒计时方法
- 计算2的N次方(C++)
- EXCEL使用技巧大全:输入的技巧
- 直角三角公式计算机,直角三角函数公式表
- 现在企业常用考勤软件
- tableau Fixed函数使用
- Opencv计算机视觉入门——图像的处理(一)
- 运放电路的工作原理_陶瓷气体放电管工作原理全业电子
热门文章
- .Net基础体系和跨框架开发普及
- ASP.NET Core 1.0 开发记录
- 作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀
- C和指针之字符串编程练习8实现char *my_strnchr(char const *str, int ch, int which)
- TLS/SSL握手过程
- python用pandas读取excel_Python使用pandas读取Excel文件数据和预处理小案例
- 余弦欧式距离matlab,余弦相似度和欧几里得距离
- 男厕改女厕能多敷衍......
- 这本造价500万的“黑科技”日历,用377张爆美插画给你365天理想生活
- python静态变量和静态方法_python的静态成员变量、实例成员变量、静态方法、类方法、实例方法...