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吗?查询指定节点及其所有父节 ...
随机推荐
- Netty简介
Netty简介 Netty是由JBOSS提供的一个Java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.和传统BIO不同,NI ...
- 仓位管理 – 1.理论篇
看到文章标题中的"仓位管理",读者可能会认为它只适用于股市投资.其实不然.只要是投资都涉及到风险.回报率.投资额度,都会涉及到仓位管理.再者,人生本身就带着无数的抉择.风险和回报, ...
- .NET之全平台一体化的体验
一.前言 近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“. 何为全平台:APP包括Android.IOS.WP,WEB可在Window ...
- Ionic2系列——在Ionic2中使用ECharts
在群里看到有人问怎么在Ionic2中集成ECharts来显示图表.当时答应说写个blog,简单写下步骤. 在TypeScript中如果要使用第三方库,必须要有d.ts,也就是定义文件,没有这个文件的话 ...
- 在docker容器中vi指令找不到
在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲apt-get install vi命令时,提示: ...
- volatile
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的 ...
- java面试题——HashMap和Hashtable 的区别
一.HashMap 和Hashtable 的区别 我们先看2个类的定义 public class Hashtable extends Dictionary implements Map, Clonea ...
- LightGallery.js – 功能齐全的 Javascript Lightbox
Lightgallery是一个轻量级的模块化.响应式的灯箱画廊,它允许您创建美丽的图像和视频画廊.借助缩略图插件的帮助,Lightgallery 允许您创建缩略图画廊.它支持触摸屏设备上滑动导航以及桌 ...
- hexo博客-性能优化
前言 刚开始搭建博客的时候觉得很好玩,可是玩的久了,问题慢慢就出来了,就跟谈恋爱一样==.比如现在我访问博客的时候就感觉慢的要死,不可否认,使用hexo搭建服务器方便快捷,但是由于github作为服务 ...
- js sort() reverse()
数组中存在的两个方法:sort()和reverse() 直接用sort(),如下: ,,,,,,,,,,,]; console.log(array.sort());ps:[0, 1, 2, 2, 29 ...