1,select查询的基本结构

select 字段
from 表
where 过滤条件
group by 分组条件 having 过滤的第二条件
order by 排序条件
limit 限定结果条件;

  

2,最简单的查询语句

mysql> select * from user;
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 |
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+

3,查询一列或多列

mysql> select username,createtime from user;
+----------+---------------------+
| username | createtime |
+----------+---------------------+
| kenan | 2012-10-31 15:32:26 |
| kenan | 2012-10-31 15:32:26 |
+----------+---------------------+
2 rows in set (0.00 sec)

4,多表查询

mysql> select * from user;
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 |
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
2 rows in set (0.00 sec) mysql> select * from teacher;
+----+------------+---------------------+
| id | username | createtime |
+----+------------+---------------------+
| 1 | Teacher Li | 2012-11-01 21:00:58 |
| 2 | Teacher Le | 2012-11-01 21:02:07 |
+----+------------+---------------------+
2 rows in set (0.00 sec) mysql> select * from user,teacher;
+----+----------+----------+---------------------+----+------------+---------------------+
| id | username | password | createtime | id | username | createtime |
+----+----------+----------+---------------------+----+------------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 | 1 | Teacher Li | 2012-11-01 21:00:58 |
| 3 | kenan | lele | 2012-10-31 15:32:26 | 1 | Teacher Li | 2012-11-01 21:00:58 |
| 1 | kenan | kenan | 2012-10-31 15:32:26 | 2 | Teacher Le | 2012-11-01 21:02:07 |
| 3 | kenan | lele | 2012-10-31 15:32:26 | 2 | Teacher Le | 2012-11-01 21:02:07 |
+----+----------+----------+---------------------+----+------------+---------------------+
4 rows in set (0.00 sec) 多表查询中,如果没有限制条件的话,两个表的记录会分别进行匹配,产生的结果就是两个表的笛卡尔积,叫做全连接
下面的这个带有条件的叫做等同连接,相当于在上面的查询结果中挑选出来满足where后面条件的记录,因为没有所有是空的结果。

  

mysql> select * from user,teacher where user.username = teacher.username;
Empty set (0.00 sec)

  

5,带有简单的where字句条件查询

mysql> select * from user where id>2;
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
1 row in set (0.00 sec)

  

6,带有in的查询,in用来表示范围

mysql> select * from user where username in ('kenan','Micheal');
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 |
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
2 rows in set (0.00 sec)
这里查询出来username是kenan或者是Micheal的记录

7,between and 用来表示一个字段的范围的查询

mysql> select * from user where id between 2 and 3;
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
1 row in set (0.00 sec) mysql> select * from user where id between 3 and 4;
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
1 row in set (0.00 sec)
这里分别查询出来id在2和3之间的记录,3到4之间的记录,从结果可以看出 between and是包含边界的,就是>=2而且<=3

8, is null 查询空值

mysql> select * from user ;
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 |
| 3 | kenan | lele | 2012-10-31 15:32:26 |
| 4 | lele | lele | NULL |
+----+----------+----------+---------------------+
3 rows in set (0.00 sec) mysql> select * from user where createtime is null;
+----+----------+----------+------------+
| id | username | password | createtime |
+----+----------+----------+------------+
| 4 | lele | lele | NULL |
+----+----------+----------+------------+
1 row in set (0.00 sec)

  

9,用and连接多条件查询  并关系

mysql> select * from user where username = 'kenan' and password = 'kenan';
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
1 row in set (0.00 sec)

  

10,用or 的多条件查询  这个是或关系,满足一个条件即可

mysql> select * from user where username = 'kenan' or password = 'kenan';
+----+----------+----------+---------------------+
| id | username | password | createtime |
+----+----------+----------+---------------------+
| 1 | kenan | kenan | 2012-10-31 15:32:26 |
| 3 | kenan | lele | 2012-10-31 15:32:26 |
+----+----------+----------+---------------------+
2 rows in set (0.00 sec)

  

