Mysql中的列类型

Posted ·670 Views·1058 Words

Mysql中的列类型:

  1. 数字类型
  2. 字符串类型
  3. 布尔型
  4. 日期时间类型

 

数字类型:

1个字节=8比特,但数字里有一个比特用于符号占位

  1. TINYINT 占用1个字节,表示范围:-128~127
  2. SMALLINT 占用2个字节,表示范围:-32768~32767
  3. INT 占用4个字节,表示范围:-2147483648~2147483647
  4. BIGINT 占用4 / 8个字节,表示范围:-9223372036854775808~9223372036854775807
  5. FLOAT[(M,D)] 单精度浮点型,占4个字节
  6. DOUBLE[(M,D)] 双精度浮点型,占8个字节
  7. DECIMAL[(M,D)] 严格定点数,用于精确运算

M表示总有效位数,D表示小数点后有效位数

 

字符串类型:

\0表示一个字符串结束

  1. CHAR(M)

固定长度字符串,长度最大为225个字符

  1. VARCHAR(M)

长度可变的字符串,长度最大为65535个字符

  1. TEXT(M)

长度可变的字符串,长度最大到4G个字符

定长字符串可能会浪费空间,但效率较高

变长字符串不会浪费空间,但效率稍慢

面试题:CHAR(8)VARCHAR(8)的区别

    CHAR(8)输入“abc”实际存储为

“abc     “abc\0\0\0\0\0”

VARCHAR(8)输入“abc”实际储存为

“abc ”“abc\0”

 

时间类型:

  1. DATE

支持的范围是1000-01-01 ~ 9999-12-31

  1. TIME

支持的范围是00:00:00 ~ 23:59:59

  1. DATETIME

支持的范围是1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

 

列上的约束:

Constraint:约束,列上的值往往是有限制的,如:

性别:只能取男或女

政治面貌:只能取党员、团员、群众

高考成绩:FLOADT(4,1)  取值有规则

电话、手机号码:有格式要求

用户名:必须唯一

登录密码:密码不能为空字符串且长度不能少于N

员工所在部门:可取值必须在部门表中存在过

 

主键约束:

列名 类型 PRIMARY KEY

声明为主键的列上不能出现NULL值,且不能重复,如学生编号、商品编号。

表中所有的记录行会自动按照主键列上的值进行排序。

一个表至多只能有一个主键列。

 

唯一约束:

列名 类型 UNIQUE

声明为唯一的列上不能出现重复值,但可以出现多个NULL值。

 

非空约束:

列名 类型 NOT NULL

声明为非空约束的列上不能出现NULL,但可以重复

检查约束对于Mysql不支持

 

默认值约束

列名 类型 Default

声明为默认值约束的列上没有值的将会默认采用默认设置的值

Comments

Leave a comment to join the discussion