安装环境: 操作系统版本:RHEL 6.5 版本:MYSQL 5.5 常见的信息种类: 数值型:一般用于体重、身高、成绩、工资 字符型:一般用于姓名、工作单位、通信地址 枚举型:一般用于兴趣爱好、性别 日期时间型:出生日期、注册日期
一、数值类型 1.1整数型 PS:工作中一般使用INT类型就够了 关于整数型字段 -使用UNSIGNED修饰时,对应的字段只保存正数 -数值不够指定宽度时,在左边填空格补位 -宽度仅仅是显示宽度,存数值的大小由类型决定 -使用关键字ZEROFILL时,填0代替空格补位 -当字段值与类型不匹配时,字段值作为0处理 -数值超出范围时,仅保存最大/最小值
表字段的设置
从左至右依次为: 字段名 | 字段类型 | 是否为空 | 是否为主键 | 默认值 | 描述信息
1.2 浮点类型 关于浮点型字段 -定义格式:float(总宽度,小数位数) -当字段值与类型不匹配时,字段值作为0处理 -数值超出范围时,仅保存最大/最小值
mysql> create table t2(
-> name varchar(20),
-> pay float(7,2)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| pay | float(7,2) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
二、、字符类型 1、定长:char(字符数) -最大长度255字符 -不够指定字符数时在右边用空格补齐 -自动截断超出指定字符数的数据
2、变长:varchar(字符数) -按数据实际大小分配存储空间 -自动截断超出指定字符数的数据
3、大文本类型:text/blob -字符数大于65535存储时使用
mysql> create table t3(
-> name char(10),
-> addr varchar(50),
-> content text
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> desc t3;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | char(10) | YES | | NULL | |
| addr | varchar(50) | YES | | NULL | |
| content | text | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
三、日期时间类型 1、 DATATIME -占用8个字节 -范围:1000-01-01 00:00:00.000000~9999-12-31 23:59:59.999999
2、 TIMESTAMP -占用4个字节 -范围:1970-01-01 00:00:00.000000~2038-01-19 03:14:07.999999
3、 DATE -占用4个字节 -范围:0001-01-01~9999-12-31
4、YEAR -占用1个字节 -范围:1901-2155
5、TIME -占用3个字节 -格式:HH:MM:SS
例子:
mysql> create table shijian(
-> datetime DATETIME,
-> timestamp TIMESTAMP,
-> date DATE,
-> year YEAR,
-> time TIME
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> insert into shijian values("2016-07-31 10:24:00.000000","2035-1-19 03:14:17.999999","2036-1-1","2037","03:59:00");
Query OK, 1 row affected (0.00 sec)
mysql> select * from shijian;
+---------------------+---------------------+------------+------+----------+
| datetime | timestamp | date | year | time |
+---------------------+---------------------+------------+------+----------+
| 2016-07-31 10:24:00 | 2035-01-19 03:14:17 | 2036-01-01 | 2037 | 03:59:00 |
+---------------------+---------------------+------------+------+----------+
1 row in set (0.00 sec)
6、 关于日期时间字段 当未给TIMESTAMP字段赋值时,自动以当前时间赋值,而DATETIME字段默认赋值为0 4.7 YEAR年份的处理 -默认用4位数字表示 -当只用2位数字赋值时,00-69视为2000~2069年,而70-99视为1970~1999年。
7、 时间函数
-使用select指定输出函数结果
mysql> select now(),sysdate(),curdate();
+---------------------+---------------------+------------+
| now() | sysdate() | curdate() |
+---------------------+---------------------+------------+
| 2016-07-31 10:37:25 | 2016-07-31 10:37:25 | 2016-07-31 |
+---------------------+---------------------+------------+
1 row in set (0.00 sec)
四、枚举类型
1、从给定值集中选择单个值
-ENUM
-定义格式:
enum(值1,值2,值N)
2、 从给定值集合中选择一个或者多个值-SET -定义格式:
set(值1,值2,值N)
例子:
mysql> create table meiju(
-> name varchar(20),
-> gender enum("boy","girl"),
-> interest set("book","film","music","football")
-> );
Query OK, 0 rows affected (0.01 sec)