创建表的完整性约束 和 整型类型

创建表的完整性约束

宽度:

  对存储数据的限制

  char(1) 只能存一个字符

  如果超了 mysql会自动帮你截取

    1 插入的时候 mysql会自动截取 (浪费资源)

    2 会直接报错(mysql严格模式)提示无法存储:Data too long for column ‘name‘ at row 1 (推荐)

使用数据库的准则 能尽量少让数据库干活就尽量少干活

约束条件初识>>> null 与 not null  相当于None

  alter table t5 modify name char not null;

  not null该字段不能插空

类型和中括号内的约束
类型约束的是数据的存储类型
而约束是基于类型之上的额外限制

字段类型 整型类型

TINYINT SMALLINT MEDIUMINT INT BIGINT

有符号 有正负

TINYINT   
默认是否有符号 默认是带有符号的(-128,127)
超出限制会如何 超出之后只会存最大值或者最小值

create table t6(id TINYINT);

有符号修改为无符号 alter table 表名 modify 字段名 TINYINT unsigned ;

char后面的数字是用来限制存储数据的长度的

特例:只有整型后面的数字不是用来限制存储数据的长度 而是用来控制展示的数据的位数   (符号也算一位 加上符号最大11位 )
int(8) 够/超8位有几位存几位,不够8位空格填充

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

只要是整型 都不需要指定宽度 因为有默认的宽度 足够显示对应的数据

  
修改约束条件 不够8位的情况下 用0填充

zerofill  0填充多余的位数

not null 不能为空
unsigned 无正负符号
zerofill 0填充多余的位数

原文地址:https://www.cnblogs.com/lddragon/p/11379368.html

时间: 2024-10-07 19:52:18

创建表的完整性约束 和 整型类型的相关文章

java 整型类型和进制转换

类型 占用存储空间 表数范围 Byte 1字节 -128~127 Short 2字节 -215 ~ 215-1 (-32768~32767) Int 4字节 -231 ~ 231-1 (-2147483648~2147483647) 约21亿 Long 8字节 -263 ~ 263-1 System.out.println(Integer.toBinaryString(a)); //整型转二进制 System.out.println(Integer.toOctalString(a)); //整型

golang的数据类型之整型类型

数据类型: 整数 : int, int32, int64, uint, uint32, uint64 字符串 : string 布尔:bool 浮点:float32 float64 uint 表示无符号整数类型. [[email protected] xiaochun]# cat int.go package main import "fmt" //演示golang中整数类型使用func main() { var i int = 1 fmt.Println("i ="

Mysql数据库按照varchar字符串类型排序和按照int整型类型排序的区别和注意点及解决方案

自己建表的时候,把一个字段类型创建为varchar(2) ,其实应该建为int(2)的.因为我只允许输出数字.这本来也没什么,无非就是占点空间,懒得改了.但是今天在后台发现排序有问题.于是,没办法,改 之.下面简单说一下MySQL的varchar排序问题,引以为戒. 下面,我从数据库里面以server_id排一下序,大家来看一下排序后的结果: select server_id from cardserver where game_id = 1 order by server_id desc li

一些平台无关的整型类型,int8_t,uint8_t....

pecific integral type limits Specifier Common Equivalent Signing Bits Bytes Minimum Value Maximum Value int8_t signed char Signed 8 1 −128 127 uint8_t unsigned char Unsigned 8 1 0 255 int16_t short Signed 16 2 −32,768 32,767 uint16_t unsigned short U

MySQL各种日期类型与整型(转)

日期类型 存储空间 日期格式 日期范围 datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038 date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31 year 1 bytes YYYY 1901 ~ 2155 timestam

Sqlite创建表一定要声明字段类型(ContentProvider查询的小问题)

用ContentProvider查询,有时候不太灵..就像下面的代码,数据库中存在该数据,但是查不出来.原因可能是该字段没有声明类型.. 如下: private final static String SQL_CREATE_TABLE_INSTALLED = "CREATE TABLE if not exists " + TABLE_INSTALLED + " ( " + "id not null, " + "name text not

MySQL-存储引擎-创建表-字段数据类型-严格模式-字段约束-键-02

目录 扩展点 查看服务端字符.IP.端口配置 取消本次错误输入 例外情况 database 数据库操作 table 数据表操作 查看MySQL存储引擎 常见几个存储引擎 InnoDB MyISAM MEMORY BLACKHOLE 引擎对应的本地化文件 案例 基本操作 创建表的完整语法 表记录基础操作 严格模式补充 查看数据库配置中变量名包含mode的配置参数 模糊匹配 基本数据类型 数据范围 整型 TINYINT SMALLINT MEDIUMINT INT BIGINT 应用场景 结合字段验

go--4大基本数据类型之整型

一:整型的定义 整型数据可简单理解为存放整型数字的数据,如:-120,0,120. 二:整型数据的范围 ①:整型类型 ②:无符整型(非负数整型),在①列表前加u即可,表数范围将从0开始. ③:int与uint的默认范围 三:整型的简单使用举例 四:整型的使用注意事项 ①:int与uint的范围与系统有关,可参考上面第二大类的第三小类. ②:Golang在没声明具体整型时,默认为int ③:Golang在声明整型时,尽量按照最小来声明 ④:如何获取数据类型,与字节大小(其他类型数据一样适用) 原文

隐式类型转换和整型提升

c整型中的运算总是至少以缺省整型类型的精度来进行的,所以当字符型或者短整型在进行运算时为了获得这个精度,先要提升成普通整型,再运算. 例: char a=127; char b=1; char ret=a+b; 在进行运算时,先进行"整型提升"(提升成整形): char类型的127 是:0111 1111 进行整型提升后是:00000000 00000000 00000000 01111111 char类型的1 是:0000 0001 整型提升后是:00000000 00000000