复习MySQL②数据类型及约束条件

时间:2022-09-21 11:32:27

 

数据类型分为数值类型、日期和时间类型、字符串类型

数值类型:

– INT:有符号的和无符号的。有符号大小-2147483648~2147483647,无符号大0~4294967295。 宽度最多为11个数字- int(11)
– TINYINT:有符号的和无符号的。有符号大小-128~127,无符号大小为0~255。宽度最多为4个数 字- tinyint(4)
– SMALLINT:有符号的和无符号的。有符号大小-32768~32767,无符号大小为0~65535。宽度最 多为6个数字- smallint(6)
– MEDIUMINT:有符号的和无符号的。有符号大小-8388608~8388607,无符号大小为0~16777215。 宽度最多为9个数字- mediumint(9)
– BIGINT:有符号的和无符号的。宽度最多为20个数字- bigint(20)
– FLOAT(M,D):只能为有符号的。默认为(10,2)
– DOUBLE(M,D):只能为有符号的。默认为(16,4)
– DECIMAL(M,D):只能为有符号的。

 

日期和时间类型

– DATE:YYYY-MM-DD格式,在1000-01-01和9999-12-31之间。例如:1973-12-30
– DATETIME:YYYY-MM-DD HH:MM:SS格式,位于1000-01-01 00:00:00和9999-12-31 23:59:59 之间。例如:1973-12-30 15:30:00
– TIMESTAMP:称为时间戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之间。例如,1973年 12月30日下午15:30,则在数据库中存储为:19731230153000
– TIME: 以HH:MM:SS格式, -838:59:59~838:59:59
– YEAR(2|4): 以2位或4位格式存储年份值。如果是2位,1970~2069;如果是4位,1901~2155。 默认长度为4

 

字符串类型

– CHAR(M):固定长度字符串,长度为1-255。如果内容小于指定长度,右边填充空格。如果不指 定长度,默认为1
– VARCHAR(M): 可变长度字符串,长度为1-255。定义该类型时必须指定长度
– BLOB 或TEXT:最大长度65535。存储二进制大数据,如图片。不能指定长度。两者区别: BLOB 大小写敏感
– TINYBLOB 和TINYTEXT:最大长度255。不能指定长度。
– MEDIUMBLOB 或MEDIUMTEXT:最大长度16777215 字符
– LONGBLOB 或LONGTEXT:最大长度4294967295 字符
– ENUM:枚举。例如:ENUM(‘A’,’B’,’C’)。NULL 值也可

 

约束条件

PRIMARY KEY   主键约束   字段名  数据类型  PRIMARY KEY

NOT NULL          非空约束   字段名  数据类型  NOT NULL

UNIQUE         唯一约束   字段名  数据类型  UNIQUE

AUTO_INCREMENT 自增字段     字段名 数据类型 AUTO_INCREMENT

DEFAULT       默认值       字段名  数据类型  DEFAULT 默认值 

 

主键约束:保证表中每行记录都不重复
主键,又称为”主码”,是数据表中一列或多列的组合。 主键约束要求主键列的数据必须是唯一的,并且 不允许为空。 使用主键,能够惟一地标识表中的一条记录,并且可以结合外键来 定义不同数据表之间的关 系,还可以加快数据库查询的速度

非空约束,指的是字段的值不能为空

唯一性约束,要求该列的值必须是唯一的:
允许为空,但只能出现一个空值;  一个表中可以有多个字段声明为唯一的;  唯一约束确保数据表的一列或几列不出现重复值

默认约束,指定某个字段的默认值:
如果新插入一条记录时没有为默认约束字段赋值,那么系统就会自动为这个字段赋值为默认约束设定的值

自增字段:一个表只能有一个自增字段,自增字段必须为主键的一部分。默认情况下从1开始自增