(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科

希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

目录

​编辑

前言

数据约束和参照完整性

背景与要求

PRIMARY KEY约束

理解PRIMARY KEY约束

表的完整性约束

复合主键

小总结

修改表的主键

UNIQUE约束

创建UNIQUE约束

总结


前言

喵子回来了,冲冲冲!


数据约束和参照完整性

背景与要求

 在一个表中,通常需要某个字段或字段的组合唯一地标识一条记录,这就是主键约束。

  在一个表中,有时要求某些列值不能重复,但一个表只能有一个主键,这时可以设置UNIQUE进行约束。

  在关系数据库中,表与表之间数据是有关联的。例如,成绩表中的课程号要参照课程表的课程号,成绩表的学号要参照学生表中的学号。该怎样进行约束,使表与表之间的数据保证一致呢?

本任务要求学习者理解主键约束(PRIMARY KEY)、唯一性约束(UNIQUE外键参照完整性约束(FOREIGN KEY以及CHECK约束的含义。

  学习创建和修改约束的方法,掌握数据约束的实际应用。


PRIMARY KEY约束

理解PRIMARY KEY约束

  可指定一个字段,也可以指定二个及以上的字段作为复合主键,其值能唯一地标识表中的每一行,列不能取空值。

  主键约束能确保数据唯一,所以经常用来定义标志列。

  可以在创建表时创建主键,也可以对表中已有主键进行修改或者增加新的主键。

  设置主键通常有两种方式:表的完整性约束、列的完整性约束。


表的完整性约束

 举个例子

创建表course1,用表的完整性约束设置主键。  

mysql> CREATE TABLE IF NOT EXISTS course1

    (c_no char(4) NOT NULL,

    c_name char(10) DEFAULT NULL,

    t_no char(10) DEFAULT NULL,

  hours int(11) DEFAULT NULL,

    credit int(11) DEFAULT NULL,

    type varchar(10) DEFAULT NULL,

    PRIMARY KEY (c_no)

    )ENGINE=InnoDB DEFAULT  CHARSET=gb2312;

创建表course2,用列的完整性约束设置主键。

  mysql> CREATE TABLE IF NOT EXISTS course2

       (c_no char(4) NOT NULL  PRIMARY KEY,

   c_name char(10) DEFAULT NULL,

    d_no char(10) DEFAULT NULL,

    hours int(11) DEFAULT NULL,

    credit int(11) DEFAULT NULL,

  type varchar(10) DEFAULT NULL

    )ENGINE=InnoDB DEFAULT  CHARSET=gb2312;

复合主键

创建score1,用s_noc_no作为复合主键。

mysql> CREATE TABLE IF NOT EXISTS score1

    s_no char(8) NOT NULL,

    c_no char(4) NOT NULL,

  ccore float(5,1) DEFAULT NULL,

    PRIMARY KEY (s_no,C_no)

    )ENGINE=InnoDB DEFAULT CHARSET=gb2312

小总结

1)主键以是单一的字段,也以是多个字段的组合。

2)在score表中,一个学生一门课的成绩只能有一条记录,不能出现同一个学生同一门课多条记录,因此,必须设置s_noc_no为表score复合主键,以保证数据的唯一性。 另外,如果单独设置s_noc_no为主键,将出现一位学生(或一门课)只能录入一次成绩的情况。

3)当表中的主键为复合主键时,只能定义为表的完整性约束

4)作为表的完整性约束时,需要在语句最后加上一条PRIMARY KEYcol_name)语句,作为列的完整性约束时,只需在列定义的时候加上关键字PRIMARY KEY


修改表的主键

  修改表students的主键,删除原来主键,增加s_name为主键。

Mysql>ALTER TABLE students

  DROP PRIMARY KEY,

  ADD PRIMARY KEY (s_name );

注:如果原主键已被引用为外键,将出错。


UNIQUE约束

 理解UNIQUE约束(唯一性约束)

  UNIQUE约束(唯一性约束)又称替代键

  替代键是没有被选作主键的候选键

  替代键像主键一样,是表的一列或一组列,它们的值在任何时候都是唯一的。

  可以为主键之外的其他字段设置UNIQUE约束。 


创建UNIQUE约束

TEST数据库中,创建一个表employees, 只含employeeidnamesexeducation,用列的完整性约束的方式将Name设为主键,用表的完整性约束的方式将employeeid设为替换键。

mysql> create table employees

    (employeeid char(6) not null,

    name char(10) not null primary key,

  sex tinyint(1),

    education char(4),

    UNIQUE(employeeid));

或者,可以作为列的完整性约束直接在字段后面设置唯一性。    


总结

数据库记的东西蛮多的

记住就好了!


希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

相关推荐

  1. 创作纪念日

    2024-04-14 13:32:05       37 阅读
  2. 创作纪念日

    2024-04-14 13:32:05       48 阅读
  3. 创作纪念日

    2024-04-14 13:32:05       51 阅读
  4. 创作纪念日

    2024-04-14 13:32:05       39 阅读
  5. 创作纪念日

    2024-04-14 13:32:05       40 阅读
  6. 创作纪念日

    2024-04-14 13:32:05       47 阅读
  7. 创作纪念日

    2024-04-14 13:32:05       40 阅读
  8. 创作纪念日

    2024-04-14 13:32:05       47 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 13:32:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 13:32:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 13:32:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 13:32:05       20 阅读

热门阅读

  1. C语言程序10题

    2024-04-14 13:32:05       13 阅读
  2. ElasticSearch总结

    2024-04-14 13:32:05       17 阅读
  3. MySQL-触发器

    2024-04-14 13:32:05       22 阅读
  4. 枚举类的使用场景

    2024-04-14 13:32:05       21 阅读
  5. Linux命令学习—linux 下软件的安装与管理

    2024-04-14 13:32:05       32 阅读
  6. SQL的单表查询

    2024-04-14 13:32:05       17 阅读
  7. rust实现循环链表

    2024-04-14 13:32:05       19 阅读