Mysql查询——学习阶段
1、开篇
搞开发的都知道,当数据量很大的时候,我们的代码逻辑的简单性就显得十分重要,否则处理起来就需要花费相当多的时间。另外还有一个地方需要注意的是我们写的sql语句。
一个拥有多年开发的资深开发者可以相比于刚从事开发经验不足的开发者写的sql效率要高些,数据量小基本没有什么关系。但是假如你在拥有高数据的BAT,或者国家企业,那这
条sql的差异就明显就大了。所以,能写出好的sql是相当重要的。
2、简单的查询sql
(1)select * from pj_appoint_order; 查询所有的约单,*表示这个表中所有的字段
(2)select id,user_name,user_phone from pj_appoint_order; 查询所有约单中id,user_name,user_phone这几个字段。
当然你可以改变这个表中查询出来表中字段的名称,例如:
select id as '编号',user_name as '用户名称',user_phone as '用户手机' from pj_appoint_order;
select id '编号',user_name '用户名称',user_phone '用户手机' from pj_appoint_order;
有as和没有都可以。
(3)select distinct user_name from pj_appoint_order; distinct去掉重复的用户名(保留一个)
(4)select * from pj_account where score>88;查询用户积分大于88的用户,不包含88.
当然,在我们mysql中
大于号:>
小于号:<
大于等于>=
小于等于<=
不等于 != 或者 <>
(5)select * from stu where type ='超级会员' and score >90; 查询用户为超级会员并且积分大于90的用户所有信息
(6)表达式的学习: not , or ,in , between and
select * from pj_account where score between 75 and 85;
select * from pj_account where not type='超级会员';
select * from pj_account where type!='超级会员';
select * from pj_account where score = 70 or score=81 or score=59; 查询用户积分为70或者81或者59的用户信息
---------------------------------查询面积为400或者500或者600的约单----------------------------------------------------------
SELECT * FROM pj_appoint_order WHERE acreage IN(400,500,600);
SELECT * FROM pj_appoint_order WHERE acreage = 400 OR acreage=500 OR acreage=600;
(7)like 与 通配符的使用
_:占一个字符。
%:多个字符进行匹配
SELECT * FROM pj_appoint_order WHERE user_name LIKE '%哥%'
SELECT * FROM pj_appoint_order WHERE user_name LIKE '_哥_'
(8)一般而言查询值为null的情况比较少,但是也是会存在的,查询null需要用is
select * from pj_account where score is null;
select * from pj_account where score is not null;
(9)排序 order by mysql默认的是升序排序(asc)
select * from pj_account order by id desc
(10) 聚集函数。聚合函数不对null进行操作
count()//统计数量
sum()//求和
max() //最大
min()//最小
avg()//平均
select count(*) from pj_account; 查询用户表中有多少条记录,其他的类似。可以自己试试。
select round( avg(ifnull(score,0)),2) from pj_account; 求平均成绩。
解析:如果积分是null则赋值为0,然后求平均值,求完平均值后保留两位小数。
(11) where 与 having 区别
1. having 对聚集函数进行条件筛选 ,如果最后的条件是 聚集函数 那么我们就用 having
2. 具体的某一条数据
综合我们学习的查询相关关键字:
书写的顺序:
select,from,where,group by,having,order by;
执行的顺序:
from:找到我们要操作的表。
where,group by,having, 相当与我们的条件
select :查询
order by:排序。
3、一份耕耘一份收货!兢兢业业,必有丰收。
Mysql查询——学习阶段的更多相关文章
- mysql 查询各个阶段所消耗的时间
- Mysql查询——深入学习
1.开篇 之前上一篇的随笔基本上是单表的查询,也是mysql查询的一个基本.接下来我们要看看两个表以上的查询如何得到我们想要的结果. 在学习的过程中我们一起进步,成长.有什么写的不对的还望可以指出. ...
- [转]向facebook学习,通过协程实现mysql查询的异步化
FROM : 通过协程实现mysql查询的异步化 前言 最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能.由于facebook实现的比较早,他们不得不对php ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- mysql 中语句执行的顺序以及查询处理阶段的分析
原文链接:http://www.php.cn/mysql-tutorials-408865.html 本篇文章给大家带来的内容是关于mysql中语句执行的顺序以及查询处理阶段的分析,有一定的参考价值, ...
- 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列
1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- mysql查询、子查询、连接查询
mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.gr ...
- 你真的会玩SQL吗?之逻辑查询处理阶段
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
随机推荐
- ASP.NET Core 中文文档 第四章 MVC(3.2)Razor 语法参考
原文:Razor Syntax Reference 作者:Taylor Mullen.Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:何镇汐 什么是 Razor? Razor 是一 ...
- 实现跨浏览器html5表单验证
div:nth-of-type(odd){ float: left; clear: left; } .origin-effect > div:nth-of-type(even){ float: ...
- Win10 UWP开发系列:实现Master/Detail布局
在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...
- 【Asp.Net Core】二、添加控制器和视图
控制器Controller 在添加控制器前,我们先看下它为我们自动生成的一些Controller,我们看下AccountController.cs 来看下登录验证方法Login async这个应该是异 ...
- α-β剪枝算法的java语言实现(非常实用)
利用α-β剪枝算法,对下图所示的博弈树进行搜索,搜索得到根节点选择的走步,以及没有必要进行评估的节点,并求出给出在何处发生了剪枝,以及剪枝的类型(属于α剪枝还是β剪枝). 注:□表示MIN节点:○表示 ...
- javascript 练习示例(一)
confirm 点确定返回true,点取消返回false prompt 点确定返回用户输入的字符串,点取消返回null 判断奇偶性 var isOdd = prompt('请输入你得的数字'); if ...
- ArcGIS Engine开发之地图文档保存
在对地图文档进行修改后,经常需要对其进行保存.地图文档的保存有直接保存和另存为两种方式.这里的地图文档的修改指的是修改地图文档文件记录信息,不是对空间数据的编辑. 1.地图文档保存 具体实现的思路: ...
- DarkTrack 4 Alien Version Released RAT 下载地址&视频教程
不废话,点我下载. 官方论坛:https://forum.darktrack.net 作者脸书:https://www.facebook.com/darktrackrat E安全报道:https:// ...
- Linux2.6内核进程调度系列--scheduler_tick()函数3.更新普通进程的时间片
RT /** * 运行到此,说明进程是普通进程.现在开始更新普通进程的时间片. */ /* 首先递减普通进程的时间片计数器.如果用完,继续执行以下操作 */ if (!--p->time_sli ...
- Android之RecyclerView的原生Bug-Inconsistency detected. Invalid view holder adapter positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
今天在运行自己编写的App时,突然发现App在运行时闪退,然后就查看了Android Studio的Log,发现了这个错误,上网查了一下,才知道是RecyclerView的原生Bug,在数据更新时会出 ...