mysql实现条件限制语句的实例(二)

5.limit语句:
语法:select 字段名 from 标明 limit 起始行,查询几行;

mysql> select * from 4a limit 0,3;  +--------+------+--------+------+--------+------+------+-------+  | sname  | sage | tname  | t    | cname  | s    | c    | score |  +--------+------+--------+------+--------+------+------+-------+  | 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |  | 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |  | 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |  +--------+------+--------+------+--------+------+------+-------+  3 rows in set (0.00 sec)

注意:起始行的第一行为0而不是1。

6. like语句:

语法:select 字段名 from 表名 where 字段名 like 条件;

mysql> select * from 4a where sage like "%9" or sage like "%8";  +--------+------+--------+------+--------+------+------+-------+  | sname  | sage | tname  | t    | cname  | s    | c    | score |  +--------+------+--------+------+--------+------+------+-------+  | 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |  | 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |  | 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |  | 刘一   |   18 | 周磊   |    4 | 物理   |    1 |    4 |    58 |  | 钱二   |   19 | 叶平   |    1 | 语文   |    2 |    1 |    79 |  | 钱二   |   19 | 贺高   |    2 | 数学   |    2 |    2 |    81 |  | 钱二   |   19 | 杨艳   |    3 | 英语   |    2 |    3 |    92 |  | 钱二   |   19 | 周磊   |    4 | 物理   |    2 |    4 |    68 |  | 李四   |   18 | 贺高   |    2 | 数学   |    4 |    2 |    88 |  | 李四   |   18 | 杨艳   |    3 | 英语   |    4 |    3 |    90 |  | 李四   |   18 | 周磊   |    4 | 物理   |    4 |    4 |    93 |  | 赵六   |   19 | 叶平   |    1 | 语文   |    6 |    1 |    35 |  | 赵六   |   19 | 贺高   |    2 | 数学   |    6 |    2 |    68 |  | 赵六   |   19 | 周磊   |    4 | 物理   |    6 |    4 |    71 |  +--------+------+--------+------+--------+------+------+-------+  14 rows in set (0.00 sec)
mysql> select * from 4a where sage like "%9" or sage like "%8" or sage like "%%";  +--------+------+--------+------+--------+------+------+-------+  | sname  | sage | tname  | t    | cname  | s    | c    | score |  +--------+------+--------+------+--------+------+------+-------+  | 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |  | 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |  | 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |  | 刘一   |   18 | 周磊   |    4 | 物理   |    1 |    4 |    58 |  | 钱二   |   19 | 叶平   |    1 | 语文   |    2 |    1 |    79 |  | 钱二   |   19 | 贺高   |    2 | 数学   |    2 |    2 |    81 |  | 钱二   |   19 | 杨艳   |    3 | 英语   |    2 |    3 |    92 |  | 钱二   |   19 | 周磊   |    4 | 物理   |    2 |    4 |    68 |  | 张三   |   17 | 叶平   |    1 | 语文   |    3 |    1 |    91 |  | 张三   |   17 | 贺高   |    2 | 数学   |    3 |    2 |    47 |  | 张三   |   17 | 杨艳   |    3 | 英语   |    3 |    3 |    88 |  | 张三   |   17 | 周磊   |    4 | 物理   |    3 |    4 |    56 |  | 李四   |   18 | 贺高   |    2 | 数学   |    4 |    2 |    88 |  | 李四   |   18 | 杨艳   |    3 | 英语   |    4 |    3 |    90 |  | 李四   |   18 | 周磊   |    4 | 物理   |    4 |    4 |    93 |  | 王五   |   17 | 叶平   |    1 | 语文   |    5 |    1 |    46 |  | 王五   |   17 | 杨艳   |    3 | 英语   |    5 |    3 |    78 |  | 王五   |   17 | 周磊   |    4 | 物理   |    5 |    4 |    53 |  | 赵六   |   19 | 叶平   |    1 | 语文   |    6 |    1 |    35 |  | 赵六   |   19 | 贺高   |    2 | 数学   |    6 |    2 |    68 |  | 赵六   |   19 | 周磊   |    4 | 物理   |    6 |    4 |    71 |  +--------+------+--------+------+--------+------+------+-------+  21 rows in set (0.00 sec)

可以看出双百分号%%是全匹配,可以匹配表中的所有记录。那么,即便是NULL值也能够匹配吗?

答案是否定的:

