查询所有字段是指查询表中所有字段的数据,MySQL中有两种方式可以查询表中所有字段,接下来将针对这两种方式进行详细的讲解。
1、在 SELECT 语句中指定所有字段
在 SELECT 语句中列出所有字段名来查询表中的数据,其语法格式如下:
SELECT 字段名 1,字段名 2,… FROM 表名
在上述语法格式中,“字段名1、字段名 2”表示查询的字段名,这里需要列出表中所有的字段名。
例如,查询 student 表中的所有记录。为了实现查询功能,首先创建一个数据库chapter04,创建数据库的 SQL语句如下所示:
mysql> create database chapter04;
Query OK, 1 row affected (0.00 sec)
选择使用 chapter04 数据库,SQL 语句如下所示
mysql> use chapter04;
Database changed
在数据库 chapter04 中创建表 student,创建 student 表的 SQL 语句如下所示:
mysql> create table student(-> id INT(3) PRIMARY KEY AUTO_INCREMENT,-> name VARCHAR(20) NOT NULL,-> grade FLOAT,-> gender CHAR(2)-> );
Query OK, 0 rows affected (0.01 sec)
执行 SQL 语句创建 student 表,然后使用 INSERT 语句向 student 表中插入 8 条记录,INSERT语句如下所示:
mysql> INSERT INTO student (name, grade, gender)-> VALUES ('songjiang', 40, '男'),-> ('wuyong', 100, '男'),-> ('ginming', 90, '男'), -> ('husanniang', 88, '女'),-> ('sunerniang', 66, '女'), -> ('wusong', 86, '男'),-> ('linchong', 92, '男'),-> ('yanging', 90, NULL);
Query OK, 8 rows affected (0.01 sec)
Records: 8 Duplicates: 0 Warnings: 0
INSERT语句执行成功后,接下来通过 SELECT 语句查询 student 表中的记录 SQL 语句如下所示:
SELECT id,name,grade,gender FROM student;
查询结果如下所示:
mysql> SELECT id,name,grade,gender FROM student;
+----+------------+-------+--------+
| id | name | grade | gender |
+----+------------+-------+--------+
| 1 | songjiang | 40 | 男 |
| 2 | wuyong | 100 | 男 |
| 3 | ginming | 90 | 男 |
| 4 | husanniang | 88 | 女 |
| 5 | sunerniang | 66 | 女 |
| 6 | wusong | 86 | 男 |
| 7 | linchong | 92 | 男 |
| 8 | yanging | 90 | NULL |
+----+------------+-------+--------+
8 rows in set (0.00 sec)
从查询结果可以看出,SELECT语句成功地查出了表中所有字段的数据。需要注意的是,在 SELECT语句的查询字段列表中,字段的顺序是可以改变的,无须按照其表中定义的顺序进行排列,例如,在 SELECT语句中将 name 字段放在查询列表的最后一列,执行结果如下所示:
mysql> SELECT id,grade,gender,name FROM student;
+----+-------+--------+------------+
| id | grade | gender | name |
+----+-------+--------+------------+
| 1 | 40 | 男 | songjiang |
| 2 | 100 | 男 | wuyong |
| 3 | 90 | 男 | ginming |
| 4 | 88 | 女 | husanniang |
| 5 | 66 | 女 | sunerniang |
| 6 | 86 | 男 | wusong |
| 7 | 92 | 男 | linchong |
| 8 | 90 | NULL | yanging |
+----+-------+--------+------------+
8 rows in set (0.00 sec)
从查询结果可以看出,在 SELECT 语句中将 name 字段放在最后一列,其查询结果中 name 字段的数据会在最后一列显示。
2、在 SELECT 语句中使用星号(“*”)通配符代替所有字段
MySQL 中可以使用星号(“*”)通配符来代替所有的字段名,其语法格式如下所示SELECT * FROM 表名;
例如,在 SELECT 语句中使用星号(“*”)通配符查询 student 表中的所有字段,SQL 语句如下所示:
SELECT * FROM 表名
查询结果如下所示:
mysql> SELECT * FROM student;
+----+------------+-------+--------+
| id | name | grade | gender |
+----+------------+-------+--------+
| 1 | songjiang | 40 | 男 |
| 2 | wuyong | 100 | 男 |
| 3 | ginming | 90 | 男 |
| 4 | husanniang | 88 | 女 |
| 5 | sunerniang | 66 | 女 |
| 6 | wusong | 86 | 男 |
| 7 | linchong | 92 | 男 |
| 8 | yanging | 90 | NULL |
+----+------------+-------+--------+
8 rows in set (0.00 sec)
从查询结果可以看出,使用星号(“*”)通配符同样可以查出表中所有字段的数据,这种方式比较简单但查询结果只能按照字段在表中定义的顺序显示。
注意:一般情况下,除非需要使用表中所有字没的数据,否则最好不要使用星号通配符,使用通配符虽然可以节省输入查询语句的时间但由于获取的数据过多会降低查询的效率。