SQL字段类型及部分建表思想

字段类型

整形类型

类型 储存空间 表示范围(无符号) 表示范围(有符号)
tinyint 1 0~28-1 -27 ~27-1
smallint 2 0~216-1 -215 ~215-1
mediumint 3 0~224-1 -223 ~223-1
int 4 0~232-1 -231 ~231-1
bigint 8 0~264-1 -263 ~263-1

建表的时候,如果不指明字段无符号,则默认是有符号的,要想建一个无符号的字段,需要加unsigned修饰。
另外还有修饰符<M>,表示十进制补0的宽度,和修饰符zerofill配套使用,使用该修饰附后该字段默认是无符号的。

小数类型

小数类型有float(浮点),decimal(定点,其精度比浮点高)等等,通常带M,D两个参数,如:
Float(M,D)
其中M为精度,代表总位数,而D为标度,代表小数点后面的位数(均为十进制)。
在float类型中,当M≤24,占4字节,否则占8字节。
默认是有符号的,想建一个无符号的需要加unsigned修饰。

字符类型

char(M)

定长字符串,其中0<M<255,不论够不够指定长度都会占着M个长度(M为字符数),如果不够M个长度,则用空格在末尾补齐,取出时把右侧空格去掉,其优点是操作效率较高(可以通过行数和其占用长度直接算出偏移量)

varchar(M)

变长字符串,其中0<M<65525,存0到M个字符,在存储的时候,在字符前会加上字符的长度,因此空间利用率不能达到100%,另外查询速度没有char快。

text

表示比较大的文本级,不能有默认值,搜索速度稍慢

blob

用于存储二进制,如图像、音频等信息,主要是防止字符集过滤掉关键字节而设置的类型

日期和事件类型

date

日期类型(YYYY-MM-dd)存储年月日 占用3个字节

time

时间类型(hh:mm:ss)存储时分秒 占用3个字节

datetime

日期时间类型(YYYY-MM-dd hh:mm:ss)存储年月日时分秒 占用8个字节

year

年份类型(YYYY或YY)存储年 占用1个字节 只能表示1901到2255
以上类型操作时,其值都要加引号

建表

create table [tableName](
[columeName] [columeType] (primary key),
...
[columeName] [columeType](not null default xx)
)engine [engineName] charset [charsetName];
通常而言,不常用的信息以及比较占据空间的信息存储到辅表中,以免影响主表的查询效率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,263评论 1 44
  • 一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,D...
    每天都是幸运的一天阅读 8,872评论 0 3
  • 周未外孙写完作业要到老区去看弟弟,我和他老爷不放心就陪他一起坐公交车去,从我们小区出南门就是九路站牌。因不是终点站...
    紫藤玉阅读 248评论 0 0
  • 安好的婚事(六) 安好醒来的时候已经是上午十点,她洗漱完毕,打开手机,满屏的未接来电消息提醒她,昨晚关机真的是明智...
    六月孺子牛阅读 363评论 3 6
  • 这条音频我们来说说,怎么运用产品思维来求职。 每个人都想找到心仪的工作,但往往陷入高不成低不就的窘境,那么,怎么根...
    两条腿走路的喵阅读 229评论 0 0