BAT测开大神工作总结,这些都看懂了,数据库SQL就没问题了

532 阅读3分钟

1.IN

测试资料包

2.BETWEEN AND

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 JOIN2 ON1.字段名=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 ‘匹配方式’