mysql> select * from 4a;  +--------+------+--------+------+--------+------+------+-------+  | sname  | sage | tname  | t    | cname  | s    | c    | score |  +--------+------+--------+------+--------+------+------+-------+  | 刘一   |   18 | 叶平   |    1 | 语文   |    1 |    1 |    56 |  | 刘一   |   18 | 贺高   |    2 | 数学   |    1 |    2 |    78 |  | 刘一   |   18 | 杨艳   |    3 | 英语   |    1 |    3 |    67 |  | 刘一   |   18 | 周磊   |    4 | 物理   |    1 |    4 |    58 |  | 钱二   |   19 | 叶平   |    1 | 语文   |    2 |    1 |    79 |  | 钱二   |   19 | 贺高   |    2 | 数学   |    2 |    2 |    81 |  | 钱二   |   19 | 杨艳   |    3 | 英语   |    2 |    3 |    92 |  | 钱二   |   19 | 周磊   |    4 | 物理   |    2 |    4 |    68 |  | 张三   |   17 | 叶平   |    1 | 语文   |    3 |    1 |    91 |  | 张三   |   17 | 贺高   |    2 | 数学   |    3 |    2 |    47 |  | 张三   |   17 | 杨艳   |    3 | 英语   |    3 |    3 |    88 |  | 张三   |   17 | 周磊   |    4 | 物理   |    3 |    4 |    56 |  | 李四   |   18 | 贺高   |    2 | 数学   |    4 |    2 |    88 |  | 李四   |   18 | 杨艳   |    3 | 英语   |    4 |    3 |    90 |  | 李四   |   18 | 周磊   |    4 | 物理   |    4 |    4 |    93 |  | 王五   |   17 | 叶平   |    1 | 语文   |    5 |    1 |    46 |  | 王五   |   17 | 杨艳   |    3 | 英语   |    5 |    3 |    78 |  | 王五   |   17 | 周磊   |    4 | 物理   |    5 |    4 |    53 |  | 赵六   |   19 | 叶平   |    1 | 语文   |    6 |    1 |    35 |  | 赵六   |   19 | 贺高   |    2 | 数学   |    6 |    2 |    68 |  | 赵六   |   19 | 周磊   |    4 | 物理   |    6 |    4 |    71 |  | NULL   | NULL | NULL   | NULL | NULL   | NULL | NULL |    93 |  +--------+------+--------+------+--------+------+------+-------+  22 rows in set (0.05 sec)

7.distinct语句:
语法:select distinct 字段名 from 表名;

mysql> select distinct sname from 4a;             +--------+  | sname  |  +--------+  | 刘一   |  | 钱二   |  | 张三   |  | 李四   |  | 王五   |  | 赵六   |  | NULL   |  +--------+
mysql> select distinct sname, sage from 4a;  +--------+------+  | sname  | sage |  +--------+------+  | 刘一   |   18 |  | 钱二   |   19 |  | 张三   |   17 |  | 李四   |   18 |  | 王五   |   17 |  | 赵六   |   19 |  | NULL   | NULL |  +--------+------+  7 rows in set (0.00 sec)
mysql> select distinct sname, sage,tname from 4a;  +--------+------+--------+  | sname  | sage | tname  |  +--------+------+--------+  | 刘一   |   18 | 叶平   |  | 刘一   |   18 | 贺高   |  | 刘一   |   18 | 杨艳   |  | 刘一   |   18 | 周磊   |  | 钱二   |   19 | 叶平   |  | 钱二   |   19 | 贺高   |  | 钱二   |   19 | 杨艳   |  | 钱二   |   19 | 周磊   |  | 张三   |   17 | 叶平   |  | 张三   |   17 | 贺高   |  | 张三   |   17 | 杨艳   |  | 张三   |   17 | 周磊   |  | 李四   |   18 | 贺高   |  | 李四   |   18 | 杨艳   |  | 李四   |   18 | 周磊   |  | 王五   |   17 | 叶平   |  | 王五   |   17 | 杨艳   |  | 王五   |   17 | 周磊   |  | 赵六   |   19 | 叶平   |  | 赵六   |   19 | 贺高   |  | 赵六   |   19 | 周磊   |  | NULL   | NULL | NULL   |  +--------+------+--------+  22 rows in set (0.00 sec)

可以看出当作用于多列的时候distinct就不再返回唯一记录了。
另外distinct还可以和一些数学运算的函数一起使用:

mysql> select count(distinct sname) from 4a;  +-----------------------+  | count(distinct sname) |  +-----------------------+  |                     6 |  +-----------------------+  1 row in set (0.08 sec)
mysql> select sum(distinct score) from 4a;  +---------------------+  | sum(distinct score) |  +---------------------+  |                1193 |  +---------------------+  1 row in set (0.06 sec)
mysql> select max(distinct score) from 4a;  +---------------------+  | max(distinct score) |  +---------------------+  |                  93 |  +---------------------+  1 row in set (0.06 sec)
mysql> select min(distinct score) from 4a;  +---------------------+  | min(distinct score) |  +---------------------+  |                  35 |  +---------------------+  1 row in set (0.00 sec)
mysql> select min(distinct score-1) from 4a;  +-----------------------+  | min(distinct score-1) |  +-----------------------+  |                    34 |  +-----------------------+  1 row in set (0.08 sec)

例子太多就不一一列举了。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享