一、定点数与浮点数类型
无论是定点数还是浮点数 如果用户指定的类型精度超过指定精度范围吗,会四舍五入进行处理
//创建表并想表中插入数据
mysql> create table tb_emp5 (x float(5,1), y double(5,1),z decimal(5,1));
Query OK, 0 rows affected
mysql> insert into tb_emp5 values(5.12,5.15,5.123);
Query OK, 1 row affected
mysql> desc tb_emp5;
+——-+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————–+——+—–+———+——-+
| x | float(5,1) | YES | | NULL | |
| y | double(5,1) | YES | | NULL | |
| z | decimal(5,1) | YES | | NULL | |
+——-+————–+——+—–+———+——-+
3 rows in set
mysql> select *from tb_emp5;
+—–+—–+—–+
| x | y | z |
+—–+—–+—–+
| 5.1 | 5.2 | 5.1 |
+—–+—–+—–+
1 row in set
二、日期与时间类型
Mysql中日期的数据类型:datetime date timestamp time year
1、yea类型r
//删除表中的数据,并重新添加
mysql> delete from tb_emp6;
Query OK, 3 rows affected
mysql> select *from tb_emp6;
Empty set
mysql> insert into tb_emp6 values(‘0’),(‘99’),(‘12’),(‘34’),(‘00’),(‘11’),(08);
Query OK, 7 rows affected
Records: 7 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp6;
+——+
| y |
+——+
| 2000 |
| 1999 |
| 2012 |
| 2034 |
| 2000 |
| 2011 |
| 2008 |
+——+
7 rows in set
2、time类型
time类型用于只需要时间的值 格式‘HH:MM:SS’
指定格式 D HH:MM:SS HH:MM D HH:MM D HH或SS
Mysql中‘1122’和1122表示00:11:22,Time中‘11:22’ 表示11:22:00
//创建time表并插入数据
mysql> create table tb_emp7 (t time);
Query OK, 0 rows affected
mysql> insert into tb_emp7 values (‘11:05:05’),(‘23:23’),(‘2 10:10’),(‘302’),(‘10’);
Query OK, 5 rows affected
Records: 5 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp7;
+———-+
| t |
+———-+
| 11:05:05 |
| 23:23:00 |
| 58:10:00 |
| 00:03:02 |
| 00:00:10 |
+———-+
5 rows in set
//插入当前时间
mysql> insert into tb_emp7 values (current_time),(now());
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp7;
+———-+
| t |
+———-+
| 22:51:17 |
| 22:51:17 |
| 22:51:43 |
| 22:51:43 |
+———-+
4 rows in set
3、data类型
//插入date类型数据
mysql> insert into tb_emp8 values (‘1996-07-28’),(‘2010-10-10’);
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp8;
+————+
| d |
+————+
| 1996-07-28 |
| 2010-10-10 |
+————+
2 rows in set
mysql> insert into tb_emp8 values (‘000101’),(‘991010’);
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp8;
+————+
| d |
+————+
| 1996-07-28 |
| 2010-10-10 |
| 2000-01-01 |
| 1999-10-10 |
+————+
4 rows in set
//获取当前日期
mysql> insert into tb_emp8 values (current_date()),(now());
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 1
mysql> select *from tb_emp8;
+————+
| d |
+————+
| 1996-07-28 |
| 2010-10-10 |
| 2000-01-01 |
| 1999-10-10 |
| 2017-08-06 |
| 2017-08-06 |
+————+
6 rows in set
4.datetime类型
同时包含日期和时间 8字节 格式‘YY-MM-Dd HH-MM-SS’
//创建datatime并插入数据
mysql> create table tb_emp9 (dt datetime);
Query OK, 0 rows affected
mysql> insert into tb_emp9 values (‘1995-10-10 08-08-08’),(‘19920303121212’);
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp9;
+———————+
| dt |
+———————+
| 1995-10-10 08:08:08 |
| 1992-03-03 12:12:12 |
+———————+
//获取当前时间值
mysql> insert into tb_emp9 values (now());
Query OK, 1 row affected
mysql> select *from tb_emp9;
+———————+
| dt |
+———————+
| 1995-10-10 08:08:08 |
| 1992-03-03 12:12:12 |
| 2017-08-06 23:07:34 |
+———————+
3 rows in set
5.timestamp类型
与datetime的显示格式相同 存储占4字节
区别:范围小、存储以UTC(世界标准格式)保存 存储时对当前时区进行转换,检索时再转换回当前时区 即根据当前时区的不同,显示的时间不一样的
//timestamp创建与添加
mysql> create table tb_emp10 (ts timestamp);
Query OK, 0 rows affected
mysql> insert into tb_emp10 values(‘98
03
03 03$03#03’);
Query OK, 1 row affected
//获取当前时间
mysql> insert into tb_emp10 values(now());
Query OK, 1 row affected
mysql> select tb_emp10;
1054 - Unknown column ‘tb_emp10’ in ‘field list’
mysql> select *from tb_emp10;
+———————+
| ts |
+———————+
| 1998-03-03 03:03:03 |
| 2017-08-06 23:17:15 |
+———————+
2 rows in set
//修改当前时区为东十区
mysql> set time_zone=’+10:00’;
Query OK, 0 rows affected
mysql> select *from tb_emp10;
+———————+
| ts |
+———————+
| 1998-03-03 05:03:03 |
| 2017-08-07 01:17:15 |
+———————+
2 rows in set
三、文本字符串类型
char和varchar text类型 enum类型
1.text类型
//创建并输入enm类型
mysql> insert into tb_emp3 values (‘first’),(‘second’),(‘third’),(null);
Query OK, 4 rows affected
Records: 4 Duplicates: 0 Warnings: 0
mysql> select *from tb_emp3;
+——–+
| enm |
+——–+
| first |
| second |
| third |
| NULL |
+——–+
4 rows in set
//查看列表的索引
mysql> select enm,enm+0 from tb_emp3;
+——–+——-+
| enm | enm+0 |
+——–+——-+
| first | 1 |
| second | 2 |
| third | 3 |
| NULL | NULL |
+——–+——-+
4 rows in set
2.ENU类型
//定义int型的soc ENUM类型的字段为level
ENUM列表在Mysql中以编号排列的,因此插入列表中的值与编号对应
mysql> create table tb_emp4 (soc int,level enum(‘excellent’,’good’,’bad’));
Query OK, 0 rows affected
mysql> insert into tb_emp4 values(70,’good’),(90,1),(75,2),(50,3);
Query OK, 4 rows affected
Records: 4 Duplicates: 0 Warnings: 0
//best不在ENUM列表中
mysql> insert into tb_emp4 values(100,’best’);
1265 - Data truncated for column ‘level’ at row 1
select *from tb_emp4’ at line 1
mysql> select *from tb_emp4;
+—–+———–+
| soc | level |
+—–+———–+
| 70 | good |
| 90 | excellent |
| 75 | good |
| 50 | bad |
+—–+———–+
4 rows in set
3.set类型
字符串对象 其值为创建时规定的值 包含多个值set(‘值1’,’值2’,’值3’)
插入
set字段Mysql会自动删除重复的值
4.二进制字符串类型
BIN类型把数字转化为二进制
BINARY类型长度固定 VARBINARY类型长度可变
BLOB类型存储二进制大数据
四、运算符类型
算数运算符
BETWEEN ADD运算符expr BETWEEN min AND max 假如expr大于或等于min且小于等于max 返回1 否则0
位运算符。。。。太多了 省略一百行