数据库MYSQL笔记2—字段

数据库MYSQL笔记2—字段

1. 主键primary key

  • MySQL字段约束有四种,主键约束,非空约束,唯一约束,外键约束,而主键设置属于字段的约束之一

1.1. 创建方法

  • 1、建表的时候加primary key约束 (可多个主键)
  • 2、修改表字段的时候修改字段属性为primary key
  • 3、追加字段列表 alter table add primary key(主键列)

1.2. 主键约束

  • 1、唯一性
  • 2、因数字检索速度飞快,建议主键使用数值型,设置自动增长。

1.3. 更新主键 & 删除主键

#没有办法更新主键: 主键必须先删除,才能增加.

Alter table 表名 drop primary key;

1.4. 使用逻辑主键

  • 在实际大部分的时候是使用逻辑主键(逻辑字段与业务无关)

2. 增自增长

Create table sale_info(
salesId int primary key auto_increment comment ‘逻辑主键: 自增长’, -- 逻辑主键
order_date date  ,
price varchar(10) not null 
)

特点

  • 前提是本身是一个索引(key一栏有值)
  • 必须是数字(整型)
  • 最多只能有一个自增长
  • 插入行信息时,会自动按顺序出发自增长序号
  • 修改字段属性时候可以删除自增长

3. 唯一键unique key

3.1. 主键比较:

  • 相同点:数据不能重复:
  • 区别:唯一键默认的允许自动为空,而且可以多个为空(空字段不参与唯一性比较)

3.2. 更新主键 & 删除主键

1、与主键一样先删除后新增(但唯一键可以有多个: 可以不删除).
2、删除唯一键
Alter table 表名 drop unique key; -- 错误: 唯一键有多个
Alter table 表名 drop index 索引名字; -- 唯一键默认的使用字段名作为索引名字

4.foreign key(不推荐)

  • 外键: foreign key, 外面的键(键不在自己表中):
    如果一张表中有一个字段(非主键)指向另外一张表的主键,那么将该字段称之为外键.

4.1. 增加:与主键一样

1、新增时增加:Create table 表名(
		,,, foreign key(外键字段) references 外部表(主键字段)2、修改时增加:
alter table add foreign key(外键字段) references 外部表(主键字段)

4.2. 修改外键&删除外键

  • 外键不可修改,只能先删除后新增. 删除外键语法 Alter table 表名 drop foreign key 外键名;
  • 一张表中可以有多个外键,但是名字不能相同

4.3. 外键作用

  • 外键默认的作用有两点: 一个对父表,一个对子表(外键字段所在的表)
  • 对子表约束: 子表数据进行写操作(增和改)的时候, 如果对应的外键字段在父表找不到对应的匹配: 那么操作会失败.(约束子表数据操作)

4.4. 外键条件

  • 1.外键要存在: 首先必须保证表的存储引擎是innodb(默认的存储引擎): 如果不是innodb存储引擎,那么外键可以创建成功,但是没有约束效果.
    2.外键字段的字段类型(列类型)必须与父表的主键类型完全一致.
    3.一张表中的外键名字不能重复. 4,增加外键的字段(数据已经存在),必须保证数据与父表主键要求对应.

     对于外键更多的详解,见下方链接:
     https://blog.csdn.net/qq_34115899/article/details/81190461?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162609632516780262578676%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162609632516780262578676&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-81190461.first_rank_v2_pc_rank_v29&utm_term=mysql%E8%AF%A6%E8%A7%A3&spm=1018.2226.3001.4187
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值