MySQL建表枚举分区SQL_mysql建表以及列属性

本文详细介绍了MySQL中常见的数据类型,包括整型(如int, tinyint, smallint)的使用,浮点型(float, double, decimal)的精度问题,字符型(char, varchar, text, enum)的特点,以及时间类型(year, time, date, datetime, timestamp)的测试案例。示例中展示了如何创建表、修改表结构以及各种数据类型的插入与查询操作。" 134307218,19874767,微信小程序计算器开发实战,"['微信小程序', '前端开发', 'CSS', 'JavaScript', '模块化']
摘要由CSDN通过智能技术生成

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

------------------------------------------------------------------------------------------------------------------------------------------------------

#创建表

CREATE TABLE t1 (

num TINYINT

)CHARSET utf8 ENGINE MYISAM;

#添加一列num2,类型为tinyint, 属性为unsigned

ALTER TABLE t1 ADD num2 TINYINT UNSIGNED;

#添加一列num3,类型为tinyint, 属性为zerofill填充, 宽度为4,这个4,并不是限制范围的

ALTER TABLE t1 ADD num3 TINYINT( 4 ) ZEROFILL;

#增加一列num4,类型为int,宽度为4

ALTER TABLE t1 ADD num4 TINYINT( 4 );

#把num4的列类型,改成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( 6, 2 ), 6表示最大的位数,2表示小数点位数,所以他能表示的最大值为9999.99

INSERT INTO t2 VALUES( 1234.56 );

#下面12340溢出,这个位置最大只能存9999

INSERT INTO t2 VALUES( 12340 );

0b8cf753f6a0af5952fece2a91cd1590.png

注意: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列存储的值,由于是定长,取出来的时候,右边的空格丢失了

1893a7e12e11c1deb432dbc54c183454.png

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类型会自动插入当前的时间

d5feeef56397dca7d893b8744ad198b6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值