您的位置:首页 > 数据库 > MySQL

MySql数据库数据类型及约束介绍

2016-09-14 14:34 531 查看
1,MySql中数据类型介绍

整型及浮点型
数据类型
存储范围
字节
TINYINT
有符号值:-2^到2^7-1  
无符号值:0到2^8-1 
2
SMALLINT
有符号值:-2^15到2^15-1  
无符号值:0到2^16-1 
2
MEDIUMINT
有符号值:-2^23到2^23-1  
无符号值:0到2^24-1 
3
INT
有符号值:-2^31到2^31-1  
无符号值:0到2^32-1 
4
BIGINT
有符号值:-2^63到2^63-1  
无符号值:0到2^64-1 
8
浮点型
数据类型
存储范围
字节
FLOAT(M,D)
有符号值:-3.402823466E+38~-1.175494351E-38和0
无符号值:0和(1.175494351E-38,3.402823466E+38) 
M是数字总位数,D是小数点后面的倍数。如果M和D被省略,根据硬件条件的限制进行对应保存,最在精确到小数点后7位小数。
4
DOUBLE(M,D)
有符号值:-1.7976931348623157 E+308~-2.2250738585072014E-308和0
无符号值:0和2.2250738585072014E-308~1.7976931348623157E+308
M是数字总位数,D是小数点后面的倍数。如果M和D被省略,根据硬件条件的限制进行对应保存,最在精确到小数点后7位小数。
8
日期和时间类型
数据类型
存储范围
字节
TIME
HH:MM:SS
 -838:59:59 ~ 838:59:59
3
DATE
YYYY-MM-DD
 1000-01-01          ~ 9999-12-31
3
DATETIME
YYYY-MM-DD HH:MM:SS 
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
8
TIMESTAMP
YYYY-MM-DD HH:MM:SS
 1970-01-01 00:00:01 ~ 2038
4
YEAR
YYYY                
 1901   ~ 2155
1
字符类型
数据类型
存储范围
字节
CHAR(M)
0<=M<=255
M个字节
VARCHAR(M)
可变长度L,最多65535
L+1
TINYTEXT
可变长度L,最多2^8-1个字符
L+1
TEXT
可变长度L,最多2^16-1个字符
L+2
MEDIUMTEXT
可变长度L,最多2^24-1个字符
L+3
LONGTEXT
可变长度L,最多2^32-1个字符
L+4
ENUM(‘value1’,’value2’.)
最多65535
1或2
SET(‘value1’,’value2’,...)
最多64个成员
1或2或3或4或8
2,MySql数据库中约束介绍:

约束类型

约束说明

NOT NULL

非空约束

PRIMARY KEY

主键约束

UNIQUE KEY

唯一约束

DEFAULT

默认约束

FOREIGN KEY

外键约束

约束介绍:约束作用是保证数据的完整性和一致性,分为表级约束和列级约束。

3,外键约束(FOREIGN KEY)介绍:
目的和作用:保持数据一致性,完整性,可以实现表与表之间一对一或一对多关系。

外键约束要求:

A:父表和子表必须有相同的存储引擎,且存储引擎必须是InnoDB。这个可以在数据MySql的配置文件中查看及修改,如下图:



B:不能使用临时表进行操作,且外键列和参照列必须具有相似的数据类型,如果是以数字类型作为外键,则数据符号及长度要相同 。

C:外键列和参照列必须创建索引,如果外键列不存在索引的话,MySql将自动创建索引。

4,外键约束的参照操作:

参照操作类型

说明

CASCADE

父表进行删除或更新操作,将自动删除或更新子表中匹配的数据。

SET NULL

父表进行删除或更新操作,将子表中对应数据外键设备为NULL。如果使用此参照类型,子表对应字段没有指定NOT NULL。

RESTRICT

拒绝对父表进行删除或更新操作。

NO ACTION

MySql中的关键字,与RESTRICT的作用相同 。

6,MySql中外键约束语句操作:
1,创建一个老师对应的表,就一个id和name字段:

CREATE TABLE teacher(id INT PRIMARY KEY,name VARCHAR(10));

2,创建一个学生表,一个学生指定有一个老师,通过teacher表的id字段进行外建约束。

CREATE TABLE student(id INT PRIMARY KEY,name VARCHAR(10),teacher_id INT,FOREIGN
KEY(teacher_id) REFENERCES teacher(id));

这样就把两张表teacher与student进行了外键关联。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: