查询所有学生姓名,年龄,列名用汉字显示,用Select

说实话,当我第一次接触数据库时,我对使用汉字来命名 SQL 查询结果列感到困惑。
记得第一次在公司ERP系统中写查询语句时,老板坚持把“student_name”写成“学生姓名”。
一开始我觉得很奇怪,毕竟SQL标准都是英文的。

有趣的是,国内很多传统企业都使用用友、KingD等系统。
他们的数据库字段命名习惯是中文,所以用汉字显示结果并不是一个奇怪的操作。
我在一家生产教育系统的公司实习。
他们的整个数据库设计都是中国文化。
查询结果以“姓名”和“年龄”显示,这确实很方便调试——想想看,通过看数字更容易了解自己是1 8 岁还是2 5 岁。

但是有一个障碍。
我曾经遇到过跨平台对接。
对方的系统无法识别中文字段名,最终不得不重新映射为英文。
当时确实很头疼。
而且有一次我用Navicat将数据导入Excel时,所有的中文字段名都变成了乱码,差点让我以为电脑中毒了。

我记得这些数据是大约十年前的。
MySQL对中文的支持还没有现在那么完善。
有些系统在询问时会扭曲汉字。
然而,目前主流的数据库和客户端工具基本上依赖于中文列表。
可以正常处理。
例如,使用SQL Server,在学生信息表中写入SELECT学生姓名AS姓名、学生年龄AS年龄。
因此,“姓名”和“年龄”清晰地显示在结果中。

Bang没有亲自运行过旧版本的PostgreSQL,但我听说早期版本对中文的支持很弱,使用中文字符作为列名可能会导致问题。
如果你在新系统上使用它,很有可能不会出现任何问题。
但说实话,我个人建议保持字段名和列名相同。
例如,如果表包含中文字段,则结果也将是中文,如果表包含英文字段,则结果也将是英文。
虽然汉字显示确实很直观,但在连接所有系统时可以省去很多麻烦。

数据我记得在显示SQL查询结果时,很多前端框架对汉字的处理比以前好很多了,字符扭曲的问题已经基本解决了。
但如果您使用的是老式报告工具,请尝试用英语列出保险。
我当时不明白这一点。
为什么有的系统可以正常显示,而有的系统却显示乱码,可能与字符集设置有关。

SQL三表查询

哦,说到这里,我记得2 02 2 年的时候,我帮一个朋友写了一个SQL查询,从三个表中检索信息。
当时我写了一个包含三个表的查询,从学生基本信息表中选择学号和姓名,从成绩单中选择成绩,从课程表中选择课程名称和学分。
当时我就觉得学生信息、成绩和科目应该好好关联起来,不然数据就会变得一团糟。

学生基本信息表、学生成绩表和课程表就像数据库中的三张纸。
您需要将它们粘贴在正确的位置。
我用一个WHERE子句来写学生主信息表中的学号等于学生成绩表中的学号,这样学生主信息和成绩就可以匹配。
然后我又添加了一行。
学生成绩表上的课程编号与课程表上的课程编号相同,以便成绩和课程可以匹配。

当时我很困惑,认为如果我在这方面犯了错误,那么所需的数据就会完全混乱。
后来我才知道,连接条件一定要正确,否则我的努力就白费了。

后来,我需要过滤数据,所以我添加了一个WHERE子句。
例如,如果我想查找分数低于某个学生的记录,我会编写一个子查询,首先查找该学生的分数,然后使用该子句过滤掉其他学生的分数。

这个过程相当复杂,需要你仔细思考。
不过了解之后发现,所需要的数据确实蛮有用的,能够满足业务需求。
当时我就觉得这个SQL查询我得认真学一下,不然我还真搞不定。