索引与完整性:
就是键之类的,通过键进行索引;
看上图存在四种类型:
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:
标签:表中,salary,入门,employees,6.0,外键,添加,departments,MySql From: https://www.cnblogs.com/qianzhu/p/18195465