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值也能够匹配吗?
答案是否定的:
ysql> 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)
例子太多就不一一列举了。