11,聚合函数  count()用来统计总数

mysql> select count(*) from user;
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)

  

12,使用sum()求和,使用avg函数求平均值

mysql> select id from user;
+----+
| id |
+----+
| 1 |
| 3 |
| 4 |
+----+
3 rows in set (0.00 sec) mysql> select sum(id) from user;
+---------+
| sum(id) |
+---------+
| 8 |
+---------+
1 row in set (0.00 sec) mysql> select avg(id) from user;
+---------+
| avg(id) |
+---------+
| 2.6667 |
+---------+
1 row in set (0.04 sec)

13,使用max()求最大值,使用min求最小值

mysql> select id from user;
+----+
| id |
+----+
| 1 |
| 3 |
| 4 |
+----+
3 rows in set (0.00 sec) mysql> select max(id) from user;
+---------+
| max(id) |
+---------+
| 4 |
+---------+
1 row in set (0.00 sec) mysql> select min(id) from user;
+---------+
| min(id) |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)

原文链接:http://soukenan.blog.51cto.com/5130995/1047201

PHP之路——MySql查询语句的更多相关文章

  1. MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图

    http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...

  2. mysql查询语句,通过limit来限制查询的行数。

    mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...

  3. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  4. MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介

    网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...

  5. MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)

    在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:

  6. mysql查询语句集

    1. mysql 查询出某字段的值不为空的语句 1.不为空 select * from table where id <> ""; select * from tabl ...

  7. [转]MySQL查询语句执行过程详解

    Mysql查询语句执行原理 数据库查询语句如何执行?语法分析:首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树.语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是 ...

  8. Mysql查询语句中字符型字段不区分大小写解决方法

    项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...

  9. php面试专题---MYSQL查询语句优化

    php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...

随机推荐

  1. SRM 504.5(2-1000pt)

    DIV2 1000pt 题意:一群人排队,每次操作由要骰子决定,只要没有人中奖,游戏就不结束.若摇骰子摇出4,则队列第一个人中奖:否则,若摇的是奇数,则第一个人排队到队伍末尾去:否则,第一个人出局.若 ...

  2. 主流H.264编码器对比测试 (MSU出品)

    俄罗斯的MSU Graphics & Media Lab (Video Group)出品的H.264编码器性能测试报告.测试了主流的H.264编码器的性能.从测试的结果来看,开源产品x264性 ...

  3. 5th day

    感觉mysql里面的东西好多,很容易忘记,不是很熟练,知道某些函数有某种功能,但就是想不起来函数的名字,需要去翻笔记,真的还需要大量的练习,毕竟这块的内容可以说是全新的...不知道后面做项目怎么样,这 ...

  4. HttpURLConnection学习

    转自:http://mobile.51cto.com/abased-448264.htm 最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给 ...

  5. Android中监听ScrollView滑动停止和滑动到底部

    1.监听ScrollView滑动停止: /********************监听ScrollView滑动停止*****************************/ scrollView.s ...

  6. ping and traceroute(tracert)

    1.ping程序简单介绍 这个程序是Mike Muuss编写的.目的是測试另外一台机子是否可达. 运用的协议就是ICMP.运用的是ICMP的回显应答和请求回显两个类型.曾经呢.能ping通说明可以进行 ...

  7. 第五篇:R语言数据可视化之散点图

    散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...

  8. Hibernate分页

    1. HQL分页: Session session = HibernateUtil.getInstance().getSession(); Query query = session.createQu ...

  9. discuz! X3 门户文章添加字段

    1. 首先需要去数据表里[llgp_portal_article_title]手动添加需要添加的字段. (注意: 数据表前缀依据自己的设置而定) 2. 修改模版template\default\por ...

  10. poj 1780 code(欧拉路)

    /* 对于n为密码想要序列最短 那么 1234 2345 这两个一定挨着 就是说 前一个的后n-1位是后一个的前n-1位 假设n==3 我们用0-99作为点的编号建图 然后每个点连出去10条边 两个相 ...