希望你开心,希望你康健,希望你幸福,希望你点赞!
末了的末了,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
目次
编辑
前言
数据束缚和参照完备性
背景与要求
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));
复制代码 大概,可以作为列的完备性束缚直接在字段后面设置唯一性。
总结
数据库记的东西蛮多的
记住就好了!
希望你开心,希望你康健,希望你幸福,希望你点赞!
末了的末了,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |