12月阅读周·MySQL数据库入门:单表查询之查询所有字段篇
背景
去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。
没有计划的阅读,收效甚微。
新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。
这个“玩法”虽然常见且板正,但是有效,已经坚持阅读十一个月。
已读完书籍:《架构简洁之道》、《深入浅出的Node.js》、《你不知道的JavaScript(上卷)》、《你不知道的JavaScript(中卷)》、《你不知道的JavaScript(下卷)》、《数据结构与算法JavaScript描述》、《WebKit技术内幕》、《前端架构:从入门到微前端》、《秒懂算法:用常识解读数据结构与算法》、《JavaScript权威指南》、《JavaScript异步编程设计快速响应的网络应用》、《编写可测试的JavaScript代码》。
当前阅读周书籍:《MySQL数据库入门》。
查询所有字段
查询所有字段是指查询表中所有字段的数据,MySQL中有两种方式可以查询表中所有字段,接下来将针对这两种方式进行详细的讲解。
在SELECT语句中指定所有字段
在SELECT语句中列出所有字段名来查询表中的数据,其语法格式如下:
SELECT 字段名1,字段名2,…FROM 表名
在上述语法格式中,“字段名1、字段名2”表示查询的字段名,这里需要列出表中所有的字段名。
【例1-1】 查询student表中的所有记录。为了实现查询功能,首先创建一个数据库chapter04,创建数据库的SQL语句如下所示:
CREATE DATABASE chapter04;
选择使用chapter04数据库,SQL语句如下所示:
USE chapter04;
在数据库chapter04中创建表student,创建student表的SQL语句如下所示:
CREATE TABLE student(
id INT(3) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
grade FLOAT,
gender CHAR(2)
);
执行SQL语句创建student表,然后使用INSERT语句向student表中插入8条记录,INSERT语句如下所示:
INSERT INTO student(name,grade,gender)
VALUES('songjiang',40,'男'),
('wuyong',100,'男'),
('qinming',90,'男'),
('husanniang',88,'女'),
('sunerniang',66,'女'),
('wusong',86,'男'),
('linchong',92,'男'),
('yanqing',90,NULL);
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 | qinming | 90 | 男 |
| 4 | husanniang | 88 | 女 |
| 5 | sunerniang | 66 | 女 |
| 6 | wusong | 86 | 男 |
| 7 | linchong | 92 | 男 |
| 8 | yanqing | 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 | 男 | qinming |
| 4 | 88 | 女 | husanniang |
| 5 | 66 | 女 | sunerniang |
| 6 | 86 | 男 | wusong |
| 7 | 92 | 男 | linchong |
| 8 | 90 | NULL | yanqing |
+----+-------+--------+------------+
8 rows in set (0.00 sec)
从查询结果可以看出,在SELECT语句中将name字段放在最后一列,其查询结果中name字段的数据会在最后一列显示。
在SELECT语句中使用星号(“*”)
通配符代替所有字段 MySQL中可以使用星号(“*”)通配符来代替所有的字段名,其语法格式如下所示: SELECT * FROM 表名;
【例1-2】 在SELECT语句中使用星号(“*”)通配符查询student表中的所有字段,SQL语句如下所示:
SELECT * FROM student;
查询结果如下所示:
mysql>SELECT * FROM student;
+----+------------+-------+--------+
| id | name | grade | gender |
+----+------------+-------+--------+
| 1 | songjiang | 40 | 男 |
| 2 | wuyong | 100 | 男 |
| 3 | qinming | 90 | 男 |
| 4 | husanniang | 88 | 女 |
| 5 | sunerniang | 66 | 女 |
| 6 | wusong | 86 | 男 |
| 7 | linchong | 92 | 男 |
| 8 | yanqing | 90 | NULL |
+----+------------+-------+--------+
8 rows in set (0.01 sec)
从查询结果可以看出,使用星号(“*”)通配符同样可以查出表中所有字段的数据,这种方式比较简单,但查询结果只能按照字段在表中定义的顺序显示。 注意: 一般情况下,除非需要使用表中所有字段的数据,否则最好不要使用星号通配符,使用通配符虽然可以节省输入查询语句的时间,但由于获取的数据过多会降低查询的效率。
总结
查询所有字段是指查询表中所有字段的数据,MySQL中有两种方式可以查询表中所有字段:
- 在SELECT语句中指定所有字段。
- 在SELECT语句中使用星号(“*”)。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)