MySql数据库数据类型及约束介绍
2016-09-14 14:34
531 查看
1,MySql中数据类型介绍
2,MySql数据库中约束介绍:
3,外键约束(FOREIGN KEY)介绍:
目的和作用:保持数据一致性,完整性,可以实现表与表之间一对一或一对多关系。
外键约束要求:
A:父表和子表必须有相同的存储引擎,且存储引擎必须是InnoDB。这个可以在数据MySql的配置文件中查看及修改,如下图:
B:不能使用临时表进行操作,且外键列和参照列必须具有相似的数据类型,如果是以数字类型作为外键,则数据符号及长度要相同 。
C:外键列和参照列必须创建索引,如果外键列不存在索引的话,MySql将自动创建索引。
4,外键约束的参照操作:
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进行了外键关联。
整型及浮点型 | ||
数据类型 | 存储范围 | 字节 |
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 |
约束类型 | 约束说明 |
NOT NULL | 非空约束 |
PRIMARY KEY | 主键约束 |
UNIQUE KEY | 唯一约束 |
DEFAULT | 默认约束 |
FOREIGN KEY | 外键约束 |
约束介绍:约束作用是保证数据的完整性和一致性,分为表级约束和列级约束。 |
目的和作用:保持数据一致性,完整性,可以实现表与表之间一对一或一对多关系。
外键约束要求:
A:父表和子表必须有相同的存储引擎,且存储引擎必须是InnoDB。这个可以在数据MySql的配置文件中查看及修改,如下图:
B:不能使用临时表进行操作,且外键列和参照列必须具有相似的数据类型,如果是以数字类型作为外键,则数据符号及长度要相同 。
C:外键列和参照列必须创建索引,如果外键列不存在索引的话,MySql将自动创建索引。
4,外键约束的参照操作:
参照操作类型 | 说明 |
CASCADE | 父表进行删除或更新操作,将自动删除或更新子表中匹配的数据。 |
父表进行删除或更新操作,将子表中对应数据外键设备为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进行了外键关联。
相关文章推荐
- MySQL数据库(二)---数据类型、数据表、约束
- mysql数据库的数据类型及约束
- MySQL数据库的数据类型和索引介绍
- oracle与mysql数据库基本数据类型--介绍与区别
- ORACLE中的各种数据类型详细的介绍
- SQL Server数据类型介绍
- MySQL数据库基础:数据类型及列类型
- 实现MySQL数据库数据的同步方法介绍
- VARIANT 数据类型简单介绍
- SQL Server数据类型介绍
- ORACLE中的各种数据类型详细的介绍
- DECIMAL数据类型更改--MySql数据库
- ORACLE中的各种数据类型详细的介绍
- JVM中的数据类型、堆与栈介绍
- SQL Server数据类型介绍
- SQL常用数据类型介绍
- SQL Server数据类型介绍
- L Server数据类型介绍
- SQL Server数据类型介绍
- [转]ORACLE各种数据类型详细介绍