这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师。

依赖软件:mysql5.6

系统环境:win

在谈查询之前,先说一个特别重要的概念

一定将列名看成变量,既然是变量就可以运算

一定将列名看成变量,既然是变量就可以运算

一定将列名看成变量,既然是变量就可以运算

重要的事说三遍

select5种语句之where语句

# 作用:条件查询
# 语法
select 查询项 from 表名 where 表达式;
表达式为真,则取出对应的查询项 # where应用场景
各种条件查询场合,如按学号查询学生,上线时间查产品等

1、比较运算符

1、等于(=)

# 查询商品id为32的商品
select goods_id,cat_id,goods_name,shop_price
from goods
where goods_id=32;

2、不等于(!=/<>)

# 查询不属于第三个栏目的商品
select goods_id,cat_id,goods_name
from goods
where cat_id!=3;

3、大于(>)

# 本店价格高于3000的商品
select goods_id,cat_id,shop_price,goods_name
from goods
where shop_price>3000;

4、小于(<)

# 本店价格低于或等于100的商品
select goods_id,cat_id,shop_price,goods_name
from goods
where shop_price<100;

5、在某个集合内(in)------>离散型

# 查出在栏目4或者栏目11内的商品信息 不用or
select goods_id,cat_id,goods_name
from goods
where cat_id in (4,11);

6、在某个范围内(between...and...)------>连续型

# 取出商品价格在100和500之间的商品,包含100,500  不用and
select goods_id,cat_id,shop_price,goods_name
from goods
where shop_price between 100 and 500;

7、不在某个集合内(not in)------>离散型

#查询不在第3栏和不在第11栏的商品
select goods_id,cat_id,good_name
from goods
where cat_id not in (3,11);

8、列名看成变量并计算

#取出本店价格比市场价省的钱,并且省200以上的
select goods_id,cat_id,market_price-shop_price,goods_name
from goods
where market_price-shop_price >200;

2、逻辑运算符

1、逻辑与(and / &&)

#查询不在第3栏和不在第11栏的商品
select goods_id,cat_id,goods_name
from goods
where cat_id!=3 and cat_id!=11;

2、逻辑或(or / ||)

#查询价格大于100且小于300,或者大于3000且小于4000的商品
select goods_id,cat_id,shop_price,goods_name
from goods
where shop_price between 100 and 300 or shop_price between 3000 and 4000;

3、逻辑非(not / !)

# 查看价格小于500的商品 用>=和not
select goods_id,shop_price,goods_name
from goods
where shop_price not (shop_price>=500);

3、模糊匹配(like)

%  通配任意多个字符

_   通配任意单一字符

# 查询以诺基亚开头的商品名
select goods_id,cat_id,goods_name
from goods
where goods_name like '诺基亚%';

在这介绍两个字符串函数

cancat() :字符串拼接函数

substring() : 字符串剪切函数

# 取出诺基亚开头的商品并将诺基亚改成HTC
select goods_id,cat_id,concat('HTC',substring(goods_name,4))
from goods
where goods_name like '诺基亚%';
# 将诺基亚开头的商品名称改成HTC开头的
update goods set goods_name=concat('HTC',substring(goods_name,4))
where godds_name like '诺基亚%';

select5种语句之group语句

# 作用:分组
# 语法
select 查询项 from 表名
group by 列名(字段);
注意:查询项必须是分组中有的或者统计函数等函数处理后的结果,否则语意上不对
# 示例
select goods_id,cat_id,goods_name
from goods
group by cat_id;

常配合group语句使用的统计函数(统计函数也可以单独使用)

1、max:求最大值

#示例
# 查询第三个栏目下最贵的价格
select goods_id,cat_id,max(shop_price),goods_name
from goods
group by cat_id;

2、min:求最小值

#示例
# 查询第三个栏目下最便宜的价格
select cat_id,min(shop_price),goods_name
from goods
group by cat_id;

3、sum:求总和

# 一次计算完每个栏目下的库存量之和
select cat_id,sum(goods_number)
from goods
group by cat_id;

4、avg:求平均值

# 按cat_id分组 计算每个栏目下的商品的平均价格
select cat_id,avg(shop_price)
from goods
group by cat_id;

5、求总行数

# select count(*) from 表名:绝对行数,包括null行
# select count(列名) from 表名:不包括null行的行数
# Innodb引擎的表用count(*)效率低 每一行都去数 示例
select count(goods_id)
from goods;

select5种语句之having语句

having和where的异同

相同点:两者都是可以筛选数据

不同点:where针对表中的列发挥作用,查询数据

    having针对查询结果中的列发挥作用,筛选数据

# 语法
select 查询项 from 表名 having 表达式 # 示例
# 取出折扣大于200的,类型=3
# as 后面的变量是对前面表达式的命名
select goods_id,cat_id,(market_price-shop_price) as discount
from goods
where cat_id=3
having discount>200;

