PHP之路——MySql查询语句
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查询语句的更多相关文章
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
- mysql查询语句,通过limit来限制查询的行数。
mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...
- MYSQL查询语句大全集锦
MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...
- MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介
网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...
- MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:
- mysql查询语句集
1. mysql 查询出某字段的值不为空的语句 1.不为空 select * from table where id <> ""; select * from tabl ...
- [转]MySQL查询语句执行过程详解
Mysql查询语句执行原理 数据库查询语句如何执行?语法分析:首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树.语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是 ...
- Mysql查询语句中字符型字段不区分大小写解决方法
项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...
- php面试专题---MYSQL查询语句优化
php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...
随机推荐
- typedef struct
突然忘了这玩意儿了..今天就来搞一发 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请n ...
- [置顶] Android JNI必须掌握的五点
1:JNI是什么? Java NativeInterface(JNI)是Java提供的一个很重要的特性.它使得用诸如C/C++等语言编写的代码可以与运行于Java虚拟机(JVM)中的 Java代码 ...
- nvl,空时的推断和取值
nvl NVL的概念 Oracle/PLSQL中的一个函数. 格式为: NVL( string1, replace_with) 功能:假设string1为NULL,则NVL函数返回replace_wi ...
- 数据库框架 Litepal
1.导包 dependencies { compile 'org.litepal.android:core:1.4.1' } 2.在asstes中建立litepal.xml文件 <?xml ...
- [转] nginx+FastCGI+c++
from: http://www.cnblogs.com/xiaouisme/archive/2012/08/01/2618398.html 一 安装 目的:不需支持php等.就html就行了.步骤: ...
- 体验Impress.js
用腻了ppt,prezi的风格看起来更酷一点儿,无意中得知有Impress.js这么一个H5版的prezi,nice,值得一试. 关于Impress.js,网上教程很多,但说实话就跟教小朋友一样,一步 ...
- Android系统移植与驱动开发----第一章
第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...
- 移动页面缩放方法之(二)控制HTML
<!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta http-equiv="Con ...
- jsonp Ajax跨域请求
什么是JSONP? JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域 ...
- (转)PHP模板smarty简单入门教程
转之--http://blog.163.com/zf_2011@126/blog/static/166861361201062595057962/ 如何在smarty中开始我们程序设计.PHP代码:- ...