MySQL学习笔记之二
2016-05-18 08:30
543 查看
2 MySQL中的数据类型
2.1数值类型:int tinyint mediumint bigint float double dec (在这简单的列举集中,选取其中几个常用的For example )
2.1.1 int:占4个字节;建立字段时,如果字段类型是int,且没给其值,默认值:int(11);
2.1.2 bigint:占8个字节;
2.1.3 int和bigint的区别:从范围的角度讲,int的取值小于bigint,一般在一张表中,主键id的类型一般bigint防止不必要的溢出。
2.1.4 小数形式:浮点数和定点数
2.1.4.1 浮点数:float和double,前者占4个字节,后者占8个字节。/double/float(M,N):其中M表示整数+小数部分的总个数,N表示小数部分的个数,注意:M>N
2.1.4.2 定点数:dec;精度比浮点数高;dec(M,N):和上述浮点数一样的意思。但需要注意:默认情况:dec(10,0);
2.1.4.3 浮点数和定点数的总结:
double/folat:不给于限制条件即float(M,N)时,正常插入;反之,进行必要的四舍五入;
dec:不给于限制条件(同上);按照dec(10,0)进行四舍五入;
2.1.5 bit(二级制)
如果一字段的数据类型是bit,数据不为空时,使用select查看,不能显示,此时需要借助bin() 和hex(),查看;
2.2 日期类型:time date datetime timestamp year (在这选择常用的几个日期类型)
2.2.1 time:显示时分秒
2.2.2 date:显示年月日
2.2.3 datetime :显示年月日时分秒
2.2.4 timestamp:显示年月日时分秒
2.2.5 year :显示年份
2.2.6
year和date的注意事项:一般情况下,保存年份选择year数据类型,它比date占用的空间小;
2.2.7 timestamp的注意事项:
a:创建数据类型为timestamp时,默认是current_timestamp;
b:如果再在此表中创建一个字段也为timestamp的时候,系统默认是0;
c:一个表中不允许存在两个默认的current_timestamp;
2.2.8
datetime和timestamp的区别:
timestamp与地域的地区有关系;For example:
create table T(t1 datetime,t2 timestamp); //建立两个字段分别是datetime和timestamp
show variables like 'time_zone'; //查看数据库使用的地域时区,一般情况下:回显示“SYSTEM”,,表示;中国东八区
insert into T values(now(),now()); //插入当前的系统时间;now():表示获取当前的系统时间
select * from T; //查看时间的变化,两个时间一样,为发生变化
set variables time_zone='+9:00'; // 设置时区为东九区
select * from T; // 此时再查看时间的变化,会发现t2比t1多一个小时
2.3 字符串类型 : char varchar enum(选取几个使用频率较高的)
2.3.1 char与varchar的区别:
a:char是固定长度的字符串类型,而varchar是非固定的字符串类型;char存储数据的速度比varchar快,varchar比char更加灵活;
b:数据类型是char,插入的数据的后面存在很多空格,在插入到数据库前会把数据后面的空格过滤,可通过length()函数,查看长度;而varchar却不会。
2.3.2 enum(枚举类型)
For example说明:
create table Student (Ssex enum('M','F') ); //创建一张Student表,其中Ssex字段是enum;
insert into Student values(‘m’),('M'),('1'),(NULL); //插入4行
select * from Student; //查看结果
结论:枚举数据类型不区分大小写;如果插入的值不是enum中定义的,则选取enum中定义的第一个;当插入的值为NULL时,显示NULL;
2.1数值类型:int tinyint mediumint bigint float double dec (在这简单的列举集中,选取其中几个常用的For example )
2.1.1 int:占4个字节;建立字段时,如果字段类型是int,且没给其值,默认值:int(11);
2.1.2 bigint:占8个字节;
2.1.3 int和bigint的区别:从范围的角度讲,int的取值小于bigint,一般在一张表中,主键id的类型一般bigint防止不必要的溢出。
2.1.4 小数形式:浮点数和定点数
2.1.4.1 浮点数:float和double,前者占4个字节,后者占8个字节。/double/float(M,N):其中M表示整数+小数部分的总个数,N表示小数部分的个数,注意:M>N
2.1.4.2 定点数:dec;精度比浮点数高;dec(M,N):和上述浮点数一样的意思。但需要注意:默认情况:dec(10,0);
2.1.4.3 浮点数和定点数的总结:
double/folat:不给于限制条件即float(M,N)时,正常插入;反之,进行必要的四舍五入;
dec:不给于限制条件(同上);按照dec(10,0)进行四舍五入;
2.1.5 bit(二级制)
如果一字段的数据类型是bit,数据不为空时,使用select查看,不能显示,此时需要借助bin() 和hex(),查看;
2.2 日期类型:time date datetime timestamp year (在这选择常用的几个日期类型)
2.2.1 time:显示时分秒
2.2.2 date:显示年月日
2.2.3 datetime :显示年月日时分秒
2.2.4 timestamp:显示年月日时分秒
2.2.5 year :显示年份
2.2.6
year和date的注意事项:一般情况下,保存年份选择year数据类型,它比date占用的空间小;
2.2.7 timestamp的注意事项:
a:创建数据类型为timestamp时,默认是current_timestamp;
b:如果再在此表中创建一个字段也为timestamp的时候,系统默认是0;
c:一个表中不允许存在两个默认的current_timestamp;
2.2.8
datetime和timestamp的区别:
timestamp与地域的地区有关系;For example:
create table T(t1 datetime,t2 timestamp); //建立两个字段分别是datetime和timestamp
show variables like 'time_zone'; //查看数据库使用的地域时区,一般情况下:回显示“SYSTEM”,,表示;中国东八区
insert into T values(now(),now()); //插入当前的系统时间;now():表示获取当前的系统时间
select * from T; //查看时间的变化,两个时间一样,为发生变化
set variables time_zone='+9:00'; // 设置时区为东九区
select * from T; // 此时再查看时间的变化,会发现t2比t1多一个小时
2.3 字符串类型 : char varchar enum(选取几个使用频率较高的)
2.3.1 char与varchar的区别:
a:char是固定长度的字符串类型,而varchar是非固定的字符串类型;char存储数据的速度比varchar快,varchar比char更加灵活;
b:数据类型是char,插入的数据的后面存在很多空格,在插入到数据库前会把数据后面的空格过滤,可通过length()函数,查看长度;而varchar却不会。
2.3.2 enum(枚举类型)
For example说明:
create table Student (Ssex enum('M','F') ); //创建一张Student表,其中Ssex字段是enum;
insert into Student values(‘m’),('M'),('1'),(NULL); //插入4行
select * from Student; //查看结果
结论:枚举数据类型不区分大小写;如果插入的值不是enum中定义的,则选取enum中定义的第一个;当插入的值为NULL时,显示NULL;
相关文章推荐
- Mysql命令大全
- is not allowed to connect to this MySQL server解决办法
- mysql防止重复插入记录方法总结
- Mysql命令alter add:增加表的字段
- 防止mysql重复插入记录的方法
- Mysql使用简单教程(三)
- MySQL binlog 远程备份方法详解
- MySQL修改root密码
- MySQL error 1042解决
- mysql 存储过程 函数 触发器
- MySQL 加锁处理分析(一)
- MySQL 加锁处理分析(二)
- MySQL 加锁处理分析(三)
- 实例解析MySQL性能瓶颈排查定位
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题
- mysql截取日期
- Mysql的内存优化
- MySQL 死锁问题分析
- mysql数据库管理工具navicat for mysql怎么用
- MySQL Command Line Client显示中文的部分为空