zoukankan      html  css  js  c++  java
  • 创建表的完整语法+整型数据类型

    创建表的完整语法


    #语法:
    create table 表名(
    字段名1 类型[(宽度) 约束条件],
    字段名2 类型[(宽度) 约束条件],
    字段名3 类型[(宽度) 约束条件]
    );

    #注意:
    1. 在同一张表中,字段名不能相同
    2. 宽度和约束条件可选,字段名和类型是必须要有的
    3. 最后一个字段后不能加逗号!

    # 补充:
    # 1.宽度指的是对存储数据的限制
    create table userinfo(name char);
    insert into userinfo values('jason');
    """
    这里的char 字符类型,在后面不加参数的时候,默认值是1 也就是只能存1位,当存入一个比较大的数据时,位数明显超过1 ,可能会出现下面这两种情况中的一种:
    1.没有安全模式的数据库版本,能够存放数据但是只会存进去一个j,也就是只能存进去第一位
    2.最新数据库版本直接报错提示无法存储:Data too long for column 'name' at row 1
    """

    # 2.约束条件初识>>> null 与 nut null
    create table t1(id int,name char not null);
    insert into t1 values(1,'j');  # 正常存储
    insert into t1 values(2,null);  # 报错

    # 总结 类型与约束条件区别
    # 类型:限制字段必须以什么样的数据类型存储
    # 约束条件:约束条件是在类型之外添加一种额外的限制

    # 字段类型限制的是存储数据的类型
    # 约束条件是基于字段类型之上的附加的额外限制

    基本数据类型

    整型

    整型默认带符号的,如果存贮 的值超出了这个范围,在严格模式下,会显示报错,说存储的数据超过范围,如果是非严格模式,大于最大值的数据会被最大值替代存储,小于最小值的数据会被最小值替代存储

    **给整型设置宽度:

    这是一个特例,唯独整型字段在设置宽度的时候,限制的不是存储宽度而是显示宽度

    create table t6(id int(8));##如果存入的数字够8位,正常显示,如果不够8位,默认用空格填充

    结论:

    在创建整型字段的时候,不需要制定字段宽度(整型的显示宽度)

    int 后面别加括号

    • 分类:TINYINT SMALLINT MEDIUMINT INT BIGINT

    • 作用:存储年龄,等级,id,各种号码等信息

    类型存储范围:参考图片http://www.cnblogs.com/linhaifeng/articles/7233411.html

    验证整型字段有无符号及范围

    TINYINT :1个字节,默认有正负号-128--127

    SMALLINT:2个字节

    MEDIUMINT:4个字节

    INT:4字节

    BIGINT:8字节


    create table t1(x tinyint);
    insert into t1 values(128),(-129);

    create table t2(x tinyint unsigned);
    insert into t2 values(-1),(256);  

    create table t3(x int unsigned);
    insert into t3 values(4294967296);

    疑问:类型后面的宽度能否改变字段存储的大小限制


    create table t4(x int(8));
    insert into t4 values(4294967296123);

    # 显示时,不够8位用0填充,如果超出8位则正常显示
    create table t5(x int(8) unsigned zerofill);
    insert into t5 values(4294967296123);

    # create table t6(id int(10) unsigned);
    # create table t7(id int(11));

    强调:对于整型来说,数据类型后的宽度并不是存储限制,而是显示限制,所以在创建表时,如果字段采用的是整型类型,完全无需指定显示宽度, 默认的显示宽度,足够显示完整当初存放的数据

  • 相关阅读:
    Swagger使用总结
    idear常用快捷键
    Liunx下安装MongoDB
    python面向对象的特点,类定义等,私有属性、公有属性、成员属性
    Python,subprocess模块(补充)
    对称加密和非对称加密概述
    Python关于导入模块的一些感想:
    Python学习第二阶段Day2,模块subprocess、 logging、re
    Python学习第二阶段Day2(json/pickle)、 shelve、xml、PyYAML、configparser、hashlib模块
    Python学习第二阶段Day2,模块time/datetime、random、os、sys、shutil
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/11067084.html
Copyright © 2011-2022 走看看