1,select查询的基本结构

  1. select 字段
  2. from
  3. where 过滤条件
  4. group by 分组条件 having 过滤的第二条件
  5. order by 排序条件
  6. limit 限定结果条件;

  

2,最简单的查询语句

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

3,查询一列或多列

  1. mysql> select username,createtime from user;
  2. +----------+---------------------+
  3. | username | createtime |
  4. +----------+---------------------+
  5. | kenan | 2012-10-31 15:32:26 |
  6. | kenan | 2012-10-31 15:32:26 |
  7. +----------+---------------------+
  8. 2 rows in set (0.00 sec)

4,多表查询

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

  

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

  

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

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

  

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

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

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

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

8, is null 查询空值

  1. mysql> select * from user ;
  2. +----+----------+----------+---------------------+
  3. | id | username | password | createtime |
  4. +----+----------+----------+---------------------+
  5. | 1 | kenan | kenan | 2012-10-31 15:32:26 |
  6. | 3 | kenan | lele | 2012-10-31 15:32:26 |
  7. | 4 | lele | lele | NULL |
  8. +----+----------+----------+---------------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> select * from user where createtime is null;
  12. +----+----------+----------+------------+
  13. | id | username | password | createtime |
  14. +----+----------+----------+------------+
  15. | 4 | lele | lele | NULL |
  16. +----+----------+----------+------------+
  17. 1 row in set (0.00 sec)

  

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

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

  

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

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

  

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

  1. mysql> select count(*) from user;
  2. +----------+
  3. | count(*) |
  4. +----------+
  5. | 3 |
  6. +----------+
  7. 1 row in set (0.00 sec)

  

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

  1. mysql> select id from user;
  2. +----+
  3. | id |
  4. +----+
  5. | 1 |
  6. | 3 |
  7. | 4 |
  8. +----+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> select sum(id) from user;
  12. +---------+
  13. | sum(id) |
  14. +---------+
  15. | 8 |
  16. +---------+
  17. 1 row in set (0.00 sec)
  18.  
  19. mysql> select avg(id) from user;
  20. +---------+
  21. | avg(id) |
  22. +---------+
  23. | 2.6667 |
  24. +---------+
  25. 1 row in set (0.04 sec)

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

  1. mysql> select id from user;
  2. +----+
  3. | id |
  4. +----+
  5. | 1 |
  6. | 3 |
  7. | 4 |
  8. +----+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> select max(id) from user;
  12. +---------+
  13. | max(id) |
  14. +---------+
  15. | 4 |
  16. +---------+
  17. 1 row in set (0.00 sec)
  18.  
  19. mysql> select min(id) from user;
  20. +---------+
  21. | min(id) |
  22. +---------+
  23. | 1 |
  24. +---------+
  25. 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. lightoj 1251 (Two_Sat)

    #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #inclu ...

  2. winscp自动执行脚本

    我们经常使用WinSCP工具通过sftp协议上传获取文件,本文描述通过bat批量处理文件. 首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录 上传文件: wi ...

  3. Jenkins 二:邮件配置

    默认邮件的配置 假设管理员邮箱是 user1@domain1.com,密码是pw1. 1. 打开“系统管理”-> “系统设置”. 2. 找到“Jenkins Location”-> “系统 ...

  4. Spring 基础知识

    Spring架构简单描述 原文:https://www.shiyanlou.com/courses/document/212 Spring 概述 1. Spring 是什么 Spring是一个开源的轻 ...

  5. Python 列表排序方法reverse、sort、sorted详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  6. makeKeyAndVisible的作用

    [self.window makeKeyAndVisible]; 这个是便捷方法,去使被使用对象的主窗口显示到屏幕的最前端.你也可以使用hiddenUIView方法隐藏这个窗口

  7. 【微信公众号】将微信公众号消息里的FromUserName即OpenID转成UnionID

    最近在调试微信公众号开发者模式,处理公众号消息,收到如下回调消息内容 <xml><ToUserName><![CDATA[gh_29********21]]>< ...

  8. [转载]Android利用convertView优化ListView性能

    本的getView写法 Java代码public View getView(int position, View convertView, ViewGroup parent) {View view = ...

  9. Meth | 安装Linux Mint 18以后grub2 win10启动引导项丢失??!!

    进入mint,打开终端输入:sudo update-grub2

  10. codevs 1994 排队 排列组合+高精度

    /* 数学题0.0 最后答案:A(n,n)*A(n+1,2)*A(n+3,m)+A(n,n)*C(m,1)*A(2,2)*C(n+1,1)*A(n+2,m-1); 简单解释一下 +之前的很显然 先排男 ...