索引与完整性:

 就是键之类的,通过键进行索引;

看上图存在四种类型:

noll null

primary key

unique

foreign key

 

 

对于键的设定可以在创建表的时候就添加相应的键:

记得主键只设定一个作为索引吧好像;

一般不设定实际意义,只是给他做一个标记作用用于索引

其他的书写格式:

 使用alter语法进行添加主键

alter table +表名 add primary key(+列名)

 

unique约束:

unique约束可以存在多个;

 

 

 

 

 

 

外键添加:

直接上个例子:

 如皋要添加外键约束,和另外一个表相连,那么要求作为外键的列需要数据类型相同:例子中的部门号数据类型不相同要先变成相同的数据类型

 先改数据类型:

 改完再进行外键相连,这样两表修改同时外键变化都会变化

再添加外键

 2. 删除“departments”表的部门号时会显示什么?

在添加了外键后再删除表中数据,删除表中的列时下面命令:

alter table departments drop column 部门号;

 

 因为外键缘故,这个列不能被直接删除;

3. “departments”表的部门号1改为11时,

更改表中的值可以使用下面这个set指令:
update departments set 部门号=11 where 部门号=1;

 

 再查看表

 5 。“employees”表插入一条记录,要求部门号为7,会显示什么

下面是插入数据语句:

insert into employees values('888888','李广真','本科','1980-10-12',1,5,'惠州市','12345678',7);

 因为外键缘故直接在employees里面直接插入一个不存在的外键的值显示错误;

要先再依靠中存在一个相应的外键才不会出错,这里的依靠是部门departments,所以在添加一个部门7之前要在依赖reference department中先添加一个数据;

insert into departments values(7,'公安局',null);

添加完之后再在employees中添加一个数据就行;

 可以看见是可以添加的;

 

6. “salary”表创建外键约束,要求如果删除“employees”表的某员工时,“salary”表的该记录也随之删除,如果更新“employees”表的某编号时,“salary”表的编号也随之修改

和上面差不多啊:

 

1)贴出对“salary”表添加外键的语句

 

 

2)删除“employees”表编号为“210678”员工后显示“salary”表的所有记录

删除表中指定的行使用delete指令

delete from employees where 编号='210678';

 

3)更新“employees”表编号“102345”为“123456”后“salary”表的所有记录

 

 

4)在“salary”表插入(‘888888’,3456,234)后会显示什么

使用拆入数据语句

insert into salary values('888888',3456,234);

 与上面相同,因为不存在这个外键的值所以添加不了;

总结,依赖b(references)中不存在的外键值在添加表中数据的时候无法添加,要依赖表中外键存在这个值;

表中插入数据的语法:

insert into +表名 values(+值,+值,...);

删除表中索引特定行的数据

delete from +表名 where 指定列所对应信息类似的条件;

更新表中信息:

update +表名 set 要修改的东西;

eg: