MySQL创建,修改,删除表

创建、修改、删除表

1、表的概念

表的三要素:表名、属性、记录。

 

2、关系型数据库建表规范

主键  :由一种属性或多种属性组成。

第一范式(1NF:属性必需具有原子性。

第二范式(2NF:包含1NF,表必须有一个主键,表中所有非主属性必须完全依赖

  于主键,不可只依赖主键的一部分。

 (注:当主键有多个属性时,才会出现不符合2NF的情况)

第三范式(3NF:包含2NF,表中所有属性必须直接依赖主键,表中所有非主属性之间

  不可存在依赖关系。

BCNF  :包含3NF,主键中各个属性之间不可存在依赖关系。

 (注:当主键有多个属性时,才会出现不符合BCNF的情况)

 

3、不符合见建表规范案例和解决方案

不符合1NF :拆分属性,把属性拆分成多个属性。

不符合2NF :分表,把部分依赖主键的非主属性分到其他的表中

不符合3NF :分表 + 外键,把有依赖关系的非主属性分到另一个表中,建立外键。

不符合BCNF :分表,把有依赖关系的主属性分到另一个表中。

 

4、创建表

CREATE TABLE 表名( 属性名 数据类型 [完整性约束条件],

          属性名 数据类型 [完整性约束条件],

          ... ...

          属性名 数据类型 [完整性约束条件]

                [各种修饰条件,如主键、外键、索引]);

 

完整性约束条件

约束条件

说明

PRIMARY KEY

属性的主键,唯一标识表中每条信息

FOREIGN KEY

属性的外键,唯一标识两个表之间的依赖关系

NOT NULL

属性不能为空

UNIQUE

属性值是唯一的

AUTO_INCREMENT

属性值自增(MySQL特色)

DEFAULT

属性设置默认值

 

4.1主键

1]单字段主键

属性名 数据类型 PRIMARY KEY

2]多字段主键

PRIMARY KEY(属性1, 属性2, 属性3 ... ...)

 

4.2外键

一个表的某几个属性为另一个表的主键,则这几个属性称之为外键。

拥有外键的表为子表,另一个表为父表。

CONSTRAINT   外键别名    FOREIGN KEY(外键属性1,外键属性2... ...)

             REFERENCES  父表名(父表主键);

 

4.3非空约束

属性名 属性类型 NOT NULL

 

4.4表的唯一性约束

属性名 属性类型 UNIQUE

注:也就是说该属性的每个元素都是唯一的,各不相同。

 

4.5自增属性约束

属性名 属性类型 AUTO_INCREMENT

注:表只能有一个自增属性,且表的自增属性必须是主键的一部分。

 

4.6属性的默认值

属性名 属性类型 DEFAULT 默认值。

 

5、查看表结构

DESCRIBE 表名; DESC  表名;

 

6、 查看表的详细定义(创建表的create语句,可以看到完整性约束条件)

SHOW CREATE TABLE 表名 \G;

‘\G’表示格式化输出

 

7、 修改表名

ALTER TABLE 旧表名 RENAME [TO] 新表名;

 

8、 修改表中属性类型

ALTER TABLE 表名 MODIFY 属性名 属性类型;

 

9、 修改属性名、属性类型

ALTER TABLE 表名 CHANGE旧属性名 新属性名 新属性类型;

 

10、在已有表中添加新属性

ALTER TABLE 表名 ADD 属性名 属性类型 [完整性约束条件] [FIRST | AFTER 已有属性];

FIRST表示字段插入到表头。

AFTER 已有属性 表示字段插入到表中[已有属性]的后面。

11、删除表中属性

ALTER TABLE 表名 DROP 属性名;

 

12、 修改字段的排列位置(把已有属性1的位置放在已有属性2<|>

ALTER TABLE 表名 MODIFY 已有属性1 数据类型  FIRST|AFTER 已有属性2;

 

13、 更改表的存储引擎

ALTER TABLE 表名 ENGINE=存储引擎名;

 

14、 删除表的外键约束

ALTER TABLE 表名 DROP FOREIGN 外键约束名;

 

15、 删除表

DROP TABLE 表名;

(注:如果是被其他外键关联的父表,则需先删除外键)

转载于:https://www.cnblogs.com/vrg0/p/6651292.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值