1.IN
2.BETWEEN AN
3.带LIKE的字符串匹配查询
-
%:匹配一个或者多个字符,长度可以为0.
-
_:匹配一个字符。
4.用DISTINCT关键字取出结果中的重复行
5.ORDER by +字段名 //按什么字段进行排序.
6.使用 GROUP BY +字段名 表示以什么什么字段进行分组,这样分组中只会每组随机显示一个条目。
另外我们可以使用GROUP_CONCAT(字段)这样就会将分组后指定的字段的所有值都显示出来。
7.可以使用LIMIT限制查询结果的数量。
使用方法:
select xx
from
table_name
limit
2
; //在所有的查询记录中取前两条。
select
xx
from
table_name
limit
n,m
; //从编号为n的记录中查询三条记录。
8.使用聚合函数进行查询——count函数
对于除*以外的函数,返回所选择集合中非NULL值的数目。
对于*返回所选择集合中包含NULL值的数目。
9.连接查询。
连接是指把不同表的记录连到一起。
-
内连接查询:内连接表示相等的连接,即连接后的表中某个字段与每个表中的都相同。
-
外连接查询:外连接是指使用OUTER,JOIN关键字将两个表连接起来,外连接生成的结果集不仅包含符合连接条件的行数据,而且还包括左表、右表或两边连接表中所有的数据行。
SELECT
字段名
from
table_name
表1
LEFT|RIGHT JOIN
表2
ON
表1.字段名
=表2.字段名 ;
mysql
> select owner,information.passward,information.create_time from pet left join information on information.user=pet.name;
//左连接的特点是左表中有多少行,那么最后匹配出来的条目就有多少条
+-------+----------+---------------------+
| owner | passward | create_time |
+-------+----------+---------------------+
| NULL | NULL | NULL |
| root | NULL | NULL |
| NULL | NULL | NULL |
| lzh | 666666 | 2017-03-30 17:36:50 |
| NULL | NULL | NULL |
| cyb | 999999 | 2017-03-27 17:47:47 |
| NULL | NULL | NULL |
| NULL | NULL | NULL |
| NULL | NULL | NULL |
+-------+----------+---------------------+
9 rows in set (0.02 sec)
//下面事以右连接的方式进行查询.
mysql
>selectowner,information.passward,information.create_time from pet right join information on information.user=pet.name;
+-------+----------+---------------------+
| owner | passward | create_time |
+-------+----------+---------------------+
| cyb | 999999 | 2017-03-27 17:47:47 |
| lzh | 666666 | 2017-03-30 17:36:50 |
+-------+----------+---------------------+
2 rows in set (0.00 sec)
//复合连接查询
//复合连接查询又称为复合条件查询,在连接查询时,我们可以增加其他的限制条件,复合查询的长度取决于最短的表。
mysql
>selectowner,information.passward,information.create_time from pet,information where information.user=pet.name;
+-------+----------+---------------------+
| owner | passward | create_time |
+-------+----------+---------------------+
| lzh | 666666 | 2017-03-30 17:36:50 |
| cyb | 999999 | 2017-03-27 17:47:47 |
+-------+----------+---------------------+
2 rows in set (0.00 sec)
10.子查询:
所谓的子查询就是SELECT查询是另一个查询的附属,从MySQL4.1开始就可以嵌套多个查询,在外一层的查询中使用的是里面一层查询产生的结果集。
当遇到这样的多层查询时,MySQL从最内层的查询开始,然后移动到外层,在这个过程中每个查询产生的结果集都被赋给包围它的父查询。
-
带IN关键字的子查询:
IN关键字可以检测结果中是否存在某个特定的值,如果检测成功执行外部的查询。
-
带EXISTS关键字的子查询:
使用EXISTS关键字时,内层查询语句不返回查询的记录,而是返回一个真假值(如果内层查询到满足条件的记录,就返回true),当返回为true时,外层语句将进行查询。
-
使用正则表达式进行查询
字段名 REGEXP ‘匹配方式’