详解mysql基本操作详细(二)

  

  

  

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基本操作详细(二)