最近学习了一下数据库mysql和orcal, 遇到的一些问题,有的上网找到了答案,有的做了测试才弄明白。这里作为学习笔记,记录下来备忘。
1.mysql的表的字段类型和占用的长度。
数值类型
TINYINT 1 字节
SMALLINT 2 个字节
MEDIUMINT 3 个字节
INT 4 个字节
INTEGER 4 个字节
BIGINT 8 个字节
FLOAT(X) 4 (如果 X < = 24)
8 (如果 25 < = X < = 53)
FLOAT 4 个字节
DOUBLE 8 个字节
DOUBLE PRECISION 8 个字节
REAL 8 个字节
DECIMAL(M,D) M字节(D+2 , 如果M < D)
NUMERIC(M,D) M字节(D+2 , 如果M < D)
日期和时间类型
DATE 3 个字节
DATETIME 8 个字节
TIMESTAMP 4 个字节
TIME 3 个字节
YEAR 1 字节
串类型
CHAR(M) M字节,1 <= M <= 255
VARCHAR(M) L+1 字节, 在此L <= M和1 <= M <= 255
TINYBLOB L+1 字节, 在此L< 2 ^ 8
TINYTEXT L+1 字节, 在此L< 2 ^ 8
BLOB, TEXT L+2 字节, 在此L< 2 ^ 16
MEDIUMBLOB L+3 字节, 在此L< 2 ^ 24
MEDIUMTEXT L+3 字节, 在此L< 2 ^ 24
LONGBLOB L+4 字节, 在此L< 2 ^ 32
LONGTEXT L+4 字节, 在此L< 2 ^ 32
ENUM('value1','value2',...) 1 或 2 个字节, 取决于枚举值的数目(最大值65535)
SET('value1','value2',...) 1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员)
2. mysql 的describe命令
describe table_name; #查看表的字段名称,类型等
例如:
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| m_uitem | int(11) | YES | | NULL | |
+----------------------+--------------+------+-----+---------+-------+
注意 int(11) 中的11表示 显示的长度不超过11位,如果type是int(11) zerofill则,显示长度不足11位的需在前面补0
3. mysql