大连密封材料 发表于 2024-8-18 23:21:56

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

https://i-blog.csdnimg.cn/blog_migrate/8a3b50cc6997a0fb0be3b6615dc662ec.png

   希望你开心,希望你康健,希望你幸福,希望你点赞!
末了的末了,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
目次
​编辑
前言
数据束缚和参照完备性
背景与要求
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_no和c_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_no和c_no为表score的复合主键,以保证数据的唯一性。 另外,假如单独设置s_no或c_no为主键,将出现一位弟子(或一门课)只能录入一次成绩的情况。
(3)当表中的主键为复合主键时,只能界说为表的完备性束缚。
(4)作为表的完备性束缚时,需要在语句末了加上一条PRIMARY KEY(col_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, 只含employeeid、name、sex和education,用列的完备性束缚的方式将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));    大概,可以作为列的完备性束缚直接在字段后面设置唯一性。    
总结

   数据库记的东西蛮多的
记住就好了!
   希望你开心,希望你康健,希望你幸福,希望你点赞!
末了的末了,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
https://i-blog.csdnimg.cn/blog_migrate/8a3b50cc6997a0fb0be3b6615dc662ec.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: (我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科