做营销策划要用到哪些网站,做动画上传网站赚钱么,网线制作图解,wordpress相关阅读禁止显示图片MySQL约束MySQL约束主键约束(primary key)自增长约束(auto_increment)非空约束(not null)唯一约束(unique)默认约束(default)零填充约束(zerofill)外键约束(foreign key)MySQL约束
概念
约束英文#xff1a;constraint约束实际上就是表中数据的限制条件
作用
表在设计的时…
MySQL约束MySQL约束主键约束(primary key)自增长约束(auto_increment)非空约束(not null)唯一约束(unique)默认约束(default)零填充约束(zerofill)外键约束(foreign key)MySQL约束
概念
约束英文constraint约束实际上就是表中数据的限制条件
作用
表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性比如用户表有些列的值手机号不能为空有些列的值身份证号不能重复。
分类
主键约束(primary key) PK自增长约束(auto_increment)非空约束(not null)唯一性约束(unique)默认约束(default)零填充约束(zerofill)外键约束(foreign key) FK 主键约束(primary key)
概念
MySQL主键约束是一个列或者多个列的组合其值能唯一地标识表中的每一行,方便在RDBMS中尽快的找到某一行。主键约束相当于 唯一约束 非空约束 的组合主键约束列不允许重复也不允许出现空值。每个表最多只允许一个主键主键约束的关键字是primary key当创建主键的约束时系统默认会在所在的列和列组合上建立对应的唯一索引。
操作
添加单列主键 创建单列主键有两种方式一种是在定义字段的同时指定主键一种是定义完字段之后指定主键 方式1-语法 -- 在 create table 语句中通过 PRIMARY KEY 关键字来指定主键。
--在定义字段的同时指定主键语法格式如下
create table 表名(...字段名 数据类型 primary key
...
)方式1-实现 create table emp1(eid int primay key,name VARCHAR(20),deptId int,salary double
);方式2-语法 --在定义字段之后再指定主键语法格式如下
create table 表名(...
[constraint 约束名] primary key [字段名]
);方式2-实现 create table emp2(eid INT,name VARCHAR(20),deptId INT,salary double,constraint pk1 primary key(id)
);添加多列联合主键 所谓的联合主键就是这个主键是由一张表中多个字段组成的。 注意 当主键是由多个字段组成时不能直接在字段名后面声明主键约束。 一张表只能有一个主键联合主键也是一个主键 语法 create table 表名(...primary key 字段1字段2…,字段n)
);实现 create table emp3( name varchar(20), deptId int, salary double, primary key(name,deptId) );通过修改表结构添加主键 主键约束不仅可以在创建表的同时创建也可以在修改表时添加。 语法 create table 表名(...
);
alter table 表名 add primary key字段列表);实现 -- 添加单列主键
create table emp4(eid int, name varchar(20), deptId int,
salary double,
);
alter table emp4 add primary keyeid);删除主键 一个表中不需要主键约束时就需要从表中将其删除。删除主键约束的方法要比创建主键约束容易的多。 语法 alter table 数据表名 drop primary key;实现 -- 删除单列主键
alter table emp1 drop primary key;
-- 删除联合主键
alter table emp5 drop primary key;自增长约束(auto_increment)
概念
在 MySQL 中当主键定义为自增长后这个主键的值就不再需要用户输入数据了而由数据库系统根据定义自动赋值。每增加一条记录主键会自动以相同的步长进行增长。通过给字段添加 auto_increment 属性来实现主键自增长。
特点
默认情况下auto_increment的初始值是 1每新增一条记录字段值自动加 1。一个表中只能有一个字段使用auto_increment约束且该字段必须有唯一索引以避免序号重复即为主键或主键的一部分。auto_increment约束的字段必须具备 NOT NULL 属性。auto_increment约束的字段只能是整数类型TINYINT、SMALLINT、INT、BIGINT 等。auto_increment约束字段的最大值受该字段的数据类型约束如果达到上限auto_increment就会失效。
操作
指定自增字段初始值 如果第一条记录设置了该字段的初始值那么新增加的记录就从这个初始值开始自增。例如如果表中插入的第一条记录的 id 值设置为 n那么再插入记录时id 值就会从 n 开始往上增加。 语法 字段名 数据类型 auto_increment方式1 -- 方式1创建表时指定
create table t_user2 ( id int primary key auto_increment, name varchar(20)
)auto_increment100;方式2 -- 方式2创建表之后指定
create table t_user3 ( id int primary key auto_increment, name varchar(20)
);
alter table t_user2 auto_increment100;知识点delete和truncate在删除后自增列的变化 delete数据之后自动增长从断点开始truncate数据之后自动增长从默认起始值开始 非空约束(not null)
概念
MySQL 非空约束not null指字段的值不能为空。对于使用了非空约束的字段如果用户在添加数据时没有指定值数据库系统就会报错。
操作 语法 方式1字段名数据类型 not null;
方式2alter table 表名 modify 字段 类型 not null;添加非空约束 -- 方式1创建表时指定
create table t_user6 ( id int , name varchar(20) not null, address varchar(20) not null
);
-- 方式2修改表时指定
create table t_user7 ( id int , name varchar(20) , -- 指定非空约束 address varchar(20) -- 指定非空约束
);
alter table t_user7 modify name varchar(20) not null;
alter table t_user7 modify address varchar(20) not null;删除非空约束 -- alter table 表名 modify 字段 类型
alter table t_user7 modify name varchar(20) ;
alter table t_user7 modify address varchar(20) ;唯一约束(unique)
概念
唯一约束Unique Key是指所有记录中字段的值不能重复出现。例如为 id 字段加上唯一性约束后每条记录的 id 值都是唯一的不能出现重复的情况。
操作 语法 方式1字段名 数据类型 unique
方式2 alter table 表名 add constraint 约束名 unique(列);添加唯一约束 -- 方式一
create table t_user8 (
id int ,
name varchar(20) ,
phone_number varchar(20) unique -- 指定唯一约束
);
-- 方式二
create table t_user9 ( id int , name varchar(20) , phone_number varchar(20) -- 指定唯一约束
);
alter table t_user9 add constraint unique_ph unique(phone_number);删除唯一约束 -- alter table 表名 drop index 唯一约束名;
alter table t_user9 drop index unique_ph;默认约束(default)
概念
MySQL 默认值约束用来指定某列的默认值。
操作 语法 方式1 字段名 数据类型 default 默认值;
方式2: alter table 表名 modify 列名 类型 default 默认值; 添加默认约束 --方式一
create table t_user10 ( id int , name varchar(20) , address varchar(20) default ‘北京’ -- 指定默认约束
);
-- alter table 表名 modify 列名 类型 default 默认值;
create table t_user11 ( id int , name varchar(20) , address varchar(20)
);
alter table t_user11 modify address varchar(20) default ‘北京’;删除默认约束 -- alter table 表名 modify column 字段名 类型 default null;
alter table t_user11 modify column address varchar(20) default null;零填充约束(zerofill)
概念
插入数据时当该字段的值的长度小于定义的长度时会在该值的前面补上相应的zerofill默认为int(10)当使用zerofill 时默认会自动加unsigned无符号属性使用unsigned属性后数值范围是原值的2倍例如有符号为-128127无符号为0256。
操作
create table t_user12 ( id int zerofill , -- 零填充约束name varchar(20)
);删除零填充约束
alter table t_user12 modify id int;外键约束(foreign key)
概念
外键约束FOREIGN KEY是表的一个特殊字段经常与主键约束一起使用。对于两个具有关联关系的表而言相关联字段中主键所在的表就是主表父表外键所在的表就是从表子表。
特点
主表必须已经存在于数据库中或者是当前正在创建的表。必须为主表定义主键。主键不能包含空值但允许在外键中出现空值。也就是说只要外键的每个非空值出现在指定的主键中这 个外键的内容就是正确的。在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。外键中列的数目必须和主表的主键中列的数目相同。外键中列的数据类型必须和主表主键中对应列的数据类型相同。
操作 语法 --方式一
[constraint 外键名] foreign key 字段名 [字段名2…] references 主表名 主键列1 [主键列2…]
--方式二
alter table 数据表名 add constraint 外键名 foreign key(列名) references 主表名 (列名);