MySQL-从表中选择

时间:2020-02-23 14:41:03  来源:igfitidea点击:

在本教程中,我们将学习从MySQL中的表中选择数据。

我们将使用在CREATE Table教程中创建的employeecomments表。

选择表的所有列

我们使用" SELECT * FROM table_name"命令选择给定表的所有列。

在下面的示例中,我们选择"员工"表的所有列。

mysql> SELECT * FROM employee;

我们得到以下输出。

+------------+-----------+----------+---------------------+-------+------------+---------------------+---------------------+
| employeeid | firstname | lastname | email               | score | birthday   | lastmodified        | created             |
+------------+-----------+----------+---------------------+-------+------------+---------------------+---------------------+
| e01        |      |   | @example.com   |     0 | 1900-01-01 | 2016-01-01 01:01:01 | 2016-01-01 01:01:01 |
| e02        | John      | Doe      | [email protected] |     8 | 1900-02-03 | 2016-01-01 01:01:04 | 2016-01-01 01:01:04 |
| e03        | Jane      | Doe      | [email protected] |     6 | 1900-05-20 | 2016-01-01 01:01:04 | 2016-01-01 01:01:04 |
+------------+-----------+----------+---------------------+-------+------------+---------------------+---------------------+
3 rows in set (0.00 sec)

在以下示例中,我们选择"评论"表的所有列。

mysql> SELECT * FROM comments;
+-----------+------------+-------------+---------------------+---------------------+
| commentid | employeeid | commentbody | lastmodified        | created             |
+-----------+------------+-------------+---------------------+---------------------+
|         1 | e03        | Awesome     | 2016-01-01 02:03:04 | 2016-01-01 02:03:04 |
|         2 | e03        | Hello World | 2016-01-02 01:02:03 | 2016-01-02 01:02:03 |
|         3 | e01        | Happy       | 2016-01-02 01:04:03 | 2016-01-02 01:04:03 |
+-----------+------------+-------------+---------------------+---------------------+
3 rows in set (0.00 sec)

选择表的特定列

我们可能不希望一直检索表的所有列,因此,我们没有提及*,而是提到了我们感兴趣的列的名称。

在以下示例中,我们从" employee"表中选择所有雇员的" employeeid"," firstname"和" lastname"。

mysql> SELECT employeeid, firstname, lastname FROM employee;
+------------+-----------+----------+
| employeeid | firstname | lastname |
+------------+-----------+----------+
| e01        |      |   |
| e02        | John      | Doe      |
| e03        | Jane      | Doe      |
+------------+-----------+----------+
3 rows in set (0.00 sec)

同样,在下面的示例中,我们从" comments"表中选择" commentid"和" commentbody"。

mysql> SELECT commentid, commentbody FROM comments;
+-----------+-------------+
| commentid | commentbody |
+-----------+-------------+
|         1 | Awesome     |
|         2 | Hello World |
|         3 | Happy       |
+-----------+-------------+
3 rows in set (0.00 sec)

为选定的列命名

我们可以通过使用AS后面跟着新名称为SELECT查询中的列赋予新名称。

在下面的示例中,我们为" employeeid"列赋予新名称" id"。

mysql> SELECT employeeid AS id, firstname, lastname FROM employee;
+-----+-----------+----------+
| id  | firstname | lastname |
+-----+-----------+----------+
| e01 |      |   |
| e02 | John      | Doe      |
| e03 | Jane      | Doe      |
+-----+-----------+----------+
3 rows in set (0.00 sec)

Concat SELECT查询中的两列

我们使用CONCAT()函数来连接MySQL中的列。

在下面的示例中,我们将"名字"和"姓氏"列值进行串联,并为其赋予新名称" employee_name"。

mysql> SELECT employeeid, CONCAT(firstname, lastname) AS employee_name FROM employee;
+------------+---------------+
| employeeid | employee_name |
+------------+---------------+
| e01        |   |
| e02        | JohnDoe       |
| e03        | JaneDoe       |
+------------+---------------+
3 rows in set (0.00 sec)

正如我们看到的那样,名字和姓氏之间缺少空格,因此我们将在CONCAT中的两者之间包含一个空格字符。
随时尝试并添加新的字符串和字符。

mysql> SELECT employeeid, CONCAT(firstname, ' ', lastname) AS employee_name FROM employee;

现在输出看起来不错。

+------------+---------------+
| employeeid | employee_name |
+------------+---------------+
| e01        |  |
| e02        | John Doe      |
| e03        | Jane Doe      |
+------------+---------------+
3 rows in set (0.00 sec)