一、整型( 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 );

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

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

mysql建表以及列属性的更多相关文章

  1. 小贝_mysql建表以及列属性

    mysql建表以及列属性 简要: 一.建表原则 二.具体的列属性说明 一.建表原则 建表: 事实上就是声明列的过程,数据终于是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原 ...

  2. MySQL 建表语句 create table 中的列定义

    MySQL 建表语句 create table 中的列定义: column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value ...

  3. 【记录】Mysql 建表注意事项

    博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE ...

  4. 基于表的数据字典构造MySQL建表语句

    表的数据字典格式如下: 如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确. 写了个Perl脚本,可快速构造MySQL脚本语句. 脚本如下: #!/usr/bin/perl use str ...

  5. mysql建表出现Timestamp错误

    mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTA ...

  6. MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual.......

    使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 建表语句: DROP DATABASE IF EXISTS javawe ...

  7. 三种常用的MySQL建表语句

    MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1(    ...

  8. 【转载】mysql建表date类型不能设置默认值

    如题,mysql建表date类型的不能设置一个默认值,比如我这样: CREATE TABLE `new_table` ( `biryhday` datetime NULL DEFAULT '1996- ...

  9. Mysql建表通用写法

    Mysql建表通用写法 CREATE TABLE IF NOT EXISTS stu( id ) PRIMARY KEY AUTO_INCREMENT,//主键 自增 stuname ) NOT NU ...

随机推荐

  1. PHP中eval函数的危害与正确禁用方法

    其实 eval()是无法用php.ini中的 disable_functions禁止掉的 :eval是zend的,因此不是PHP_FUNCTION 函数: 如果想禁掉eval可以用php的扩展 Suh ...

  2. 前端基础-html 列表标签,表格标签,表单标签

    一.列表标签 1.ul(无序列表)标签 ul(unordered list)无序列表,ul下的子元素只能是li(list item),如下示例: <ul> <li>第一项< ...

  3. Akka(20): Stream:异步运算,压力缓冲-Async, batching backpressure and buffering

    akka-stream原则上是一种推式(push-model)的数据流.push-model和pull-model的区别在于它们解决问题倾向性:push模式面向高效的数据流下游(fast-downst ...

  4. Storm官方提供的trident单词计数的例子

    上代码: public class TridentWordCount { public static class Split extends BaseFunction { @Override publ ...

  5. Decorator装饰者模式(结构型模式)

    1.需求 假设让我们去设计FCL中的Stream类,该类具有流类的基本功能,除了有各种不同类型的流外(如内存流.文件流.网络流等等),但是在不同的业务场景下,如处理银行业务,需要给相关的内存流进行加密 ...

  6. 分析NonfairSync加锁/解锁过程

    类继承关系: NonfairSync => Sync => AbstractQueuedSynchronizer 类NonfairSync final void lock() { if ( ...

  7. Future接口和Callable接口以及FeatureTask详解

    类继承关系 Callable接口 @FunctionalInterface public interface Callable<V> { V call() throws Exception ...

  8. Silverlight中使用MVVM(4)—演练

    本来打算用MVVM实现CRUD操作的,这方面例子网上资源还挺多的,毕竟CRUD算是基本功了,因为最近已经开始学习Cailburn框架了,感觉时间 挺紧的,这篇就实现其中的更新操作吧.         ...

  9. 大整数相加 a+b 的c语言实现

    终于来到我所期盼的高精度整数相加的题目了.这个题很经典,也算是一个很好的算法入门题吧. 如果是java的话,系统类库已经内置了BigInteger类,直接调用就可以很轻易地解决了.但是学习c的编写也是 ...

  10. 【工具向01】——markdown 文本编辑语言相关

    markdown简介 Markdown是一种轻量级标记语言创始人为约翰·格鲁伯.它允许人们"使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML或HTML文档".这种语言吸 ...