设为首页 加入收藏

TOP

MySQL创建用户与授权方法、MySQL查看版本号、MySQL执行SQL脚本的方法(二)
2017-11-24 10:48:56 】 浏览:516
Tags:MySQL 创建 用户 授权 方法 查看 版本 执行 SQL 脚本
+

| id1 | id2 |

+------------+-------+

| 0000000001 | 00001 |

+------------+-------+

1 row in set (0.00 sec)

--设置了宽度限制后,如果插入大于宽度限制的值,会不会截断或者插不进去报错?

答案:不会;

对插入的数据有任何影响,还是按照类型的实际精度进行保存。

这时,宽度格式实际已经没有意义,左边不会再填充任何的“0”字符。

--UNSIGNED:整型类型的可选属性之一

如果需要在字段里面保存非负数或者需要较大的上限值时,可以用此选项,

它的取值范围是正常值的下限取 0,上限取原值的 2 倍。

例如,tinyint 有符号范围是-128~+127,而无符号范围是 0~255。

如果一个列指定为 zerofill,则 MySQL 自动为该列添加 UNSIGNED 属性。

--AUTO_INCREMENT:整型类型的可选属性之一

在需要产生唯一标识符或顺序值时,可利用此属性,这个属性只用于整数类型。

--对于小数:浮点数和定点数

浮点数: float(单精度)和 double(双精度)

定点数:decimal不指定精度时,默认的整数位为 10,默认的小数位为 0。

MySQL 保存值时进行四舍五入

--浮点数如果不写精度和标度,则会按照实际精度值显示,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;

--定点数如果不写精度和标度,则按照默认值 decimal(10,0)来进行操作,并且如果数据超越了精度和标度值,系统则会报错。

--BIT(M)

对于 BIT(位)类型,用于存放位字段值,BIT(M)可以用来存放多位二进制数,M 范围从 1~

64,如果不写则默认为 1 位。对于位字段,直接使用 SELECT 命令将不会看到结果,可以用

bin()(显示为二进制格式)或者 hex()(显示为十六进制格式)函数进行读取。

example:

select bin(t_bit),hex(t_bit) from t_book;

--2.日期时间类型

这些数据类型的主要区别如下:

--1.如果要用来表示年月日,通常用 DATE 来表示。

--2.如果要用来表示年月日时分秒,通常用 DATETIME 表示。

--3.如果只用来表示时分秒,通常用 TIME 来表示。

--4.如果需要经常插入或者更新日期为当前系统时间,则通常使用 TIMESTAMP 来表示。

--5.TIMESTAMP 值返回后显示为“YYYY-MM-DD HH:MM:SS”格式的字符串,显示宽度固定为 19 个字符。如果想要获得数字值,应在 TIMESTAMP 列添加+0。

--6.如果只是表示年份,可以用 YEAR 来表示,它比 DATE 占用更少的空间。YEAR 有 2 位或4 位格式的年。

--默认是 4 位格式。在 4 位格式中,允许的值是 1901~2155 和 0000。在

--2 位格式中,允许的值是 70~69,表示从 1970~2069 年。

--MySQL 以 YYYY 格式显示 YEAR值。

--TIMESTAMP

MySQL规定TIMESTAMP类型字段只能有一列的默认值为current_timestmap,如果强制修改,系统会报错.

TIMESTAMP还有一个特性是与时区有关:当插入日期时,会先转换为本地时区后存放;

而从数据库里面取出时,也同样需要将日期转换为本地时区后显示。

这样,两个不同时区的用户看到的同一个日期可能是不一样的。

TIMESTAMP的取值范围为19700101080001到2038年的某一天,因此它不适合存放比较久远的日期;

可以往TIMESTAMP类型的字段插入一个很长的数字试试看

--查看当前时区

mysql> show variables like 'time_zone';

+---------------+--------+

| Variable_name | Value |

+---------------+--------+

| time_zone | SYSTEM |

+---------------+--------+

1 row in set, 1 warning (0.01 sec)

--修改时区为东九区

mysql> set time_zone='+9:00';

--采用不同的格式将日期“2007-9-3 12:10:10”插入到 DATETIME列中

mysql> create table t6(dt datetime);

mysql> insert into t6 values('2007-9-3 12:10:10');

mysql> insert into t6 values('2007/9/3 12+10+10');

mysql> insert into t6 values('20070903121010');

mysql> insert into t6 values(20070903121010);

mysql> select * from t6;

--3.字符串类型

--1.CHAR 和 VARCHAR 类型

CHAR 列的长度固定为创建表时声明的长度,长度可以为从 0~255 的任何值;

而 VARCHAR 列中的值为可变长字符串,长度可以指定为 0~255 (5.0.3以前)或者 65535 (5.0.3以后)之间的值。

在检索的时候,CHAR 列删除了尾部的空格,而 VARCHAR 则保留这些空格。

example:

mysql> create table vc(v varchar(4),c char(4));

mysql> insert into vc values('ab ','ab ');

mysql> select length(v),length(c) from vc;

+-----------+-----------+

| length(v) | length(c) |

+-----------+-----------+

| 3 | 2 |

+-----------+-----------+

1 row in set (0.03 sec)

--2.BINARY 和 VARBINARY 类型

它们包含二进制字符串而不包含非二进制字符串

BINARY和VARBINARY的长度是字节长度而不是字符长度。

mysql> create table t(c binary(3));

mysql> insert into t set c = 'a';

mysql> select * ,hex(c),c='a',c='a\0',c='a\0\0' from t;

+------+--------+-------+---------+-----------+

| c | hex(c) | c='a' | c='a\0' | c='a\0\0' |

+------+--------+-------+---------+-----------+

| a | 610000 | 0 | 0 | 1 |

+------+--------+-------+---------+-----------+

1 row in set (0.00 sec)

--3.ENUM (枚举)类型

ENUM 类型只允许从值集合中选取单个值,而不能一次取多个值

example:

mysql> create table t (gender enum('M','F'));

mysql> INSERT INTO t VALU

首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SQL之DECIMAL函数详解 下一篇MySQL的导入导出的操作步骤

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目