Mysql数据类型和运算符(二)

一、定点数与浮点数类型

无论是定点数还是浮点数 如果用户指定的类型精度超过指定精度范围吗,会四舍五入进行处理

//创建表并想表中插入数据
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

位运算符。。。。太多了 省略一百行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值