序号 | 说明 | 操作 |
---|---|---|
1 | 检索单个列 | SELECT col_name FROM tb_name; |
2 | 检索多个列 | SELECT col_name1, col_name2 FROM tb_name; |
3 | 检索所有列 | SELECT * FROM tb_name; |
4 | 检索列值不同的行 | SELECT DISTINCT FROM tb_name; |
5 | 限制结果,意为从行3 开始取4行 | LIMIT 2 OFFSET 3 或LIMIT 3,2 |
6 | 使用完全限定的表名 | SELECT tb_name.col_name FROM tb_name ; 或 SELECT tb_name.col_name FROM db_name.tb_name ; |
以下为数据库SQLTEST
中的三张表,其结构和内容如下:
1.检索单个列
返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。
mysql> SELECT Stu_id
-> FROM T_Score;
+--------+
| Stu_id |
+--------+
| 1 |
| 1 |
| 2 |
| 2 |
| 3 |
| 4 |
+--------+
2.检索多个列
mysql> SELECT Stu_id,Lesson_id
-> FROM t_score;
+--------+-----------+
| Stu_id | Lesson_id |
+--------+-----------+
| 1 | L001 |
| 1 | L002 |
| 2 | L001 |
| 2 | L004 |
| 3 | L003 |
| 4 | L005 |
+--------+-----------+
3.检索所有列
mysql> SELECT *
-> FROM t_score;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
| 1 | L001 | 90 |
| 1 | L002 | 86 |
| 2 | L001 | 84 |
| 2 | L004 | 75 |
| 3 | L003 | 85 |
| 4 | L005 | 98 |
+--------+-----------+-------+
4.检索列值不同的行
DISTINCT关键字:指示MySQL只返回不同的值。
mysql> SELECT DISTINCT Stu_id
-> FROM t_score;
+--------+
| Stu_id |
+--------+
| 1 |
| 2 |
| 3 |
| 4 |
+--------+
不能部分使用DISTINCT,如果给出
SELECT DISTINCT Stu_id, Lesson_id
,除非指定的两个列都不同,否则所有行都将被检索出来。
mysql> SELECT DISTINCT Stu_id, Lesson_id
-> FROM t_score;
+--------+-----------+
| Stu_id | Lesson_id |
+--------+-----------+
| 1 | L001 |
| 1 | L002 |
| 2 | L001 |
| 2 | L004 |
| 3 | L003 |
| 4 | L005 |
+--------+-----------+
5.限制结果
LIMIT 2
指示MySQL返回不多于2行。
mysql> SELECT Stu_id, Lesson_id
-> FROM t_score
-> LIMIT 2;
+--------+-----------+
| Stu_id | Lesson_id |
+--------+-----------+
| 1 | L001 |
| 1 | L002 |
+--------+-----------+
LIMIT 2,2
可指定要检索的开始行和行数;
行0:检索出来的第一行为行0而不是行1。因此,LIMIT 2,2
将检索出第3行而不是第1行。
mysql> SELECT Stu_id, Lesson_id
-> FROM t_score
-> LIMIT 2,2;
+--------+-----------+
| Stu_id | Lesson_id |
+--------+-----------+
| 2 | L001 |
| 2 | L004 |
+--------+-----------+
LIMIT 2 OFFSET 3
意为从行3开始取4行,就像LIMIT 3,2
。
mysql> SELECT Stu_id, Lesson_id
-> FROM t_score
-> LIMIT 2 OFFSET 3;
+--------+-----------+
| Stu_id | Lesson_id |
+--------+-----------+
| 2 | L004 |
| 3 | L003 |
+--------+-----------+
6.使用完全限定的表名
可使用完全限定的名字来引用列,即同时使用表名和列字。
mysql> SELECT t_score.stu_id
-> FROM t_score;
+--------+
| stu_id |
+--------+
| 1 |
| 1 |
| 2 |
| 2 |
| 3 |
| 4 |
+--------+
表名也可以是完全限定的。
mysql> SELECT t_score.Stu_id
-> FROM sqltest.t_score;
+--------+
| Stu_id |
+--------+
| 1 |
| 1 |
| 2 |
| 2 |
| 3 |
| 4 |
+--------+