zoukankan      html  css  js  c++  java
  • mysql建表以及列属性

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

  • 相关阅读:
    jquery easy ui 1.3.4 事件与方法的使用(3)
    jquery easy ui 1.3.4 内容组件(2)
    jquery easy ui 1.3.4 快速入门(1)
    Asp.net MVC中提交集合对象,实现Model绑定(转载)
    Log4Net异常日志记录在asp.net mvc3.0的应用(转载)
    总结sqlserver数据库性能优化相关的注意事项
    企业级项目中最常用到的SQL
    .net学习之多线程、线程死锁、线程通信 生产者消费者模式、委托的简单使用、GDI(图形设计接口)常用的方法
    使用asp.net从零开始制作设计网站---转载
    .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
  • 原文地址:https://www.cnblogs.com/ghostwu/p/8545248.html
Copyright © 2011-2022 走看看