1,数据库的几大约束
2、表与表之间的关系
<强>主键约束:强>
作用:为了保证数据的有效性和完整性 mysql中常用的约束:主键约束(主键)唯一约束(独特的)非空约束(非空)外键约束(外键) 主键约束:被修饰过的字段唯一非空 注意:一张表只能有一个主键,这个主键可以包含多个字段 方式1:建表的同时添加约束格式:字段名称字段类型主键 方式2:建表的同时在约束区域添加约束 所有的字段声明完成之后,就是约束区域了 格式:主键(字段1,字段2) 创建表pk01 ( id int, 用户名varchar (20), 主键(id) ); 插入pk01值(1,“汤姆”);——成功 插入pk01值(1,“汤姆”);——失败重复条目' 1 '关键“主” 插入pk01值(空,“汤姆”);——失败列“id”不能为空 创建表pk01 ( int id主键, 用户名varchar (20), 主键(id) );——错误的一张表只能有一个主键 第三方式:建表之后,通过修改表结构添加约束 创建表pk02 ( id int, 用户名varchar (20) ); alter table pk02添加主键(字段名1,字段名2 . .); alter table pk02添加主键(id、用户名); 插入pk02值(1,“汤姆”);——成功 插入pk02值(1“tomcat”);——成功 插入pk02值(1“tomcat”);——失败 >之前<强>唯一约束强>
被修饰过的字段唯一,对零不起作用 方式1:建表的同时添加约束格式:字段名称字段类型独特 联合国创建表( id int独特, 用户名varchar(20)独一无二的 ); 插入联合国价值(10,“汤姆”);——成功 插入联合国价值(10,“杰克”);——错误重复条目“10”关键“id” 插入联合国价值(null,“杰克”);——成功 插入联合国价值(null,“玫瑰”);——成功 方式2:建表的同时在约束区域添加约束 所有的字段声明完成之后,就是约束区域了 独特的(字段1,字段值2…) 第三方式:建表之后,通过修改表结构添加约束 改变表的表名添加独特(字段1,字段2);——添加的联合唯一 改变表的表名添加独特(字段1);——给一个添加唯一 改变表的表名添加独特(字段2);——给另一个添加唯一////////////////创建表un01 ( id int, 用户名varchar (20) ); alter table un01添加独特(id、用户名); 插入un01值(1,“汤姆”);——成功 插入un01值(1,“杰克”);——成功 插入un01值(1,“汤姆”);——失败重复条目“汤姆”关键“id” >之前<强>非空约束强>
特点:被修饰过的字段非空 方式: 创建表神经网络( id int非空, 用户名varchar (20) not null ); 插入nn值(空,“汤姆”);——错误的专栏“id”不能为空 >之前<强>案例1一对多——创建用户表强>
创建表的用户( id auto_increment int主键, 用户名varchar (20) ); ——创建订单表 创建表的订单( id auto_increment int主键, totalprice翻倍, user_id int ); >之前为了保证数据的有效性和完整性,添加约束(外键约束)。
在多表的一方添加外键约束格式:
alter table多表名称添加外键(外键名称)引用一表名称(主键),例如:
alter table命令添加外键(user_id)引用用户(id);添加了外键约束之后有如下特点:
<李> 1。主表中不能删除从表中已引用的数据李> <李> 2。从表中不能添加主表中不存在的数据李>
开发中处理一对多:
在多表中添加一个外键,名称一般为主表的名称_id,字段类型一般和主表的主键的类型保持一致,
为了保证数据的有效性和完整性,在多表的外键上添加外键约束即可。
<强>案例2一对多——创建用户表强>
——创建商品表 创建表的产品( id auto_increment int主键, 名字varchar (20), 价格翻倍 ); ——创建中间表 创建表orderitem ( oid int, pid int );详解mysql基本操作详细(二)