SQL

SQL 知识量:22 - 44 - 129

2.1 简单查询><

select语句- 2.1.1 -

SQL中最基本的也是最重要的语句就是select语句,它的用途是从一个或多个表中检索信息。

使用select语句至少需要提供两条信息:

  1. 想选择什么。

  2. 从什么地方选择。

select语句用公式表示就是:select (想选择什么) from (从什么地方选择);

检索单个列- 2.1.2 -

检索单个列即查询表中的一个列的内容。

示例:有一个学生表(student)信息如下:

+----+--------+-----+--------+
| id | name   | age | sex    |
+----+--------+-----+--------+
|  1 | Susan  |  11 | female |
|  2 | Jame   |  12 | male   |
|  3 | Bob    |  11 | male   |
|  4 | Robot  |  10 | male   |
|  5 | Jen    |  11 | female |
|  6 | Toney  |  10 | male   |
|  7 | Jack   |  13 | male   |
|  8 | Alice  |  10 | female |
|  9 | Bonnie |  11 | male   |
| 10 | Ella   |  12 | female |
+----+--------+-----+--------+

查询学生表student中的姓名name列的内容。

select name from student;

查询结果:

+--------+
| name   |
+--------+
| Susan  |
| Jame   |
| Bob    |
| Robot  |
| Jen    |
| Toney  |
| Jack   |
| Alice  |
| Bonnie |
| Ella   |
+--------+

以上查询语句返回的结果是student表中name列的所有内容,其中:

  • select和from都是MySQL的关键字。

  • name表示查询的列名。

  • student表示从学生表中进行检索。

  • MySQL语句必须以分号结束。

需要注意的是:SQL语句不区分大小写,而且在处理SQL语句时,其中所有多余的空格都会被忽略。

检索多个列- 2.1.3 -

要检索多个列,只需要在检索单个列的基础上添加要检索的列名即可。

示例:查询学生表student中的姓名name列和年龄age列的内容。

select name,age from student;

查询结果:

+--------+-----+
| name   | age |
+--------+-----+
| Susan  |  11 |
| Jame   |  12 |
| Bob    |  11 |
| Robot  |  10 |
| Jen    |  11 |
| Toney  |  10 |
| Jack   |  13 |
| Alice  |  10 |
| Bonnie |  11 |
| Ella   |  12 |
+--------+-----+

以上查询语句中,查询的name和age间需要用逗号(,)进行分割,但是最后一个列名(即age)后面是不能加逗号的,否则会出错。

注意:SQL语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。

检索所有列- 2.1.4 -

除了检索指定的列以外,还可以检索一个表的所有列。要检索所有列只需要使用星号(*)通配符替换要检索的列名即可。

示例:查询学生表student中所有列的内容。

select * from student;

查询结果:

+----+--------+-----+--------+
| id | name   | age | sex    |
+----+--------+-----+--------+
|  1 | Susan  |  11 | female |
|  2 | Jame   |  12 | male   |
|  3 | Bob    |  11 | male   |
|  4 | Robot  |  10 | male   |
|  5 | Jen    |  11 | female |
|  6 | Toney  |  10 | male   |
|  7 | Jack   |  13 | male   |
|  8 | Alice  |  10 | female |
|  9 | Bonnie |  11 | male   |
| 10 | Ella   |  12 | female |
+----+--------+-----+--------+

注意:

  • 结果中列的顺序一般是列在表定义中出现的物理顺序,但也并不总是如此。

  • 通配符*一般用于检索未知列,即在不知道列名的情况下进行检索。但是,除非真的有必要,还是尽可能不使用,而是列出真正需要检索的列名,因为通配符*检索对数据库系统性能的影响比较大。