一、数据库基本操作
1、开启mysql服务命令
net start mysql
2、进入mysql的两种方式
明文进入:mysql -uroot -proot 格式:mysql -u帐号 -p密码
密文进入:mysql -uroot -p
按enter会提示你输入密码(Enter pssword:),此时你写的密码就会显示为***这样。
3、查看mysql中所有的数据库(一般在固定的单词命令就会是用大写,这个要习惯,看多了敲多了就认识了)
前面四个数据库是mysql中自带的,也就是必须的.
SHOW DATABASES;
4、创建名为test_1的数据库
格式:CREATE DATABASE 数据库名
CREATE DATABASE test_1;
5、删除名为test_1的数据库
格式:DROP DATABASE 数据库名
DROP DATABASE test_1;
二、数据库表的基本操作
1.创建表结构
CREATE TABLE Employee
(Eno CHAR(4) NOT NULL UNIQUE,
Ename CHAR(8)NOT NULL,
Sex CHAR(2) NOT NULL ,
Age INT NULL,
Is_Marry CHAR(1) NULL,
Title CHAR(6) NULL,
2.添加列
ALTER TABLE Employee ADD Emgr CHAR(4) NULL;
3.修改列的数据类型
ALTER TABLE Employee CHANGE Emgr Emgr CHAR(12);
ALTER TABLE Employee MODIFY Emgr CHAR(12);
注:mysql中alter语句中change和modify的区别:
Change :对列进行重命名或更改列的类型,需给定旧的列名称和新的列名称、当前的类型;
modify :可以改变列的类型,此时不需要重命名(不需给定新的列名称)。
4.删除列
ALTER TABLE Employee DROP COLUMN Emgr;
5.增加某列必须取唯一值的约束条件
ALTER TABLE Employee ADD CONSTRAINT UQ_name UNIQUE(Ename);//用户为该唯一值约束设定约束名
ALTER TABLE Employee ADD UNIQUE(Ename);//系统自动命名
三、细节
1.一个表或者视图只允许有一个聚簇索引(CLUSTERED),建立聚簇索引后,表在磁盘中的物理存储顺序将与聚簇索引中的一致。
在最常查询的列上建立聚簇索引可以加快查询速度;在经常更新的列上建立聚簇索引,则DBMS维护所以代价太大。
四、关系数据库规范化理论
1.未规范的问题
1.1 数据冗余度大
1.2 修改异常
冗余度大,不仅兰妃存储空间,在对数据进行修改时,易造成数据的不一致性。如当某个表中的工资变化时,满足某个条件的人的工资都需要修改,一旦遗漏就会使数据不一致,产生修改异常。
1.3 插入异常
无法插入某部分信息的插入异常。因为码为空的情况下无法插入相应的数据
1.4 删除异常
删除掉不应删除的信息为删除异常。在删除某个信息时连带其他信息被删除。
2. 函数依赖
2.1 函数依赖是指在关系R中,X、Y为R的两个属性或属性组,如果对于R的所有关系r都存在:对于X的每一个具体值,Y都只有一个具体值与之对应。
则称属性Y函数依赖于属性X。或者说属性X函数决定属性Y,记做X->Y
2.2 联系中存在的依赖
1)如果两属性集X、Y是一对一联系,则存在函数依赖 X<-->Y
2) 如果两属性集X、Y是多对一联系,则存在函数依赖 X-->Y
3)如果两属性集X、Y是多对多联系,则不存在函数依赖
4)假设两属性集X、Y间 X-->Y成立,如果Y属于X,则称X-->Y是平凡函数依赖,反之是非平凡函数依赖。
3. 关系模式的规范化
当一个关系中的所有分量都是不可分的数据项时,该关系是规范化的。
注:规范化程度较高者必定是较低者的子集。
1)部分函数依赖与完全函数依赖:
设X、Y是关系R的两个不同的属性或属性组,且X-->Y。如果存在X的某一个真子集X1,使得X1-->Y,则称Y部分函数依赖于X
反正则为完全函数依赖。
2)传递依赖:
在关系R中,如果X、Y、Z是R中的三个不同的属性或属性组,如果X-->Y,Y-->Z,但Y-/->X,且Y不是X的子集,则称Z传递依赖于X
3.1 范式的种类:
1NF,2NF,3NF(BCNF),4NF,5NF
3.2 第一范式(1NF)
定义:如果关系模式R中不包含多值属性,则R满足第一范式
存在问题:存在部分函数依赖不是2NF,存在传递函数依赖不是3NF
3.3 第二范式
如果一个关系R属于1NF,且它的所有非主属性都完全依赖于R的任意候选码,则R属于第二范式。
即:第二范式中不存在部分函数依赖
推论:如果关系模式是第一范式,且它的每一个候选码都是单码,则这个关系模式是第二范式。
3.4 第三范式
如果关系模式R属于第二范式,且它的每一个非主属性都不传递依赖于任何候选码,则称R是第三范式。
推论1:如果关系模式属于第一范式,且它的每一个非主属性既不部分依赖、也不传递依赖于任何候选码,则该模式属于第三范式。
推论2:不存在非主属性的关系模式一定为第三范式。
3.5 改进的第三范式:BCNF
定义:设关系模式是第一范式,若F的任一函数依赖X-->Y(且Y不属于X)中X都包含了R的一个码,则称R是BCNF范式。
推论:
1)R中所有非主属性对每一个码都是完全函数依赖
2)R中所有主属性对每一个不包含它的码,都是完全函数依赖
3)R中没有任何属性完全函数依赖于非码的人格一组属性
定理:如果R是BCNF范式,则R一定是第三范式
3NF比BCNF放宽了一个限制,即允许因素不包含码。
如有错误,还请指正哦~