MYSQL-键表约束及修改数据表

初涉主键约束 (PRIMARY KEY)

PRIMARY KEY:
1、主键约束
2、每张数据表只能存在一个主键
3、主键保证记录的唯一性
4、主键自动为 NOT NULL

在这里插入图片描述
注意
UNSIGNED :unsigned表面含义是 '无符号’的意思,unsigned既为非负数,用此类型可以增加数据长度,

若有人问,TINYINT(m)代表了什么。
TINYINT(10):没有意义,输入10和1000是没有什么区别的。这里输入8,只不过是有10个字符的位置,但是还是显示8,所有没有意义。
TINYINT(10) UNSIGNED :这里的10也是没有意义的。
TINYINT(10) ZEROFILE :这里的10才是有意的。我们输入234则会在2前面 补上7个零。
TINYINT(10) UNSIGNED ZEROFILE :这个和上面的一个是一样的,只是完整的。(ZEROFILE则是在你设置的位数未满补0)

初涉唯一约束(UNIQUE KEY)

1、唯一约束,去重
2、唯一约束保证记录的唯一性
3、唯一约束的字段可以为空值(NULL)
4、每张数据表可以存在多个唯一约束

可能很难理解,原因很简单:
如果说这个字段为空的话,那么就代表两条或两条以上的记录这个字段都可以为空。如果都为空话,那么值都是相同,而相同的又和为一性相背离,但是实际上他们在存储的时候,即使你存储多个数据,他最终保留的控制只有一个,所以说,他也只能有一个空值,这是它保证的唯一性。

现在我们来创建一个既有主键又有唯一约束的数据表:
在这里插入图片描述

MYSQL初涉默认约束 (DEFAULT)

1、默认值
2、当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

在这里插入图片描述
在这里插入图片描述

MYSQL外键约束的要求解析

约束
1、约束保证数据的完整性和一致性
2、约束分为表级约束和列级约束(是根据约束字段的多少来决定的。如果约束只针对某一个字段来约束的话,我们成为列约束;而如果约束针对两个或两个以上的字段来进行约束的话,我们成为表约束。)
3、约束类型包括:
3.1、NOT NULL(非空约束)
3.2、PRIMARY KEY(主键约束)
3.3、UNIQUE KEY (唯一约束)
3.4、DEFAULT(默认约束)
3.5、FOREIGN KEY(外键约束)

FOREIGN KEY
1、保持数据一致性,完整性
2、实现一对一或一对多关系。

外键约束的要求:
1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
(子表指的是具有外键列的表,我们称之为子表。而子表所参照的表我们称之为父表。)
2、数据表和存储引擎只能为InnoDB.
3、外键列和参照必须具有相似类型。其中数字的长度或是否有符号位必须相同,而字符的长度则可以不相同。
4、外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
(如果参照列上没有索引的话,mysql将自动创建索引,如果外键列没有索引的话,Mysql将不能自动创建索引。)
如果不是InnoDB的话,将进行修改成InnoDB
编辑数据表的默认存储引擎
MySQL配置文件(my.ini)
default-storage-engine =INNODB
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191227224001117.png?x-oss-process=image
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 修改 MySQL 表结构和完整性约束的方法 在 MySQL 中,`ALTER TABLE` 是用于修改现有表结构的关键字。以下是关于如何修改表结构以及设置或更改完整性约束的具体方法: #### 修改表结构 可以通过 `ALTER TABLE` 来执行多种操作,例如修改定义、添加新列、删除列、重命名表等。 - **修改列的数据类型或属性** 使用 `MODIFY` 子句可以调整已有列的定义。例如,将 `departments` 表中的 `dep_id` 列数据类型更改为 `INT(4)` 并指定其不能为空: ```sql ALTER TABLE departments MODIFY dep_id INT(4) NOT NULL; ``` 这里的语法遵循了所提供的示例[^1]。 - **重命名表** 如果需要更改表名称,则可使用 `RENAME TO` 子句。例如,将 `your_table` 更名为 `my_table` 的 SQL 语句如下所示: ```sql ALTER TABLE your_table RENAME TO my_table; ``` 此外,还可以通过单独的 `RENAME TABLE` 命令实现相同功能[^3]: ```sql RENAME TABLE your_table TO my_table; ``` #### 设置或修改完整性约束 完整性约束确保数据库中数据的一致性和准确性。常见的完整性约束包括主键 (`PRIMARY KEY`)、唯一性 (`UNIQUE`) 和自动增长 (`AUTO_INCREMENT`) 等。 - **为主键或其他字段启用自增特性** 若要使某一列为自增型 (通常配合主键一起使用),可通过 `MODIFY` 或者 `CHANGE` 调整该列配置。比如让 `student_13` 表内的 `id` 字段成为长度为8位数且具备自动递增特性的整数值: ```sql ALTER TABLE student_13 MODIFY id INT(8) AUTO_INCREMENT PRIMARY KEY; ``` 上述命令综合实现了字段类型的转换及其作为主键的同时开启自动编号的功能[^2]。 - **增加新的约束条件** 添加额外的约束如唯一索引或者默认值设定也是可行的操作之一。假设要向某个已存在的表格里追加一栏叫做 email ,并规定它必须独一无二无重复项存在的话,那么应该这样写入相应的SQL指令片段: ```sql ALTER TABLE users ADD COLUMN email VARCHAR(255) UNIQUE; ``` 综上所述,利用 `ALTER TABLE` 结合不同的子句能够灵活地完成对MySQL 数据库内各张表基本架构上的定制化需求处理过程。 ```sql -- 示例:完整的表结构调整与约束应用案例 USE TestDb1; -- 将 your_table 改名为 my_table ALTER TABLE your_table RENAME TO my_table; -- 对 my_table 执行进一步改动 ALTER TABLE my_table MODIFY column_name_new_type DATATYPE, -- 修改某列类型 DROP COLUMN unnecessary_column, -- 删除不需要的列 ADD CONSTRAINT unique_constraint UNIQUE(column_for_unique); -- 新建唯一性约束 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值