2014-11-13 85 views
0

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

+---------------------------------------------+----------+----------------+----------------+------------+ 
| 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

您在命令行界面中获得的输出非常不相关。该数据被妥善保存,输出仅仅是你的数据是如何存储在表的例子

我可以在我的脑海Granpa辛普森听到他说: “早在我的日子[80年代] ,当你告诉一个数据库程序输出固定宽度的列时,数据库程序就是这样做的,没有别的!“

(好吧,douh 出生于上世纪80年代:S)

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

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

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

+0

我很好奇......为什么downvote? – Barranka