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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值