数据库基本操作和知识

来源:互联网 发布:高中生书包 知乎 编辑:程序博客网 时间:2024/05/20 02:25
一、数据库基本操作    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放宽了一个限制,即允许因素不包含码。

如有错误,还请指正哦~

原创粉丝点击