数据分析表是数据库查询中的基础目标原素,以纪录(行)和字段名(列)构成的二维构造用以储存数据信息。数据分析表由表结构和表內容两一部分构成,先创建表结构,随后才可以键入数据信息。
数据分析表总体设计关键包含字段称、字段名种类和字段名特性的设定。 一般 状况下,同一个数据库查询中能够有好几个数据分析表,但表名务必是唯一的,表格中每一条纪录叙述了一个基本信息的结合,每一个字段名务必为唯一的,每一个字段名都必须特定基本数据类型。
字段名种类:
1.数据种类
数据信息列种类 |
储存空间 |
表明 |
取值范围 |
TINYINT |
1字节 |
十分小的整数金额 |
带符号值:-128~127 无标记值:0~255 |
SMALLINT |
2字节 |
较小的整数金额 |
带符号值:-32768~32767 无标记值:0~65535 |
MEDIUMINT |
3字节数 |
中等水平尺寸的整数金额 |
带符号值:-8388608~8388607 无标记值:0~16777215 |
INT |
4字节 |
规范整数金额 |
带符号值:-2147483648~2147483647 无标记值:0~4294967295 |
BIGINT |
8字节 |
大整数金额 |
带符号值:-263~263-1 无标记值:0~264-1 |
FLOAT |
4或8字节 |
单精度浮点数 |
最少非零值: – 1.175494351E-38 较大 非零值: – 3.402823466E 38 |
DOUBLE |
8字节 |
双精度浮点数 |
最少非零值: – 2.225073E-308 较大 非零值: – 1.797693E 308 |
DECIMAL |
自定 |
以字符串数组方式表明的浮点数 |
在于数据存储器字节 |
整形常见问题: INT(3)、SMALLINT(3)等整形后边的数据不容易危害标值的储存范畴,总是危害表明 整形后边的数据仅有相互配合零添充的情况下才有现实意义。 整形后边的数据能够省去
浮点型常见问题: 浮点型后边的数据会将存进的数据四舍五入,比如:把一个1.234存进FLOAT(6,1)数据信息列中,結果是1.2,6意味着表明长短,1意味着小数位长短,会四舍五入。
2.字符串类型
数据信息列种类 |
储存空间 |
表明 |
取值范围 |
CHAR[(M)] |
M字节数 |
定长字符串数组 |
M字节数 |
VARCHAR[(M)] |
L 1字节 |
可变性字符串数组 |
M字节数 |
TINYBLOB,TINYTEXT |
L 1字节 |
十分小的BLOB(二进制大目标)和文字串 |
28-1字节 |
BLOB,TEXT |
L 2字节 |
小BLOB和文字串 |
216-1字节 |
MEDIUMBLOB, MEDIUMTEXT |
L 3字节数 |
中等水平的BLOB和文字串 |
224-1字节 |
LONGBLOB, LONGTEXT |
L 4字节 |
大BLOB和文字串 |
232-1字节 |
ENUM(‘value1’,’value2’…) |
1或2字节 |
枚举类型:可授予某一枚举类型组员 |
65535个组员 |
SET(‘value1’,‘value2’…) |
1,2,3,4或8字节 |
结合:可授予好几个结合组员 |
64个组员 |
字符串类型常见问题:
CHAR和VARCHAR种类的长短范畴都是在0~255中间
在应用CHAR和VARCHAR种类时,在我们传到的具体的值的长短超过特定的长短,字符串数组会被提取至特定长短
在应用CHAR种类时,如果我们传到的值的长短低于特定长短,具体长短会应用空格符补至特定长短
在应用VARCHAR种类时,如果我们传到的值的长短低于特定长短,具体长短即是传到字符串数组的长短,不容易应用空格符弥补
CHAR要比VARCHAR高效率高些,当占有室内空间很大
BLOB和TEXT种类是能够储放随意互联网大数据的基本数据类型
BLOB区别英文大小写,TEXT不区别英文大小写
ENUM和SET种类是独特的的串种类,其列值务必从固定不动的串集中化挑选
ENUM只有挑选在其中一个值,SET能够挑选好几个值
3.日期和時间种类
数据信息列种类 |
储存空间 |
表明 |
取值范围 |
DATE |
3 字节数 |
“YYYY-MM-DD”文件格式表明的日期值 |
1000-01-01~9999-12-31 |
TIME |
3 字节数 |
“hh:mm:ss”文件格式表明的時间值 |
-838:59:59-838:59:59 |
DATETIME |
8 字节数 |
“YYYY-MM-DD hh:mm:ss”文件格式 |
1000-01-01 00:00:00~9999-12-31 |
TIMESTAMP |
4 字节数 |
“YYYYMMDDhhmmss”文件格式表明的时间格式 |
19700101000000-2037年的某一時刻 |
YEAR |
1 字节数 |
“YYYY”文件格式的年代值 |
1901~2155 |
日期种类常见问题:
储存日期时,我们可以应用整形 int 来开展储存时间格式,那样做便于大家开展日期的测算
NULL值常见问题:
NULL代表着“沒有值”或“不明值”
能够检测某一值是不是为NULL
不可以对NULL值开展算数测算
对NULL值开展算术运算,其結果還是NULL
0或NULL都代表着假,其他值都代表着真
和PHP相近,在MySQL的关系式中,假如某一数据信息值的种类与前后文所规定的种类不相符合,MySQL则会依据即将开展的实际操作全自动地对数据信息值开展类型转换。
字段名特性
UNSIGNED
只有用以设定标值种类,不允许出現负值
较大 储存长短会增加一倍
ZEROFILL
只有用以设定标值种类,在标值以前会全自动用0补足不够的十位数
AUTO_INCREMENT
用以设定字段名的全自动提高特性,每提升一条纪录,该字段名的值会全自动加1
NULL和NOT NULL
默认设置为NULL,即插进值时沒有在这里字段名插进值,默认设置为NULL值,假如特定了NOT NULL,则务必在插进值时在这里字段名填写值
DEFAULT
能够根据此特性来特定一个初始值,要是没有在这里列加上值,那麼默认设置加上此值