select concat( ‘(‘, n1, ‘)’ ), concat( ‘(‘, n2, ‘)’ ) from t3;

mysql建表以及列属性,mysql建属性

一、整型( int, tinyint, smallint 等 )


#创建表
CREATE TABLE t1 (
num TINYINT
)CHARSET utf8 ENGINE MYISAM;
#增多1列num2,类型为tinyint, 属性为unsigned
ALTER TABLE t1 ADD num2 TINYINT UNSIGNED;
#增多一列num三,类型为tinyint, 属性为zerofill填充,
宽度为肆,那么些4,并不是限制范围的
ALTER TABLE t1 ADD num3 TINYINT( 4 ) ZEROFILL;

#扩张壹列num四,类型为int,宽度为四

ALTER TABLE t1 ADD num4 TINYINT( 4 );

#把num四的列类型,改成int
ALTER TABLE t1 MODIFY num4 INT( 4 );

 

#字段最大值( 溢出 )测试
INSERT INTO t1 VALUES( 200 );
INSERT INTO t1 VALUES( -128 );
INSERT INTO t1 VALUES( -129 );
INSERT INTO t1 VALUES( -1, 200 );
INSERT INTO t1 VALUES( -1, 256 );
INSERT INTO t1 VALUES( -128, -1, 2 );

 

二、浮点型( float, double, decimal )


CREATE TABLE t2(

num FLOAT( 6, 2 )
)CHARSET utf8 ENGINE MYISAM;
#num FLOAT( 陆, 二 ),
陆表示最大的位数,2代表小数点位数,所以她能表示的最大值为999九.9玖
INSERT INTO t2 VALUES( 1234.56 );
#下边12340溢出,那么些地方最大不得不存999玖
INSERT INTO t2 VALUES( 12340 );

4503.com 1

 

留神:float与double有精度损失, decimal是确定地点型,不会损失精度

 

三、字符型( char, varchar, text, enum 等 )


char型假如不够M个字符,前边用空格补齐,抽出时,把右侧的空格去掉

小心:那注脚,假设数据本人左边有空格,将会丢掉

#char型与varchar型测试

CREATE TABLE t3 (
n1 CHAR( 10 ),
n2 VARCHAR( 10 )
)CHARSET utf8 ENGINE MYISAM;

INSERT INTO t3 VALUES( ‘ ghostwu ‘, ‘ ghostwu ‘ );

select concat( ‘(‘, n1, ‘)’ ), concat( ‘(‘, n2, ‘)’ ) from t3;

从下图可见:n1列存款和储蓄的值,由于是定长,抽取来的时候,右侧的空格丢失了 

4503.com 2

 

 

 CREATE TABLE t4(

gender ENUM( ‘男’, ‘女’ )
)CHARSET utf8 ENGINE MYISAM;

INSERT INTO t4 VALUES( ‘男’ );
INSERT INTO t4 VALUES( ‘女’ );
#man不在枚举范围内,插入不了
INSERT INTO t4 VALUES( ‘man’ );

 

 

肆、时间项目测试( year, time, date, datetime, timestamp, unsigned int )


CREATE TABLE t5(
t1 YEAR,
t2 TIME,
t3 DATE,
t4 DATETIME,
t5 TIMESTAMP
) CHARSET utf8 ENGINE MYISAM;

INSERT INTO t5( t1 ) VALUES( ’32’ );
INSERT INTO t5( t1 ) VALUES( ‘1932’ );
INSERT INTO t5( t1 ) VALUES( ‘2032’ );
INSERT INTO t5( t1, t2, t3, t4 ) VALUES( ‘2100’, ’20:02:34′,
‘2018-03-12’, ‘2018-03-12 20:02:34’ );

注:一般时间都用int型存款和储蓄,便于总结,timestamp类型会活动插入当前的光阴

 

4503.com 3

 

一、整型( int,
tinyint, smallint 等 )
———————————————————————————————…

 

 


INSERT INTO t3 VALUES( ‘ ghostwu ‘, ‘ ghostwu ‘ );

三、字符型( char, varchar, text, enum 等 )

#把num4的列类型,改成int
ALTER TABLE t1 MODIFY num4 INT( 4 );

 CREATE TABLE t4(

 

gender ENUM( ‘男’, ‘女’ )
)CHARSET utf8 ENGINE MYISAM;

从下图可见:n一列存储的值,由于是定长,抽取来的时候,左侧的空格丢失了 

4503.com 3

INSERT INTO t5( t1 ) VALUES( ’32’ );
INSERT INTO t5( t1 ) VALUES( ‘1932’ );
INSERT INTO t5( t1 ) VALUES( ‘2032’ );
INSERT INTO t5( t1, t2, t3, t4 ) VALUES( ‘2100’, ’20:02:34′,
‘2018-03-12’, ‘2018-03-12 20:02:34’ );

4503.com 1

 

 

CREATE TABLE t5(
t1 YEAR,
t2 TIME,
t3 DATE,
t4 DATETIME,
t5 TIMESTAMP
) CHARSET utf8 ENGINE MYISAM;

num FLOAT( 6, 2 )
)CHARSET utf8 ENGINE MYISAM;
#num FLOAT( 6, 贰 ),
陆代表最大的位数,二代表小数点位数,所以她能表示的最大值为999九.9玖
INSERT INTO t2 VALUES( 1234.56 );
#上边12340溢出,这一个地点最大不得不存999九
INSERT INTO t2 VALUES( 12340 );

4503.com 2

ALTER TABLE t1 ADD num4 TINYINT( 4 );

二、浮点型( float, double, decimal )