“增删改查”的查询语句。

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)——基本查询相关推荐

  1. mysql查询所有课程的分数_Sql语句之查询所有学生所有科目分数及总分

    昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考 ...

  2. mysql如何修改学生表_MySQL 详细单表增删改查crud语句

    MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范 ...

  3. MySQL查询本年的数据的sql语句

    MySQL查询本年的数据的sql语句: SELECT * FROM 表名 WHERE YEAR(时间字段)=YEAR(NOW());

  4. left join 一对多_MYSQL 连接查询算法:JOIN语句在 MYSQL 内部到底是怎么执行的

    前言 我们从一个问题引入今天的主题. 在日常业务开发中,我们可能经常听到 DBA 对我们说"不要"(注意:不是禁止)使用 join,那么为什么 DBA 对 join 这么抵触呢?是 ...

  5. jpa mysql sql分页查询语句_JPA多条件复杂SQL动态分页查询功能

    概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 spring ...

  6. java mysql语句_java mysql查询语句怎么写

    展开全部 1:使用SHOW语句找出在服务器上当前存在什么数据32313133353236313431303231363533e4b893e5b19e31333363373766库: mysql> ...

  7. mysql查阅某个日期的语句_mysql查询指定日期时间内的sql语句及原理

    查询指定日期时间内的sql语句的实现原理: 如果是月份就是当前的月减去你要统计的时间,比如要查询数据库中从今天起往前三个月的所有记录. 另外,在数据库设计阶段,要注意时间字段为int(11),保存在数 ...

  8. mysql 查询语句_MySQL相关(一)- 一条查询语句是如何执行的

    前言 学习一个新知识最好的方式就是上官网,所以我先把官网贴出来 MySQL官网 (点击查阅),如果大家有想了解我没有说到的东西可以直接上官网看哈~目前 MySQL 最新大版本为8.0,但是鉴于目前应用 ...

  9. mysql分组查询和子查询语句_6.MySQL分组聚合查询,子查询

    自己的MySQL阅读笔记,持续更新,直到看书结束. 数据库技术可以有效帮助一个组织或者企业科学.有效的管理数据,也是现在很多企业招聘数据分析师的必备要求之一. 大家如果看过MySQL的书,也可以看我的 ...

最新文章

  1. java 静态代码块 多线程,Java多线程编程笔记10:单例模式
  2. 【数据结构】判断一个单链表中各结点的值是否有序
  3. mac 更换默认蓝牙适配器_Win7连接低功耗蓝牙(BLE)鼠标
  4. Haskell语言实现求解一个整数所有因子的代码及运行结果
  5. 想拥有一款钢铁侠Jarvis管家的软件吗?
  6. 大数据WEB阶段(九)Servlet+Request
  7. Android Studio导入包
  8. 本田和丰田,你选那个?
  9. python学习之路---day12
  10. 项目10.2-企业级自动化运维工具---puppet详解
  11. 自定义分页信息java_java-displaytag自定义分页
  12. 机器人码垛手持式编程_码垛机器人编程软件图解教程
  13. 考研如何设置桌面倒计时,便签设置桌面倒计时方法
  14. 计算2的N次方(C++)
  15. EXCEL使用技巧大全:输入的技巧
  16. 直角三角公式计算机,直角三角函数公式表
  17. 现在企业常用考勤软件
  18. tableau Fixed函数使用
  19. Opencv计算机视觉入门——图像的处理(一)
  20. 运放电路的工作原理_陶瓷气体放电管工作原理全业电子

热门文章

  1. .Net基础体系和跨框架开发普及
  2. ASP.NET Core 1.0 开发记录
  3. 作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀
  4. C和指针之字符串编程练习8实现char *my_strnchr(char const *str, int ch, int which)
  5. TLS/SSL握手过程
  6. python用pandas读取excel_Python使用pandas读取Excel文件数据和预处理小案例
  7. 余弦欧式距离matlab,余弦相似度和欧几里得距离
  8. 男厕改女厕能多敷衍......
  9. 这本造价500万的“黑科技”日历,用377张爆美插画给你365天理想生活
  10. python静态变量和静态方法_python的静态成员变量、实例成员变量、静态方法、类方法、实例方法...