MySQL-从表中选择
时间:2020-02-23 14:41:03 来源:igfitidea点击:
在本教程中,我们将学习从MySQL中的表中选择数据。
我们将使用在CREATE Table教程中创建的employee
和comments
表。
选择表的所有列
我们使用" 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)