当前位置:   article > 正文

mysql 空位补0_MySQL-13(表的创建、数值类型整型、float/decimal、ZEROFILL、BIT(M))

mysql补空

#    1. 表的创建

基本语法:

CREATE TABLE table_name(

column1 datatype,

column2 datatype,

column3 datatype

)character set字符集  collate 校对规则  engine存储引擎方式

注:character set 、collate、engine 如果没有指定,则该表的字符集、字符集校验规则和表的存储引擎与该表对应的数据库保持一致

例:

CREATE TABLE user(

id  intcommet'id 号',

name  varchar (60)   comment' 用户名 ',

password  char (32)  commet'密码是32位的md5的值',

birthday  date comment'生日'

)character set utf8 collate utf8_general_ci  engine myisam;

说明:

1> 在 my.ini 中可以找到data的路径,然后在对应数据库DB下可以看到建表语句成功执行后所对应的文件;

2> 在表的存储引擎不同时,所产生的文件不同;如 当指定存储引擎为 MyISAM时,在data 下产生3个对应的文件'user.frm'、'user.MYD'、'user.MYI';而Innodb则只有一个单独的文件table_name.frm 文件;my.ini中datadir

engine指定为MyISAM时,每个table有以下三个对应的文件engine 为 MyISAM时产生对应三个文件

#    2. MySql的数值类型-整型整型数值

1> TINYINT 的范围说明,其他整型类型以此类推TINYINT 的范围说明

2> 说明:

a. 在mysql中整型默认为有符号的

b. 在建表时可以指定整型为无符号的: CREATE TABLE Tiny_table(age tinyint unsigned),其数值范围即指定为 0~ 255

c. CREATE TABLE table_name (

id  int unsigned  not  null   default 0  comment' 这里 not null 是不为空,空值无法写进table中,默认为 0 值填充'

)character set utf8 engine myisam;

3> 关于zerofill的说明

例如 int(6)  unsigned  zerofill 中 int(6)的含义说明

a. zerofill 只能和unsigned 配合使用;

b. int(6)中的6表示在使用zerofill时,数据的填充宽度,即数据不足6位,前面由0补齐各位,如果不设置zerofill,6 没有什么含义;

c. int(6)  zerofill 只要指定zerofill,默认为unsigned;

d. int(6) 并不是表示存放的数据不能超过6位;

举例说明:

CREATE TABLE zero_f(

num1 int,

num2 int(4)zerofill,

num3  int(6)  unsigned  zerofill

);zerofill 的空位0填充

#    3. MySql的数值类型-数值型(bit)

基本使用:

BIT(M)

位字段类型,M表示每个值的位数,范围从1-64,如果M被省略,默认为1;

CREATE TABEL tab_bi(  num bit(2)  );

1> bit 在使用时,显示的是该数值的ASCII码

2> 如果一个值只有 0和 1 时,可以考虑使用bit(1)来节省空间;

3> M为位字段类型

#    4. 数值类型小数

1> FLOAT的基本用法

FLOAT[(M,D)][UNSIGNED]

M指定显示长度,D 指定小数位数,占用空间4个字节

float(4,2) 表示的范围是-99.99~99.99

float(4,2) unsigned 表示范围为 0-99.99

2> DECIMAL的基本用法

DECIMAL(M,D)[UNSIGNED]

定点数M指定长度,D表示小数点位数

decimal(5,2) 表示范围:-999.99 ~ 999.99

decimal(5,2) 表示范围:0~999.99

3> 关于float和decimal的区别

float 单精度在小数位7位

decimal 的整数部分M 最大值为65,支持十进制的最大位数D为30.如果M省略,默认为10,如果D省略默认为0, decimal() = decimal(10,0)float和decimal的精度差别

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/322360
推荐阅读
相关标签
  

闽ICP备14008679号