select5种语句之order语句

desc:降序排列

asc:升序排列

# 作用:排序
# 语法
select 查询项 from 表名 order by 列名 desc/asc # 示例
# 多字段排序
select goods_id,cat_id,shop_price,goods_name
from goods
order by cat_id desc,shop_price asc;

select5种语句之limit语句

# 作用: 限制条数
# 语法
select 查询项 from 表名 limit 偏移量,条目量 # 示例
# 查询出goods表中的前5条数据
select goods_id,cat_id,shop_price,goods_name
from goods
limit 5; # 查询出goods表中价格在前3到前5的商品
select goods_id,cat_id,shop_price,goods_name
from goods
order by shop_price desc
limit 2,3;

select5种语句之间的使用顺序关系

where <——— group by <———— having <———— order by <———— limit

如果出现了多个查询语句顺序必须如上(等级从左到右依次递减)

小练习:

有如下表及数据

要求:查询出2门及2门以上不及格者的平均成绩

# 数字之间的比较运算符结果为1/0

select name,sum(score<60) as gk, avg(score) as avg_score
from stu
group by name
having gk>=2;
由于mysql版本的变化,语法可能存在一定的变化,欢迎指出错误和评论区讨论

mysql--浅谈查询1的更多相关文章

  1. Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理

    基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客  QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3 ...

  2. MySQL浅谈 LEFT JOIN

    On条件(在“A left join b on conditional_expr”)决定如何从table B 中检索数据行(Matching-State); 如果B中没有行匹配On 条件,额外的B的所 ...

  3. mysql浅谈--事务ACID特性

    mysql MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管 ...

  4. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

  5. MySql主从配置实践及其优势浅谈

    MySql主从配置实践及其优势浅谈 1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my ...

  6. 浅谈SQL优化入门:1、SQL查询语句的执行顺序

    1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...

  7. 浅谈mysql innodb缓存策略

    浅谈mysql innodb缓存策略: The InnoDB Buffer Pool Innodb 持有一个存储区域叫做buffer pool是为了在内存中缓存数据和索引,知道innodb buffe ...

  8. 浅谈MySQL存储引擎-InnoDB&MyISAM

    存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见 ...

  9. MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等

    MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...

  10. 浅谈mysql配置优化和sql语句优化【转】

    做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...

随机推荐

  1. java CyclicBarrier和wait/notifyAll

    1 CyclicBarrier 多个进程做自己的事情,然后先做完的就等待在CyclicBarrier上,然后最后一个做完的线程到来时会冲破CyclicBarrier,然后执行CyclicBarrier ...

  2. Red Black Tree 红黑树 AVL trees 2-3 trees 2-3-4 trees B-trees Red-black trees Balanced search tree 平衡搜索树

    小结: 1.红黑树:典型的用途是实现关联数组 2.旋转 当我们在对红黑树进行插入和删除等操作时,对树做了修改,那么可能会违背红黑树的性质.为了保持红黑树的性质,我们可以通过对树进行旋转,即修改树中某些 ...

  3. Duilib学习之基础(一个SDK程序)

    版权声明:本文为灿哥哥http://blog.csdn.net/caoshangpa原创文章,转载请标明出处. https://blog.csdn.net/caoshangpa/article/det ...

  4. Delphi里可将纯虚类实例化,还可调用非虚函数

    这是与Java/C++的巨大不同.目前还没仔细想这个特征与TClass之间的联系,先记住结论再说.以后再回来修改这个帖子. unit Unit1; interface uses Windows, Me ...

  5. [P2769] 猴子上树

    题目描述 在猴村有一条笔直的山路,这条山路很窄,宽度忽略不计.有 n只猴子正站在山路上静静地观望今天来参加比赛的各位同学.用一个正整数Xi表示第i只猴子所站位置,任意两只猴子的所站位置互不相同.在这条 ...

  6. java验证码问题

    AuthImageServlet.java package com.util.servlet; import java.awt.Color;import java.awt.Font;import ja ...

  7. js复杂数据格式提交

    有的时候额后台需要一个对象Map值,如{name: '姓名',attributeMap:{skill: '名称;checkbox;true;&篮球:1,羽毛球:2',name:'lsg' }} ...

  8. TCP/IP-ICMP-Ping-Traceroute

    TCP/IP-ICMP 作者:Danbo 2015-8-22 I C M P经常被认为是I P层的一个组成部分.它传递差错报文以及其他需要注意的信息.I C M P报文通常被I P层或更高层协议( T ...

  9. Linux-正则表达式学习(精)

    正则表达式30分钟入门教程 来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混 ...

  10. Codeforces Round #376 (Div. 2) D. 80-th Level Archeology —— 差分法 + 线段扫描法

    题目链接:http://codeforces.com/contest/731/problem/D D. 80-th Level Archeology time limit per test 2 sec ...