MYSQL表格对齐格式

时间:2014-11-13 23:35:15

标签: mysql

我目前正在MYSQL中进行一项任务,我的方案是为军队创建一个数据库(我选择了场景,不要问为什么)。然而,我的问题是,在创建表并填充它之后,将显示当我执行SELECT命令时表格的格式。像这样的事情:

+---------------------------------------------+----------+----------------+----------------+------------+
| Name                                        | Codename | Type           | FOB            | Combatants |
+---------------------------------------------+----------+----------------+----------------+------------+
| 12 Régiment blindé du Canada              | Adsum    | Armour         | CFB Valcartier |          9 |
| 5 Régiment d'artillerie légère du Canada | Ubique   | Artillery      | CFB Valcartier |         12 |
| 5 Combat Engineer Regiment                  |          | Support        | CFB Valcartier |          5 |
| 3rd Battalion, Royal 22e Régiment          | Vipère  | Light Infantry | CFB Valcartier |          5 |
| The Canadian Grenadier Guards               | Vipère  | Light Infantry | Montreal       |          5 |
+---------------------------------------------+----------+----------------+----------------+------------+

我无法弄清楚为什么会发生这种情况,每个字段中的字符数小于创建表时设置的字符数,因此不应该发生这种情况。下面是我的表格:

+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| Name       | varchar(50) | NO   | PRI | NULL    |       |
| Codename   | varchar(30) | YES  |     | NULL    |       |
| Type       | varchar(20) | NO   |     | NULL    |       |
| FOB        | varchar(20) | NO   | MUL | NULL    |       |
| Combatants | int(11)     | NO   |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+

我所有的其他表都正确对齐,所以我不知道为什么这个表是这样的。

1 个答案:

答案 0 :(得分:-1)

您在命令行界面中获得的输出非常无关紧要。数据存储得恰当,输出只是数据存储在表格中的一个例子

  

我可以在心中听到Granpa Simpson说:   "回到我的日子[80年代],当你告诉数据库程序输出具有固定宽度的列时,数据库程序就是这样做而没有别的!"

(好吧,douh!出生于80年代:S)

如果你需要强制格式,你应该编写一个前端程序(使用Python,Java,Perl或任何你想要的语言),它将自己连接到你的数据库,检索数据,格式化和打印它在屏幕上。

或者,您可以使用MySQL built-in string functions根据您的设计格式化数据;例如:

  

RPAD(str,len,padstr):返回字符串str,右侧填充字符串padstr,长度为len个字符。如果str超过len,则返回值会缩短为len个字符