Heim  >  Artikel  >  Backend-Entwicklung  >  开发时,如何选取mysql字段长度

开发时,如何选取mysql字段长度

WBOY
WBOYOriginal
2016-06-23 14:12:38941Durchsuche

如我要存个值为:0123456789,选int型的那么他的"长度/值"该写多少呢?如何计算的 我发现这个长度/值写1,居然也能存进去,或者我要存字符串"你的名字"这4个字,选varchar型的,长度/值又该写多少呢


回复讨论(解决方案)

只有 varchar、char 类型字段才需要设置宽度,宽度按字符计算
注意:一个汉字是一个字符,但需要设置合适的“整理”

只有 varchar、char 类型字段才需要设置宽度,宽度按字符计算
注意:一个汉字是一个字符,但需要设置合适的“整理”
按照这样说 int 型的 不需要设置 "长度/值"吗(phpmyadmin里),能举例说明吗

好贴,学习了

CREATE TABLE test_str_and_int(
 id int(10) NOT NULL auto_increment,
 str1 VARCHAR(3) NOT NULL,
 str2  VARCHAR(30) NOT NULL,
 test_int_1 TINYINT(1) NOT NULL DEFAULT 1 ,
 test_int_2 SMALLINT(5) NOT NULL  DEFAULT 1,
PRIMARY key(id)
)ENGINE =MYISAM character set utf8;
drop table test_str_and_int
DESC test_str_and_int
#-------------------------------------------------
insert into test_str_and_int (str1,str2,test_int_1,test_int_2) values
('testone','testone',1234567890,1234567890),
('你的名字','你的名字',1234567890,1234567890),
('test你的名字','test你的名字',6789,6789),
('你的名字test','不管插入sql语句多少字符,都会根据数据字段设计的长度进行保留',19860502,19860503)
#---str1--------------------------------------------------
SELECT * FROM test_str_and_int
id str1   str2       int_1 int_2
1  tes   testone    127 32767
2  你的名 你的名字 127 32767
3  tes   test你的名字 127 6789
4  你的名 不管插入sql语句多少字符,都会根据数据字段设计的长度进行保 127 32767

#---总结--------str1 ,str2 是字符串型的-,长度分别设计为varchar(3),varcvhar(30)插入数据库后,分别保留3个字符串长度和30个字符串长度
#不管插入sql语句多少字符,都会根据数据字段设计的长度进行保留-,可以根据需要设计长度,一般的情况下字符串长度为20或者32基本上可以满足
#-同理int类型也基本如此

char和varchar的长度是一个汉字两个字符,你最多放4个字的话长度就设置为8,然后他肯定放不进去5个字!至于int长度为1为什么也能存进去0123456789  我认为是这串数字你以0打头数据库自动判断为0了,你把长度设置成1  然后存个123456789试试

我这有资料 站内联系我

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn