基本语法
SELECT {* | <字段列名>} FROM <表1>, <表2>… [WHERE <表达式>] [GROUP BY <group by definition>] [HAVING <expression> [{<operator> <expression>}…]] [ORDER BY <order by definition>] [LIMIT [<offset>,] <row count>]
查询所有字段
1. 使用 `*` 通配符
SELECT * FROM 表名;
示例:
SELECT * FROM tb_students_info;
缺点 | 优点 |
---|---|
返回所有列,可能包含不必要的数据 | 简单快捷 |
列顺序固定,无法自定义排序 | 不需要知道所有列名 |
可能影响查询性能(尤其是对大表或宽表) |
2. 列出所有字段
SELECT id, name, dept_id, age, sex, height, login_date FROM tb_students_info;
优点 | 缺点 |
---|---|
可以自定义返回列的显示顺序 | 需要知道所有列名 |
更明确的查询意图,可读性高 | 编写较繁琐,特别是列多时 |
查询指定字段
SELECT <列名1>, <列名2>, ..., <列名n> FROM <表名>;
示例:
查询单个字段
SELECT name FROM tb_students_info;
查询多个字段
SELECT id, name, height FROM tb_students_info;
最佳实践建议
1. 避免使用 `SELECT `:
在生产环境中,明确指定需要的列
只查询应用程序实际需要的列
2. 字段顺序:
按照显示或处理的逻辑顺序排列字段
固定字段顺序有助于应用程序处理结果
3. 性能考虑:
查询的字段越少,性能通常越好
特别是对于包含大文本或二进制字段的表
4. 可读性:
复杂的查询应该格式化,每行列出一个字段
为字段和表使用有意义的别名
5. 维护性:
当表结构变更时,明确列出字段的查询更容易发现需要修改的地方
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程