Mysql表增删改查进阶—入门+实战面面俱到

Mysql增删改查(进阶)

1.约束类型

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • DEFAULT - 规定没有给列赋值时的默认值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。

2.表的设计(三大范式)

2.1一对一
  • 解释:有俩张表(人表,身份证表),那么根据人表指定一个人的消息,能在身份证表找到唯一的一条记录,同样根据身份证中的身份证在人表中同样能够找到唯一一个人,这就是一对一;
    在这里插入图片描述
2.2一对多
  • 解释:根据学生表中的一条消息,可以在班级表对应一个班级号,对应一条记录,
    根据班级表中的一个班级号,可以在学生表找到多条记录(因为一个班级肯定有多个学生),这就是一对多;
    在这里插入图片描述
2.3多对多
  • 解释:
    1.多对多,一般俩张表不发生关系的时候是没有任何关系的;
    2.例如下面的学生表和课程表,在学生没有选择课或者参加过这门课考试的时候,他们没有关系,但是当学生选择了这么课,学生就会产生一张课表,来建立起来学生与课程之间的关系;
    3.一个学生会选择多门课程,一门同样课程被多名同学选择,学生与课表课之间是一对多;
    4.同样一个课程表中一门课程,在课程中间表中可以找到多条记录,一条课程中间表记录,打印一门课程,也是一对多;
    5.这样学生表与课程表之间通过这个中间表就建立起来了多对多;
    在这里插入图片描述
  • 一道习题告诉你怎么搞定多对多建表
2.4学校宿舍管理系统
  • 题:要求包含宿舍信息,学生信息,每日宿舍查房记录

三张表:学生表,宿舍查房记录表(中间表),宿舍表;

  • 思路分析:(中间表)通过学号与学生表联系,通过宿舍楼号与宿舍楼联系;

    //创建学生(stu)表(学号(主键),姓名,宿舍号)

    //创建宿舍(house)表(宿舍楼号(主键),宿舍号,学生学号,学生所在宿舍号)

    //创建宿舍查房记录(h_record)表(中间表)(日期(主键),学生学号(外键),宿舍楼(外键),是否缺勤)

2.4.1创建学生(stu)表(学号,姓名,宿舍号)
create table stu (id varchar(20) primary key,
name varchar(20),
h_id int
);
2.4.2创建宿舍(house)表(宿舍楼号(主键),学生学号,学生所在宿舍号)
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值