mysql是如何保证三类完整性约束的
时间: 2023-06-05 09:47:43 浏览: 77
MySQL的三种完整性约束包括:实体完整性、参照完整性和用户定义完整性。实体完整性要求在一张表中每一行都有一个唯一的主键,参照完整性要求在外键关系中参照关系的两个表之间的数据必须一致,用户定义完整性是指用户可以自定义一些业务规则,以保证数据的有效性和完整性。这些约束可以在创建表的时候或者修改表结构的时候设置。
相关问题
mysql完整性约束
MySQL的完整性约束是用来确保数据库中的数据符合特定规则或条件的约束。这些约束可以分为以下几种类型:
1. 唯一约束:唯一约束用于确保列或列的组合中的值是唯一的。可以通过在创建表时使用`UNIQUE`关键字来定义唯一约束,也可以使用`ALTER TABLE`语句添加唯一约束。例如,`ALTER TABLE employee ADD UNIQUE (e_name);`
2. 主键约束:主键约束用于唯一标识表中的每一行数据。主键必须是唯一且非空的。可以通过在创建表时使用`PRIMARY KEY`关键字来定义主键约束。例如,`CREATE TABLE employee (e_id INT PRIMARY KEY, e_name VARCHAR(5), e_sex VARCHAR(5), e_age INT, d_id INT);`
3. 外键约束:外键约束用于确保表之间的关系的完整性。外键约束在一个表中创建,指向另一个表中的主键。可以通过在创建表时使用`REFERENCES`关键字定义外键约束,也可以使用`ALTER TABLE`语句添加外键约束。例如,`ALTER TABLE employee ADD CONSTRAINT fk_d_id FOREIGN KEY (d_id) REFERENCES department (d_id);`
4. 检查约束:检查约束用于确保列中的值满足特定条件。可以在创建表时使用`CHECK`关键字来定义检查约束,也可以使用`ALTER TABLE`语句添加检查约束。例如,`ALTER TABLE employee ADD CONSTRAINT ch_e_age CHECK (e_age >= 0);`
综上所述,MySQL的完整性约束包括唯一约束、主键约束、外键约束和检查约束,用于确保数据库中的数据符合特定规则或条件。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MySQL完整性约束](https://blog.csdn.net/kejiayuan0806/article/details/100766658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
MYSQL使用中文表名无法创建完整性约束
这可能是因为MySQL默认使用的字符集不支持中文字符,导致无法识别中文表名。解决方法是在创建数据库时指定字符集为utf8或utf8mb4,同时在创建表时也要指定字符集为utf8或utf8mb4。例如:
创建数据库:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
创建表:
CREATE TABLE `用户` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`姓名` varchar(50) NOT NULL,
`年龄` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `姓名_UNIQUE` (`姓名`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;