Mysql基础操作
一些基础知识
三范式及BC范式
一范式(1NF)
符合1NF的关系中的每个属性都是不可再分的,在使用数据库管理系统的时候比如mysql,sqlserver等创建的数据库都满足1NF,如果不满足这个范式,是不能够创建成功数据表的。属性不可再分的意思是每一个字段都是最小的,不包含其他字段。不重复,原子性。
二范式(2NF)
在1NF的基础上,消除了非主属性对码的部分函数依赖。
码
一个表中,可以唯一决定一个元组的属性“集合”。假设K为表中的某个属性,如果在K确定了的情况下,这个表里面其他的属性都可以确定,那么K就叫做候选码,也叫码。比如通过id可以获取到姓名,系名,系主任名,但是不能确定课名和分数。课名可以获取分数。id-----姓名,系名,系主任
课名------分数 (id,课名)这个属性组就叫做码。
上面说到的码里面的属性就是主属性,包括id,课名。不是主属性的就是非主属性,包括姓名,系名,系主任,分数。
函数依赖
函数y = f(x)代表了给定一个x的值,y的值也是确定的。在数据表中,在属性x确定的情况下。必定能确定y的值,那就是说y函数依赖与x写作X---Y。比如:在表中,给定一个学号,必定能得到一个唯一的一个姓名。那就说姓名函数依赖于学号。写作:学号---姓名。
完全函数依赖
在一张表中字段分为 X 和 Y 两个集合,X集合数据唯一确定一条数据 Y ,X集合字段中的任何一个字段都不能确定唯一一条数据 Y ,就称 Y 完全函数依赖于 X
比如(学号,课名)-----成绩,学号和课名都是x的真子集,但是如果只有学号,或者只有课名,是不能得到一个唯一的成绩。满足完全函数依赖的要求,所以y完全函数依赖于x.
部分函数依赖
在一张表中分为 X 和 Y 集合,X集合数据唯一确定一条数据Y,并且X中任意字段或组合字段都可以唯一确定Y集合数据,则称 Y 部分函数依赖于 X
比如(学号,课名)-----姓名。由学号可以得到唯一的姓名,但是由课名不能得到唯一的姓名。所以称为y部分函数依赖x.
判断是否符合2NF
就是看数据表中是否存在非主属性对于码的部分函数依赖。若存在,则数据表最高只符合1NF的要求,若不存在,则符合2NF的要求。
三范式
在2NF的基础上,消除了非主属性对于码的传递函数依赖。也就是说,如果存在非主属性对与码的传递函数依赖,则不符合3NF的要求。
如果y依赖于x,z又依赖于y,那就说z依赖于x.
比如:系名依赖于学号,系主任依赖于系名,那么系主任传递函数依赖于学号。不满足3NF
BC范式
符合1NF的关系中的每个属性都是不可再分的;
2NF在1NF的基础上,消除了非主属性对码的部分函数依赖;
3NF在2NF的基础上,消除了非主属性对于码的传递函数依赖;
BCNF在3NF基础之上,消除任何属性(主属性和非主属性)对关系键的部分函数依赖和传递函数依赖。
DML
添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
insert into employee(id,workno,name,gender,age,idcard,entrydate)
values(1,'1','Itcast','男',10,'123456789012345678','2000-01-01');
INSERT INTO 表名 VALUES (值1, 值2, ...);
insert into employee values(2,'2','张无忌','男',18,'123456789012345670','2005-01- 01');
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值 1, 值2, ...) ; INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;
insert into employee
values(3,'3','韦一笑','男',38,'123456789012345670','2005-01- 01'),(4,'4','赵敏','女',18,'123456789012345670','2005-01-01');
注意事项:
修改数据
UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 条件 ] ;
update employee set name = '小昭' , gender = '女' where id = 1;
删除数据
DELETE FROM 表名 [ WHERE 条件 ] ;
delete from employee where gender = '女';
本文来自博客园,作者:锦此,转载请注明原文链接:https://www.cnblogs.com/jinci2022/p/16483949.html