python 关联表_python学习------9.13----约束、表之间的关联关系

分类:not null非空约束 数据不能为空

学生表的姓名字段create table student (id ind,name char(10) not null);default默认值约束 可以指定字段的默认值create table user (id ind,name char(10) not null,sex char(1) default"woman");

美柚的性别字段 默认为女

游戏 注册成功 送一万金币unique唯一性约束 该字段的值不能重复

身份证 手机号 学号

unique其实是一种索引

索引是一种数据结构 用于提高查询效率

可以为空

一张表中可以有多个唯一约束

单列唯一约束create table t5(idcard char(18) unique);

多列联合唯一约束create table t6(idcard char(18),phonenumber char(11),unique(idcard,phonenumber));

意思: 身份证相同 并且 手机号相同 那就叫相同primary key ******称之为主键约束

用于唯一标识表中一条记录

如何能做到唯一标识 该字段 只要是惟一的 并且不为空 即可

也就是说 从约束的角度来看主键约束 和 非空 加 唯一约束 没有区别

那它们之间的区别是什么?

唯一约束 是一种索引 必然存在硬盘上的某个文件中 是物理层面(实实在在存在的数据)primary key是一种逻辑意义上的数据 (实际上不存在)

换句话说 主键 就是由 唯一约束 和非空约束 组成的约束

就像 一男一女 可以组成夫妻 但是夫妻只是一种称呼 不实际存在

语法:create table stu (stuid int primary key,name char(3));create table t7(id int unique not null,name char(3));

有主键 和没有主键的区别?1.无法区分两个相同记录 比如班级里有两个人名字相同2.有主键则意味有这索引 效率更高3.可以建立关联关系

多列联合主键:create table t8(idcard char(18),phonenumber char(11),primary key(idcard,phonenumber));

要不要主键?

必须的 每个表都应该有主键 哪怕不用唯一标识 也应该考虑提升效率

主键的字段名 几乎都叫id

同一个表中可以不可以有多个主键?

不可以 没有任何意义

主键的类型需要设置为整型,当然别的也行!建议你别这么干!

练习

创建一个员工表 里面存储 员工信息 员工编号 姓名 年龄 性别create table employee (id int primary key,name char(10) not null,age int not null,sex char(10) default"man");

插入数据INSERT INTO employee VALUES(1,"杨总",20),(2,"egon",49),(3,"wxx",28);

问题? 你很可能忘记上一次的id到第几了 导致你要先查看一下

麻烦影响效率 所以有了auto_increment

auto_increment******中文 自动增长

作用 通常搭配主键字段使用 可以自动为你的数据分配逐渐

如何分配的?

添加一条就自动加1 计数从1开始

语法:******

create table t9(id int primary key auto_increment,name char(3));

如果主键是自动增长 你可以跳过这个字段 也可以为它插入null 都可以

修改自动增长的起始位置**

alter table t9 auto_increment = 7;

注意: 自动增长 只能用于整型foreign key ******

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值