一 数据类型
讲解'主要'的数据类型,不面面俱到,后续'遇到具体问题'再'查询'补充扩展: 知识点的'深度和广度'以工作为'导向'
① int float
M : 表示'显示宽度',M的取值范围是(0, 255)例如: int(5),当数据宽度'小于5位'的时候在数字前面需要用'字符填满'宽度说明: 1、整型数据类型可以在'定义表结构时'指定所需要的'显示'宽度2、如果'不指定',则系统为每一种类型指定'默'认的宽度值最佳实践: 整数数据类型'不推荐'使用显示宽度属性
② char、varchar
char(n) 固定长度,最多255个字符 --> 2^8varchar(n) 固定长度,最多65535个字符 --> 2^16+++++++++++++++++ char和varchar的'区别' +++++++++++++++++1.char(n) "尾部空格"[1]、若'实际'存入字符数'小于n',则以'空格'补于其后,查询之时再将'空格'去掉[2]、所以char类型存储的字符串'末尾不能有空格',varchar不限于此。2.char(n) '固定'长度[1]、char(4)不管是存入几个字符,都将'占用'4个字节 --> '定长'备注: 使用'uuid'作为主键,'那用char'[2]、varchar是存入的'实际字符数+1'个字节(n<=255)'或'2个字节(n>255) --> '不定长'备注: varchar多'占'一个字节是字符的'长度'说明:所以varchar(4),'存入3个字符'将占用4个字节。 3.char类型的字符串'检索速度'要比varchar类型的快 --> '查找效率'
③ 日期、时间、时间戳
插入时间、更新时间、删除时间、下单时间、入职时间、离职时间
'重点'掌握:DATE、DATETIME、TIMESTAMP
二 关键字和约束
① COMMENT
说明: '字段'或列的'注释'是用属性 'comment' 来添加
② NOT NULL 非空约束
1、限定某个'字段/某列'的'值'不允许为空备注: 空字符串''不等于NULL,0也'不等于'NULL
NULL 和空值的区别
③ UNIQUE 唯一约束
用来'限制'某个'字段/某列'的值'不能重复'通俗: UNIQUE 约束可以'防止'两条记录在'某个字段'上出现'重复值'特点:1、同一个表可以有'多个'唯一约束2、唯一约束可以是'某一个列的值唯一',也可以'多个列组合'的值唯一3、唯一性约束允许'列值为空'4、在创建唯一约束的时候,如果'不给'唯一约束命名,就'默认和列名'相同细节:MySQL会给'唯一约束的列'上'默认'创建一个'唯一索引'
④ PRIMARY KEY 主键约束
说明: 用来'唯一标识'表中的'一行'记录特点:1、主键约束相当于'唯一约束+非空约束'的组合,主键约束列'不允许重复',也'不允许'出现'空值'2、一个表'最多只能 only '有一个主键约束3、主键约束对应着表中的'一列或者多列'4、如果是'多列组合的复合主键约束',那么这些列'都不允许'为空值,并且'组合的值'不允许重复5、当创建'主键约束'时,系统'默认'会在所在的列或列组合上'建立'对应的'主键索引'
⑤ AUTO_INCREMENT 自增长约束
说明: 某个字段的值'自增'特点:1、一个表最多'只能有一个'自增长列2、当需要产生'唯一标识符或顺序值'时,可设置自增长3、自增长列约束的'列'必须是'键列(主键列,唯一键列)'4、自增约束的列的数据类型必须是'整数'类型
set @@global.auto_increment_offset =1;
set @@auto_increment_offset =1
⑥ DEFAULT 默认值约束
⑦ 外键约束
⑧ 遗留
set 一些变量 --> 变量的含义?正则、glob