Mysql列属性

本文介绍了数据库设计中的关键概念,包括主键、自增长、唯一键、索引和范式等,详细阐述了它们的作用及使用方法。

一.主键(primary key):一张表中只能有一个主键

            1.增加主键直接在字段名后加:id int(4) not null primary key

            2.复合主键:创建表之后在所有字段后使用primary key(主键字段列表)来创建主键(如果有多个字段做主键可以使用复合主键):    

                         create table if not exists my_course(

                            -> id int(4) comment '学号',
                            -> name char(8) not null comment '姓名',
                            -> primary key(id,name)

                            -> );

            3.当表创建好后追加主键:alter table my_course add primary key(字段名);

            4.更新主键&删除主键:主键必须删除才能增加,alter table my_course drop primary key;

            5.主键分类:大部分是使用逻辑性字段(与业务关联性很小

二.自增长:系统会在当前字段中找到最大值然后进行+1操作,得到一个新的不同的数据。自增长通常与主键进行搭配

            1.自增长特点:自增长字段必须是一个索引;自增长字段必须是整数;每张表只能有一个字段自增长。

            2.修改自增长:一张表只有一个字段是自增长,所以必须先删除然后再重新定义。

                alter table my_course auto_increment=8; set auto_increment_increment=10;

            3.查看自增长变量:show variables like "auto_increment";

            4.删除自增长:alter table my_course modify id int(4);

三.唯一键:一张表中有很多字段具有唯一性,但一张表中只有一个主键,唯一键(unique  key)可以有效的解决这个问题。

            1.唯一键本质:和主键差不多,区别唯一键(单个或多个)默认为空,空字段不参与唯一性比较。

            2.声明唯一键

                        1):创建表的时候直接在字段后跟unique/unique key   name char(10) not null unique;

                        2):在所有字段后添加唯一键unique      
                                mysql> create table if not exists my_unique(
                                           -> id int(4) not null primary key auto_increment,
                                            -> sex char(7) not null,
                                            -> password char(6),
                                            -> unique(sex,password)
                                            -> );

                           3):在创建表之后添加唯一键:alter table my_course add unique key(name,sex);

                           4):删除&更新唯一键:先删除后更新 alter table my_course drop index name;                        

四.索引:几乎都建立在字段上,索引能够快速匹配数据

              1.索引的作用:提交查询的效率,约束数据的有效性

               2.增加索引的前提条件:建立索引会产生索引文件(可能索引文件会比数据文件还大),会非常消耗磁盘空间

               3.Mysql提供的索引    1.主键索引:primary key  2.唯一键索引:unique key  3.fulttext index    4.普通索引:index

五.范式:解决数据存储与优化的问题,若要满足下一层范式,必须满足上一层范式。

               1.第一范式(1NF):要求所有的字段都满足原子性,不可以再拆分。

               2.第二范式(2NF):如果一张表中存在复合主键,表中存在字段依赖主键部分数据,称为部分依赖。第二范式不允许出现部分依赖。

                解决方案:取消复合主键,使用逻辑主键。

               3.第三范式(3NF):理论上讲所有的字段都应依赖主键(逻辑主键除外),第三范式解决部分传递依赖。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值