数据库设计原则
1、在创建数据表的时候,对于字符串类型的字段,如果明确知道字段的长度,就用char类型,否则用varchar。char类型查询速度更快,但会浪费存储空间
字符串char和varchar的区别在于两点:1,存储长度不同,char类型存储固定长度,varchar类型是可变长度,是在存储的内容上加一个字节。比如
char(5) varchar(5)
' ', 内存占5个字节 ' ' 1个字节
'kingwu_han' 6个字节,在数据表里只保存前五位'kingw'
'abc',占5个字节
'记录姜是老的辣 ' 5个字节
第二个区别是检索方式不同,varchar类型的字段值如果有空格,检索出来的时候空格依然显示,char类型不显示空格,也就是说会过滤掉空格,比如'ab c'和'abc'。
枚举类型enum和集合类型set的区别,enum字段的值只能是几个选项中的一个,而set字段的值可以是一个也可以是集合中的多个。只要值在集合里就行。
create table demo(name enum('a','b','c'),addr set('北京','天津','上海')),如果将'a,b'插入到字段name中会报错,因为name字段的值只能是a,b,c中的一个,如果将'北京,上海'插入到addr字段中则不会报错。
blob 存储二进制数据,比如相片,相片是一种文件,可以在php程序里,按读取文件内容的方式将二进制数据读取出来,然后存储到数据表当中。
数值型:tinyint(-128-127或0-255),smallint(-32768-32767或0-65535),mediumint(0-16777215),int(21.4亿多),bigint,在选中那个整型的时候,根据字段的最大值来取,